From 2a05f931e7fc8b00f3c8aa2faa7d7e2b5742a229 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Wed, 24 Apr 2024 20:17:39 +0200 Subject: [PATCH] build: `MP_UNITS_BUILD_AS_SYSTEM_HEADERS` restored (but renamed) --- CMakeLists.txt | 2 ++ docs/getting_started/installation_and_usage.md | 8 ++++++++ src/CMakeLists.txt | 7 +++++++ src/cmake/AddMPUnitsModule.cmake | 4 ++++ 4 files changed, 21 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index e43b7220..2cb45efc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,8 @@ enable_ccache(BASE_DIR ${PROJECT_SOURCE_DIR}) option(${projectPrefix}DEV_IWYU "Enables include-what-you-use" OFF) if(${projectPrefix}DEV_IWYU) + set(${projectPrefix}BUILD_AS_SYSTEM_HEADERS ON) + include(include-what-you-use) enable_iwyu( MAPPING_FILE "${PROJECT_SOURCE_DIR}/.mp-units.imp" diff --git a/docs/getting_started/installation_and_usage.md b/docs/getting_started/installation_and_usage.md index aba8cc37..8ecd0e5f 100644 --- a/docs/getting_started/installation_and_usage.md +++ b/docs/getting_started/installation_and_usage.md @@ -223,6 +223,14 @@ tools.build:compiler_executables={"c": "gcc-12", "cpp": "g++-12"} ### CMake options +[`MP_UNITS_BUILD_AS_SYSTEM_HEADERS`](#MP_UNITS_BUILD_AS_SYSTEM_HEADERS){ #MP_UNITS_BUILD_AS_SYSTEM_HEADERS } + +: [:octicons-tag-24: 2.2.0][as system headers support] · :octicons-milestone-24: `ON`/`OFF` (Default: `OFF`) + + Exports library as system headers. + + [as system headers support]: https://github.com/mpusz/mp-units/releases/tag/v2.2.0 + [`MP_UNITS_BUILD_CXX_MODULES`](#MP_UNITS_BUILD_CXX_MODULES){ #MP_UNITS_BUILD_CXX_MODULES } : [:octicons-tag-24: 2.2.0][build_cxx_modules support] · :octicons-milestone-24: `ON`/`OFF` (Default: `OFF`) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6ca25bda..ff1408f5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -36,9 +36,16 @@ include(CheckLibcxxInUse) check_libcxx_in_use(${projectPrefix}LIBCXX) # project build options +option(${projectPrefix}BUILD_AS_SYSTEM_HEADERS "Exports library as system headers" OFF) +message(STATUS "${projectPrefix}BUILD_AS_SYSTEM_HEADERS: ${${projectPrefix}BUILD_AS_SYSTEM_HEADERS}") + option(${projectPrefix}BUILD_CXX_MODULES "Add C++ modules to the list of default targets" OFF) message(STATUS "${projectPrefix}BUILD_CXX_MODULES: ${${projectPrefix}BUILD_CXX_MODULES}") +if(${projectPrefix}BUILD_AS_SYSTEM_HEADERS) + set(${projectPrefix}_AS_SYSTEM SYSTEM) +endif() + # project API settings function(cache_var_values name) set_property(CACHE ${projectPrefix}${name} PROPERTY STRINGS ${ARGN}) diff --git a/src/cmake/AddMPUnitsModule.cmake b/src/cmake/AddMPUnitsModule.cmake index b4da85c8..be007c90 100644 --- a/src/cmake/AddMPUnitsModule.cmake +++ b/src/cmake/AddMPUnitsModule.cmake @@ -70,6 +70,10 @@ function(add_mp_units_module name target_name) target_sources( ${target_name} PUBLIC FILE_SET HEADERS BASE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include FILES ${ARG_HEADERS} ) + target_include_directories( + ${target_name} ${${projectPrefix}_AS_SYSTEM} ${${projectPrefix}TARGET_SCOPE} + $ $ + ) endif() if(${projectPrefix}BUILD_CXX_MODULES)