summaryrefslogtreecommitdiff
path: root/Tests/IncludeDirectories/SystemIncludeDirectories/CMakeLists.txt
diff options
context:
space:
mode:
authorGregor Jasny <gjasny@googlemail.com>2015-08-31 22:33:37 +0200
committerGregor Jasny <gjasny@googlemail.com>2016-08-09 20:30:07 +0200
commit93ac2a78d5e0dbb6607105cc8d2a3f19ebdd8583 (patch)
tree0534a5c5a6241ca5dc5f75338ab3d1fc3028cd7d /Tests/IncludeDirectories/SystemIncludeDirectories/CMakeLists.txt
parent4689d16e8aa90e57a8456357251b6575131529d7 (diff)
downloadcmake-93ac2a78d5e0dbb6607105cc8d2a3f19ebdd8583.tar.gz
Xcode: Obey SYSTEM keyword for includes (#15687)
CMake used to put all header search paths into HEADER_SEARCH_PATHS attribute. Unfortunately this attribute does not support to declare a search path as a system include. As a hack one could add a -isystem /path to the cflags but then include ordering is not deterministic. A better approach was chosen with this patch by not filling HEADER_SEARCH_PATHS at all and to populate the C, C++, and Fortran flags directly. The include paths used by Xcode should be now identical to the ones used by Unix Makefiles and Ninja generator.
Diffstat (limited to 'Tests/IncludeDirectories/SystemIncludeDirectories/CMakeLists.txt')
-rw-r--r--Tests/IncludeDirectories/SystemIncludeDirectories/CMakeLists.txt15
1 files changed, 11 insertions, 4 deletions
diff --git a/Tests/IncludeDirectories/SystemIncludeDirectories/CMakeLists.txt b/Tests/IncludeDirectories/SystemIncludeDirectories/CMakeLists.txt
index dcee85eb48..5078f30999 100644
--- a/Tests/IncludeDirectories/SystemIncludeDirectories/CMakeLists.txt
+++ b/Tests/IncludeDirectories/SystemIncludeDirectories/CMakeLists.txt
@@ -15,10 +15,17 @@ target_include_directories(upstream SYSTEM PUBLIC
)
add_library(config_specific INTERFACE)
-set(testConfig ${CMAKE_BUILD_TYPE})
-target_include_directories(config_specific SYSTEM INTERFACE
- "$<$<CONFIG:${testConfig}>:${CMAKE_CURRENT_SOURCE_DIR}/config_specific>"
-)
+if(CMAKE_GENERATOR STREQUAL "Xcode")
+ # CMAKE_BUILD_TYPE does not work here for multi-config generators
+ target_include_directories(config_specific SYSTEM INTERFACE
+ "${CMAKE_CURRENT_SOURCE_DIR}/config_specific"
+ )
+else()
+ set(testConfig ${CMAKE_BUILD_TYPE})
+ target_include_directories(config_specific SYSTEM INTERFACE
+ "$<$<CONFIG:${testConfig}>:${CMAKE_CURRENT_SOURCE_DIR}/config_specific>"
+ )
+endif()
add_library(consumer consumer.cpp)
target_link_libraries(consumer upstream config_specific)