From 65dff1fd22d80305473acaf34a7e5209521b5ec0 Mon Sep 17 00:00:00 2001 From: Christian Menard Date: Thu, 25 Jul 2024 14:41:08 +0200 Subject: [PATCH] introduce cmake options to install and apply clang tidy conditionally --- CMakeLists.txt | 11 +++++++---- lib/CMakeLists.txt | 24 +++++++++++++----------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 24e5bbed..92dfd42a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,13 @@ cmake_policy(SET CMP0068 NEW) set(CMAKE_BUILD_WITH_INSTALL_RPATH ON) set(BUILD_WITH_INSTALL_NAME_DIR ON) -if (NOT DEFINED LF_REACTOR_CPP_SUFFIX) +option(REACTOR_CPP_PRINT_STATISTICS "Print statistics after execution" OFF) +option(REACTOR_CPP_TRACE "Enable tracing" OFF) +option(REACTOR_CPP_VALIDATE "Enable runtime validation" ON) +option(REACTOR_CPP_INSTALL "Install the reactor-cpp target" On) +option(REACTOR_CPP_CLANG_TIDY "Enable building with clang-tidy " On) + +if (REACTOR_CPP_CLANG_TIDY AND NOT DEFINED LF_REACTOR_CPP_SUFFIX) find_program(CLANG_TIDY clang-tidy) if (CLANG_TIDY) set(CMAKE_CXX_CLANG_TIDY clang-tidy; -header-filter=reactor-cpp/\(.*\)\\.hh; -warnings-as-errors=*;) @@ -43,9 +49,6 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") endif() -option(REACTOR_CPP_PRINT_STATISTICS "Print statistics after execution" OFF) -option(REACTOR_CPP_TRACE "Enable tracing" OFF) -option(REACTOR_CPP_VALIDATE "Enable runtime validation" ON) if (NOT DEFINED REACTOR_CPP_LOG_LEVEL) set(REACTOR_CPP_LOG_LEVEL 3) endif() diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 43265b9f..277cb5ae 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -53,17 +53,19 @@ set_target_properties(${LIB_TARGET} PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION 1) -if(DEFINED LF_REACTOR_CPP_SUFFIX) - install(FILES "${PROJECT_BINARY_DIR}/include/reactor-cpp/config.hh" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${LIB_TARGET}/reactor-cpp") -else() - install(FILES "${PROJECT_BINARY_DIR}/include/reactor-cpp/config.hh" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/reactor-cpp") -endif() +if(REACTOR_CPP_INSTALL) + if(DEFINED LF_REACTOR_CPP_SUFFIX) + install(FILES "${PROJECT_BINARY_DIR}/include/reactor-cpp/config.hh" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${LIB_TARGET}/reactor-cpp") + else() + install(FILES "${PROJECT_BINARY_DIR}/include/reactor-cpp/config.hh" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/reactor-cpp") + endif() -install(TARGETS ${LIB_TARGET} EXPORT ${LIB_TARGET}Config - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" OPTIONAL - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" OPTIONAL - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" OPTIONAL) + install(TARGETS ${LIB_TARGET} EXPORT ${LIB_TARGET}Config + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" OPTIONAL + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" OPTIONAL + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" OPTIONAL) -install(EXPORT ${LIB_TARGET}Config DESTINATION share/${LIB_TARGET}/cmake) + install(EXPORT ${LIB_TARGET}Config DESTINATION share/${LIB_TARGET}/cmake) -export(TARGETS ${PROJECT_NAME} FILE ${LIB_TARGET}Config.cmake) + export(TARGETS ${PROJECT_NAME} FILE ${LIB_TARGET}Config.cmake) +endif()