From db71349f1c0afdc5fad7c44ed37a6cb190a20aed Mon Sep 17 00:00:00 2001 From: Oliver Benz Date: Fri, 26 Dec 2025 19:46:08 +0100 Subject: [PATCH 1/2] CMake: Improvements installation --- CMakeLists.txt | 19 +++---------------- src/CMakeLists.txt | 15 ++++++--------- 2 files changed, 9 insertions(+), 25 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 696c006..20235a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,13 +10,6 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) set(LOGGER_IS_TOP_LEVEL ON) endif() -# Normalize install prefix for Unix-like systems (prefer /opt). -if(UNIX AND NOT WIN32) - if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR CMAKE_INSTALL_PREFIX MATCHES "^/var/empty") - set(CMAKE_INSTALL_PREFIX "/opt" CACHE PATH "Install path prefix" FORCE) - endif() -endif() - # Project Options option(LOGGER_BUILD_TESTS "Build Logger unit tests" ${LOGGER_IS_TOP_LEVEL}) option(LOGGER_BUILD_EXAMPLES "Build Logger examples" ${LOGGER_IS_TOP_LEVEL}) @@ -54,7 +47,7 @@ endif() configure_package_config_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/LoggerConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LoggerConfig.cmake - INSTALL_DESTINATION ${LOGGER_INSTALL_BASE}/lib/cmake + INSTALL_DESTINATION ${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_LIBDIR}/cmake/Logger ) write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/LoggerConfigVersion.cmake @@ -62,16 +55,10 @@ write_basic_package_version_file( COMPATIBILITY SameMajorVersion ) -export( - EXPORT LoggerTargets - FILE ${CMAKE_CURRENT_BINARY_DIR}/LoggerTargets.cmake - NAMESPACE Logger:: -) - if(LOGGER_ENABLE_INSTALL) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/LoggerConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/LoggerConfigVersion.cmake - DESTINATION ${LOGGER_INSTALL_BASE}/lib/cmake + DESTINATION ${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_LIBDIR}/cmake/Logger ) -endif() + endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ff12f3b..7fa5b9f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -15,18 +15,15 @@ target_compile_features(${targetName} PUBLIC cxx_std_20) target_include_directories(${targetName} PUBLIC $ - $ + $ ) -set_target_properties(${targetName} PROPERTIES FOLDER "${IDE_FOLDER_SOURCE}") +set_target_properties(${targetName} PROPERTIES FOLDER "${IDE_FOLDER_SOURCE}" EXPORT_NAME Logger) # Setup project settings set_project_warnings(${targetName}) # Which warnings to enable set_compile_options(${targetName}) # Which extra compiler flags to enable set_output_directory(${targetName}) # Set the output directory of the library -# Copy header files to output after build -copy_headers_to_output("${targetName}" "${headers}" "Logger") - # Specify version target_compile_definitions(${targetName} PUBLIC LOGVERSION_MAJOR=1) target_compile_definitions(${targetName} PUBLIC LOGVERSION_MINOR=0) @@ -36,9 +33,9 @@ target_compile_definitions(${targetName} PUBLIC LOGVERSION_PATCH=0) if(LOGGER_ENABLE_INSTALL) install(TARGETS ${targetName} EXPORT LoggerTargets - ARCHIVE DESTINATION ${LOGGER_INSTALL_BASE}/lib/${LOGGER_INSTALL_ARCH}/${LOGGER_INSTALL_CONFIG} - LIBRARY DESTINATION ${LOGGER_INSTALL_BASE}/lib/${LOGGER_INSTALL_ARCH}/${LOGGER_INSTALL_CONFIG} - RUNTIME DESTINATION ${LOGGER_INSTALL_BASE}/bin/${LOGGER_INSTALL_ARCH}/${LOGGER_INSTALL_CONFIG} + ARCHIVE DESTINATION ${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_LIBDIR}/${LOGGER_INSTALL_ARCH}/${LOGGER_INSTALL_CONFIG} + LIBRARY DESTINATION ${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_LIBDIR}/${LOGGER_INSTALL_ARCH}/${LOGGER_INSTALL_CONFIG} + RUNTIME DESTINATION ${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_BINDIR}/${LOGGER_INSTALL_ARCH}/${LOGGER_INSTALL_CONFIG} ) install( DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/include/Logger @@ -47,6 +44,6 @@ if(LOGGER_ENABLE_INSTALL) install(EXPORT LoggerTargets FILE LoggerTargets.cmake NAMESPACE Logger:: - DESTINATION ${LOGGER_INSTALL_BASE}/lib/cmake + DESTINATION ${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_LIBDIR}/cmake/Logger ) endif() From e7a29367fee289ba23cbfc7646fb30093f90ea21 Mon Sep 17 00:00:00 2001 From: Oliver Benz Date: Fri, 26 Dec 2025 19:56:11 +0100 Subject: [PATCH 2/2] CMake: Fix ide directory. --- lib/FetchLibraries.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/FetchLibraries.cmake b/lib/FetchLibraries.cmake index f6896bb..53a19a8 100644 --- a/lib/FetchLibraries.cmake +++ b/lib/FetchLibraries.cmake @@ -11,7 +11,7 @@ FetchContent_Declare( set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) # For Windows: Prevent overriding the parent project's compiler/linker settings FetchContent_MakeAvailable(googletest) -set_target_properties(gtest PROPERTIES FOLDER "${ideFolderExternal}") -set_target_properties(gtest_main PROPERTIES FOLDER "${ideFolderExternal}") -set_target_properties(gmock PROPERTIES FOLDER "${ideFolderExternal}") -set_target_properties(gmock_main PROPERTIES FOLDER "${ideFolderExternal}") +set_target_properties(gtest PROPERTIES FOLDER "${IDE_FOLDER_EXTERNAL}") +set_target_properties(gtest_main PROPERTIES FOLDER "${IDE_FOLDER_EXTERNAL}") +set_target_properties(gmock PROPERTIES FOLDER "${IDE_FOLDER_EXTERNAL}") +set_target_properties(gmock_main PROPERTIES FOLDER "${IDE_FOLDER_EXTERNAL}")