summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorMarc Chevrier <marc.chevrier@gmail.com>2019-08-04 10:49:16 +0200
committerBrad King <brad.king@kitware.com>2019-09-20 10:01:37 -0400
commitc688b401d3adaacc820ef4b589010e8aefa808b1 (patch)
tree83e46e3dc7c9847692e61d0e6629b1cf9b65d2a5 /CMakeLists.txt
parent9c31d83aa2a3d3f5921f4a5a559e126e285b96c5 (diff)
downloadcmake-c688b401d3adaacc820ef4b589010e8aefa808b1.tar.gz
cmstd: Modernize CMake system headers
Provide a standardized way to handle the C++ "standard" headers customized to be used with current CMake C++ standard constraints. Offer under directory `cm` headers which can be used as direct replacements of the standard ones. For example: #include <cm/string_view> can be used safely for CMake development in place of the `<string_view>` standard header. Fixes: #19491
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt13
1 files changed, 13 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 21e8c467c8..da99a6ee8d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -368,11 +368,24 @@ macro (CMAKE_BUILD_UTILITIES)
# Setup third-party libraries.
# Everything in the tree should be able to include files from the
# Utilities directory.
+ if (CMAKE_SYSTEM_NAME STREQUAL "AIX" AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ # using -isystem option generate error "template with C linkage"
+ include_directories("${CMake_SOURCE_DIR}/Utilities/std")
+ else()
+ include_directories(SYSTEM "${CMake_SOURCE_DIR}/Utilities/std")
+ endif()
+
include_directories(
${CMake_BINARY_DIR}/Utilities
${CMake_SOURCE_DIR}/Utilities
)
+ #---------------------------------------------------------------------
+ # Build CMake std library for CMake and CTest.
+ set(CMAKE_STD_LIBRARY cmstd)
+ add_subdirectory(Utilities/std)
+ CMAKE_SET_TARGET_FOLDER(cmstd "Utilities/std")
+
# check for the use of system libraries versus builtin ones
# (a macro defined in this file)
CMAKE_HANDLE_SYSTEM_LIBRARIES()