From a29eaaba077d71ae0a1726d75a624b7fd1f0a8c6 Mon Sep 17 00:00:00 2001 From: Corentin Schreiber Date: Sat, 18 Sep 2021 11:28:51 +0100 Subject: [PATCH 1/2] Fixed forcing default CXX_STANDARD on other targets and added alias --- CMakeLists.txt | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 97327ccd..68cec4ca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,14 +44,6 @@ if (DEFINED ENV{OMPI_CXX} OR DEFINED ENV{MPICH_CXX}) endif() endif() -# set CXX standard -set(CMAKE_CXX_STANDARD_REQUIRED True) -set(CMAKE_CXX_STANDARD 11) -if (${COMPILER_IS_NVCC}) - # GNU CXX extensions are not supported by nvcc - set(CMAKE_CXX_EXTENSIONS OFF) -endif() - ############################################################################### # COMPILER FLAGS ############################################################################### @@ -71,6 +63,16 @@ endif() add_library(backward_object OBJECT backward.cpp) target_compile_definitions(backward_object PRIVATE ${BACKWARD_DEFINITIONS}) target_include_directories(backward_object PRIVATE ${BACKWARD_INCLUDE_DIRS}) +if(BACKWARD_HAS_EXTERNAL_LIBRARIES) + target_link_libraries(backward_object PUBLIC ${BACKWARD_LIBRARIES}) +endif() +# set CXX standard +set_property(TARGET backward_object PROPERTY CXX_STANDARD_REQUIRED True) +set_property(TARGET backward_object PROPERTY CXX_STANDARD 11) +if (${COMPILER_IS_NVCC}) + # GNU CXX extensions are not supported by nvcc + set_property(TARGET backward_object PROPERTY CXX_EXTENSIONS OFF) +endif() set(BACKWARD_ENABLE $ CACHE STRING "Link with this object to setup backward automatically") @@ -86,6 +88,18 @@ endif() add_library(backward ${libtype} backward.cpp) target_compile_definitions(backward PUBLIC ${BACKWARD_DEFINITIONS}) target_include_directories(backward PUBLIC ${BACKWARD_INCLUDE_DIRS}) +if(BACKWARD_HAS_EXTERNAL_LIBRARIES) + target_link_libraries(backward PUBLIC ${BACKWARD_LIBRARIES}) +endif() +# set CXX standard +set_property(TARGET backward PROPERTY CXX_STANDARD_REQUIRED True) +set_property(TARGET backward PROPERTY CXX_STANDARD 11) +if (${COMPILER_IS_NVCC}) + # GNU CXX extensions are not supported by nvcc + set_property(TARGET backward PROPERTY CXX_EXTENSIONS OFF) +endif() + +add_library(Backward::Backward ALIAS backward) ############################################################################### # TESTS From 458f8d7100798521071d4671cd36dd6e31df4575 Mon Sep 17 00:00:00 2001 From: Corentin Schreiber Date: Sat, 18 Sep 2021 11:52:14 +0100 Subject: [PATCH 2/2] Updated install instructions for add_subdirectory() --- README.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 031716f3..4bc76c44 100644 --- a/README.md +++ b/README.md @@ -57,12 +57,9 @@ In this case you have a subdirectory containing the whole repository of Backward ``` add_subdirectory(/path/to/backward-cpp) -# This will add backward.cpp to your target -add_executable(mytarget mysource.cpp ${BACKWARD_ENABLE}) - # This will add libraries, definitions and include directories needed by backward -# by setting each property on the target. -add_backward(mytarget) +# through an ALIAS target. +target_link_libraries(mytarget PUBLIC Backward::Backward) ``` #### Modifying CMAKE_MODULE_PATH