From 65c7bda3969b2f0d50567c9cee9dea14da9dd7a5 Mon Sep 17 00:00:00 2001 From: Enrico Seiler Date: Fri, 29 Dec 2023 17:41:19 +0100 Subject: [PATCH] [INFRA] Use ccache everywhere --- cmake/ccache.cmake | 32 ++++++++++++++++++++++++---- test/raptor-test.cmake | 1 + util/applications/src/CMakeLists.txt | 1 + util/iScience/CMakeLists.txt | 2 +- util/test/CMakeLists.txt | 1 + 5 files changed, 32 insertions(+), 5 deletions(-) diff --git a/cmake/ccache.cmake b/cmake/ccache.cmake index 16e8c42b..a21ff500 100644 --- a/cmake/ccache.cmake +++ b/cmake/ccache.cmake @@ -15,10 +15,8 @@ include (FindPackageMessage) # * https://ccache.dev/ # * https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_LAUNCHER.html macro (raptor_require_ccache) - set (RAPTOR_USE_CCACHE - ON - CACHE BOOL "Use ccache if available." - ) + option (RAPTOR_USE_CCACHE "Use ccache if available." ON) + option (RAPTOR_USE_CCACHE_IN_PARENT_PROJECT "Use ccache in parent project if available." OFF) set (RAPTOR_FPROFILE_ABS_PATH "-fprofile-abs-path") if (RAPTOR_USE_CCACHE) find_program (CCACHE_PROGRAM ccache) @@ -42,7 +40,33 @@ macro (raptor_require_ccache) list (PREPEND CMAKE_C_LINKER_LAUNCHER "${CCACHE_PROGRAM}") list (APPEND SEQAN3_EXTERNAL_PROJECT_CMAKE_ARGS "-DCMAKE_CXX_LINKER_LAUNCHER=${CMAKE_CXX_LINKER_LAUNCHER}") list (APPEND SEQAN3_EXTERNAL_PROJECT_CMAKE_ARGS "-DCMAKE_C_LINKER_LAUNCHER=${CMAKE_C_LINKER_LAUNCHER}") + endif () + if (RAPTOR_USE_CCACHE_IN_PARENT_PROJECT) + set (RAPTOR_FPROFILE_ABS_PATH + ${RAPTOR_FPROFILE_ABS_PATH} + PARENT_SCOPE + ) + set (SEQAN3_EXTERNAL_PROJECT_CMAKE_ARGS + ${SEQAN3_EXTERNAL_PROJECT_CMAKE_ARGS} + PARENT_SCOPE + ) + set (CMAKE_CXX_COMPILER_LAUNCHER + ${CMAKE_CXX_COMPILER_LAUNCHER} + PARENT_SCOPE + ) + set (CMAKE_C_COMPILER_LAUNCHER + ${CMAKE_C_COMPILER_LAUNCHER} + PARENT_SCOPE + ) + set (CMAKE_CXX_LINKER_LAUNCHER + ${CMAKE_CXX_LINKER_LAUNCHER} + PARENT_SCOPE + ) + set (CMAKE_C_LINKER_LAUNCHER + ${CMAKE_C_LINKER_LAUNCHER} + PARENT_SCOPE + ) endif () unset (CCACHE_PROGRAM) endif () diff --git a/test/raptor-test.cmake b/test/raptor-test.cmake index 54962f87..3153db6a 100644 --- a/test/raptor-test.cmake +++ b/test/raptor-test.cmake @@ -22,6 +22,7 @@ message (STATUS "${ColourBold}Configuring tests${ColourReset}") # ---------------------------------------------------------------------------- get_filename_component (RAPTOR_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/.." ABSOLUTE) +option (RAPTOR_USE_CCACHE_IN_PARENT_PROJECT "" ON) add_subdirectory ("${RAPTOR_ROOT_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/raptor") set_property (TARGET raptor PROPERTY RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") target_compile_options (raptor_raptor INTERFACE "-pedantic" "-Wall" "-Wextra" "-Werror") diff --git a/util/applications/src/CMakeLists.txt b/util/applications/src/CMakeLists.txt index 9547174c..ce36ae4e 100644 --- a/util/applications/src/CMakeLists.txt +++ b/util/applications/src/CMakeLists.txt @@ -11,6 +11,7 @@ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") get_filename_component (RAPTOR_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/../../.." ABSOLUTE) +option (RAPTOR_USE_CCACHE_IN_PARENT_PROJECT "" ON) add_subdirectory ("${RAPTOR_ROOT_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/raptor") add_library (utility_common INTERFACE) diff --git a/util/iScience/CMakeLists.txt b/util/iScience/CMakeLists.txt index 15e74c52..094ffa97 100644 --- a/util/iScience/CMakeLists.txt +++ b/util/iScience/CMakeLists.txt @@ -12,11 +12,11 @@ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") get_filename_component (RAPTOR_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE) +option (RAPTOR_USE_CCACHE_IN_PARENT_PROJECT "" ON) add_subdirectory ("${RAPTOR_ROOT_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/raptor") # Define cmake configuration flags to configure and build external projects with the same flags as specified for # this project. -set (SEQAN3_EXTERNAL_PROJECT_CMAKE_ARGS "") list (APPEND SEQAN3_EXTERNAL_PROJECT_CMAKE_ARGS "--no-warn-unused-cli") list (APPEND SEQAN3_EXTERNAL_PROJECT_CMAKE_ARGS "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}") list (APPEND SEQAN3_EXTERNAL_PROJECT_CMAKE_ARGS "-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -w") diff --git a/util/test/CMakeLists.txt b/util/test/CMakeLists.txt index 9fad48f6..aa544898 100644 --- a/util/test/CMakeLists.txt +++ b/util/test/CMakeLists.txt @@ -14,6 +14,7 @@ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") get_filename_component (RAPTOR_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE) +option (RAPTOR_USE_CCACHE_IN_PARENT_PROJECT "" ON) add_subdirectory ("${RAPTOR_ROOT_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/raptor") target_compile_options (raptor_raptor INTERFACE "-pedantic" "-Wall" "-Wextra" "-Werror")