From 479c16a8fa77e9577be9d7a363aedd31aed8eb9a Mon Sep 17 00:00:00 2001 From: Dennis Klein Date: Mon, 24 Jun 2019 18:48:44 +0200 Subject: [PATCH] CMake: Export build type and cxx flags Resolve #158 --- README.md | 8 +++++--- cmake/FairMQConfig.cmake.in | 3 +++ cmake/FairMQLib.cmake | 2 ++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2300dbc8..203739b0 100644 --- a/README.md +++ b/README.md @@ -126,9 +126,11 @@ After the `find_package(FairMQ)` call the following CMake variables are defined: | `${FairMQ_LIBDIR}` | the installation lib directory | | `${FairMQ_DATADIR}` | the installation data directory (`../share/fairmq`) | | `${FairMQ_CMAKEMODDIR}` | the installation directory of shipped CMake find modules | -| `${FairMQ_CXX_STANDARD_REQUIRED}` | the value of `CMAKE_CXX_STANDARD_REQUIRED` at built-time | -| `${FairMQ_CXX_STANDARD}` | the value of `CMAKE_CXX_STANDARD` at built-time | -| `${FairMQ_CXX_EXTENSIONS}` | the values of `CMAKE_CXX_EXTENSIONS` at built-time | +| `${FairMQ_CXX_STANDARD_REQUIRED}` | the value of `CMAKE_CXX_STANDARD_REQUIRED` at build-time | +| `${FairMQ_CXX_STANDARD}` | the value of `CMAKE_CXX_STANDARD` at build-time | +| `${FairMQ_CXX_EXTENSIONS}` | the values of `CMAKE_CXX_EXTENSIONS` at build-time | +| `${FairMQ_BUILD_TYPE}` | the value of `CMAKE_BUILD_TYPE` at build-time | +| `${FairMQ_CXX_FLAGS}` | the values of `CMAKE_CXX_FLAGS` and `CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}` at build-time | ## Documentation diff --git a/cmake/FairMQConfig.cmake.in b/cmake/FairMQConfig.cmake.in index 431a2586..5613a514 100644 --- a/cmake/FairMQConfig.cmake.in +++ b/cmake/FairMQConfig.cmake.in @@ -24,6 +24,9 @@ set(@PROJECT_NAME@_CXX_STANDARD_REQUIRED @CMAKE_CXX_STANDARD_REQUIRED@) set(@PROJECT_NAME@_CXX_STANDARD @CMAKE_CXX_STANDARD@) set(@PROJECT_NAME@_CXX_EXTENSIONS @CMAKE_CXX_EXTENSIONS@) set(@PROJECT_NAME@_VERSION_HOTFIX @PROJECT_VERSION_HOTFIX@) +set(@PROJECT_NAME@_BUILD_TYPE @CMAKE_BUILD_TYPE@) +set(@PROJECT_NAME@_BUILD_TYPE_UPPER @PROJECT_BUILD_TYPE_UPPER@) +set(@PROJECT_NAME@_CXX_FLAGS @PROJECT_CXX_FLAGS@) ### Import cmake modules set(CMAKE_MODULE_PATH ${@PROJECT_NAME@_CMAKEMODDIR} ${CMAKE_MODULE_PATH}) diff --git a/cmake/FairMQLib.cmake b/cmake/FairMQLib.cmake index a2d9d732..30681c54 100644 --- a/cmake/FairMQLib.cmake +++ b/cmake/FairMQLib.cmake @@ -288,6 +288,8 @@ macro(install_cmake_package) ) generate_package_dependencies() # fills ${PACKAGE_DEPENDENCIES} generate_package_components() # fills ${PACKAGE_COMPONENTS} + string(TOUPPER ${CMAKE_BUILD_TYPE} PROJECT_BUILD_TYPE_UPPER) + set(PROJECT_CXX_FLAGS ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${PROJECT_BUILD_TYPE_UPPER}}) configure_package_config_file( ${CMAKE_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake