From 387ab34e475e75a57449d1d7e653d9e348b288a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20Th=C3=BCring?= Date: Mon, 31 Jul 2017 18:02:11 +0200 Subject: [PATCH] fix issue #69 --- BackwardConfig.cmake | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/BackwardConfig.cmake b/BackwardConfig.cmake index 281c5b7..2c02ec9 100644 --- a/BackwardConfig.cmake +++ b/BackwardConfig.cmake @@ -111,35 +111,45 @@ if (NOT BACKWARD_DEFINITIONS) map_definitions("STACK_DETAILS_" "BACKWARD_HAS_" BACKTRACE_SYMBOL DW BFD) endif() -foreach(def ${BACKWARD_DEFINITIONS}) - message(STATUS "${def}") -endforeach() - find_path(BACKWARD_INCLUDE_DIR backward.hpp PATHS ${CMAKE_CURRENT_LIST_DIR}) +set(BACKWARD_HAS_EXTERNAL_LIBRARIES FALSE) +set(FIND_PACKAGE_REQUIRED_VARS BACKWARD_INCLUDE_DIR) +if(DEFINED BACKWARD_LIBRARIES) + set(BACKWARD_HAS_EXTERNAL_LIBRARIES TRUE) + list(APPEND FIND_PACKAGE_REQUIRED_VARS BACKWARD_LIBRARIES) +endif() + include(FindPackageHandleStandardArgs) find_package_handle_standard_args(Backward - REQUIRED_VARS - BACKWARD_INCLUDE_DIR - BACKWARD_LIBRARIES + REQUIRED_VARS ${FIND_PACKAGE_REQUIRED_VARS} ) list(APPEND _BACKWARD_INCLUDE_DIRS ${BACKWARD_INCLUDE_DIR}) macro(add_backward target) target_include_directories(${target} PRIVATE ${_BACKWARD_INCLUDE_DIRS}) set_property(TARGET ${target} APPEND PROPERTY COMPILE_DEFINITIONS ${BACKWARD_DEFINITIONS}) - set_property(TARGET ${target} APPEND PROPERTY LINK_LIBRARIES ${BACKWARD_LIBRARIES}) + if(BACKWARD_HAS_EXTERNAL_LIBRARIES) + set_property(TARGET ${target} APPEND PROPERTY LINK_LIBRARIES ${BACKWARD_LIBRARIES}) + endif() endmacro() + set(BACKWARD_INCLUDE_DIRS ${_BACKWARD_INCLUDE_DIRS} CACHE INTERNAL "_BACKWARD_INCLUDE_DIRS") set(BACKWARD_DEFINITIONS ${BACKWARD_DEFINITIONS} CACHE INTERNAL "BACKWARD_DEFINITIONS") -set(BACKWARD_LIBRARIES ${BACKWARD_LIBRARIES} CACHE INTERNAL "BACKWARD_LIBRARIES") +if(DEFINED BACKWARD_LIBRARIES) + set(BACKWARD_LIBRARIES ${BACKWARD_LIBRARIES} CACHE INTERNAL "BACKWARD_LIBRARIES") +endif() mark_as_advanced(_BACKWARD_INCLUDE_DIRS BACKWARD_DEFINITIONS BACKWARD_LIBRARIES) if (NOT TARGET Backward::Backward) add_library(Backward::Backward INTERFACE IMPORTED) set_target_properties(Backward::Backward PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${_BACKWARD_INCLUDE_DIRS}" - INTERFACE_LINK_LIBRARIES "${BACKWARD_LIBRARIES}" - INTERFACE_COMPILE_DEFINITIONS "${BACKWARD_DEFINITIONS}" + INTERFACE_INCLUDE_DIRECTORIES "${_BACKWARD_INCLUDE_DIRS}" + INTERFACE_COMPILE_DEFINITIONS "${BACKWARD_DEFINITIONS}" + ) + if(BACKWARD_HAS_EXTERNAL_LIBRARIES) + set_target_properties(Backward::Backward PROPERTIES + INTERFACE_LINK_LIBRARIES "${BACKWARD_LIBRARIES}" ) + endif() endif()