Handle multiple targets for add_crashpad

This commit is contained in:
Atlante45 2018-01-30 11:48:01 -08:00
parent db08f1dda6
commit edfffc575a

View file

@ -10,8 +10,6 @@
# #
macro(add_crashpad) macro(add_crashpad)
get_property(CRASHPAD_CHECKED GLOBAL PROPERTY CHECKED_FOR_CRASHPAD_ONCE)
set (USE_CRASHPAD TRUE) set (USE_CRASHPAD TRUE)
if ("$ENV{CMAKE_BACKTRACE_URL}" STREQUAL "") if ("$ENV{CMAKE_BACKTRACE_URL}" STREQUAL "")
set (USE_CRASHPAD FALSE) set (USE_CRASHPAD FALSE)
@ -25,13 +23,20 @@ macro(add_crashpad)
set (CMAKE_BACKTRACE_TOKEN $ENV{CMAKE_BACKTRACE_TOKEN}) set (CMAKE_BACKTRACE_TOKEN $ENV{CMAKE_BACKTRACE_TOKEN})
endif() endif()
if (WIN32 AND USE_CRASHPAD AND NOT CRASHPAD_CHECKED) if (WIN32 AND USE_CRASHPAD)
get_property(CRASHPAD_CHECKED GLOBAL PROPERTY CHECKED_FOR_CRASHPAD_ONCE)
if (NOT CRASHPAD_CHECKED)
add_dependency_external_projects(crashpad)
find_package(crashpad REQUIRED)
set_property(GLOBAL PROPERTY CHECKED_FOR_CRASHPAD_ONCE TRUE)
endif()
add_definitions(-DHAS_CRASHPAD) add_definitions(-DHAS_CRASHPAD)
add_definitions(-DCMAKE_BACKTRACE_URL=\"${CMAKE_BACKTRACE_URL}\") add_definitions(-DCMAKE_BACKTRACE_URL=\"${CMAKE_BACKTRACE_URL}\")
add_definitions(-DCMAKE_BACKTRACE_TOKEN=\"${CMAKE_BACKTRACE_TOKEN}\") add_definitions(-DCMAKE_BACKTRACE_TOKEN=\"${CMAKE_BACKTRACE_TOKEN}\")
add_dependency_external_projects(crashpad)
find_package(crashpad REQUIRED)
target_include_directories(${TARGET_NAME} PRIVATE ${CRASHPAD_INCLUDE_DIRS}) target_include_directories(${TARGET_NAME} PRIVATE ${CRASHPAD_INCLUDE_DIRS})
target_link_libraries(${TARGET_NAME} ${CRASHPAD_LIBRARY} ${CRASHPAD_BASE_LIBRARY} ${CRASHPAD_UTIL_LIBRARY}) target_link_libraries(${TARGET_NAME} ${CRASHPAD_LIBRARY} ${CRASHPAD_BASE_LIBRARY} ${CRASHPAD_UTIL_LIBRARY})
@ -49,7 +54,5 @@ macro(add_crashpad)
DESTINATION ${CLIENT_COMPONENT} DESTINATION ${CLIENT_COMPONENT}
COMPONENT ${INTERFACE_INSTALL_DIR} COMPONENT ${INTERFACE_INSTALL_DIR}
) )
set_property(GLOBAL PROPERTY CHECKED_FOR_CRASHPAD_ONCE TRUE)
endif () endif ()
endmacro() endmacro()