Merge branch '16449-revert-xcode-system-includes' into release

This commit is contained in:
Brad King 2016-11-28 13:57:56 -05:00
commit ca7a52fc59
3 changed files with 19 additions and 44 deletions

View File

@ -1894,13 +1894,12 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmGeneratorTarget* gtgt,
BuildObjectListOrString dirs(this, this->XcodeVersion >= 30); BuildObjectListOrString dirs(this, this->XcodeVersion >= 30);
BuildObjectListOrString fdirs(this, this->XcodeVersion >= 30); BuildObjectListOrString fdirs(this, this->XcodeVersion >= 30);
std::set<std::string> emitted;
emitted.insert("/System/Library/Frameworks");
if (this->XcodeVersion < 60) {
std::vector<std::string> includes; std::vector<std::string> includes;
this->CurrentLocalGenerator->GetIncludeDirectories(includes, gtgt, "C", this->CurrentLocalGenerator->GetIncludeDirectories(includes, gtgt, "C",
configName); configName);
std::set<std::string> emitted;
emitted.insert("/System/Library/Frameworks");
for (std::vector<std::string>::iterator i = includes.begin(); for (std::vector<std::string>::iterator i = includes.begin();
i != includes.end(); ++i) { i != includes.end(); ++i) {
if (this->NameResolvesToFramework(*i)) { if (this->NameResolvesToFramework(*i)) {
@ -1915,21 +1914,6 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmGeneratorTarget* gtgt,
dirs.Add(incpath); dirs.Add(incpath);
} }
} }
} else {
for (std::set<std::string>::iterator li = languages.begin();
li != languages.end(); ++li) {
std::vector<std::string> includes;
this->CurrentLocalGenerator->GetIncludeDirectories(includes, gtgt, *li,
configName);
std::string includeFlags = this->CurrentLocalGenerator->GetIncludeFlags(
includes, gtgt, *li, true, false, configName);
std::string& flags = cflags[*li];
if (!includeFlags.empty()) {
flags += " " + includeFlags;
}
}
}
// Add framework search paths needed for linking. // Add framework search paths needed for linking.
if (cmComputeLinkInformation* cli = gtgt->GetLinkInformation(configName)) { if (cmComputeLinkInformation* cli = gtgt->GetLinkInformation(configName)) {
std::vector<std::string> const& fwDirs = cli->GetFrameworkPaths(); std::vector<std::string> const& fwDirs = cli->GetFrameworkPaths();

View File

@ -3,9 +3,7 @@ project(IncludeDirectories)
if (((CMAKE_C_COMPILER_ID STREQUAL GNU AND CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.4) if (((CMAKE_C_COMPILER_ID STREQUAL GNU AND CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.4)
OR CMAKE_C_COMPILER_ID STREQUAL Clang OR CMAKE_C_COMPILER_ID STREQUAL AppleClang) OR CMAKE_C_COMPILER_ID STREQUAL Clang OR CMAKE_C_COMPILER_ID STREQUAL AppleClang)
AND (CMAKE_GENERATOR STREQUAL "Unix Makefiles" AND (CMAKE_GENERATOR STREQUAL "Unix Makefiles" OR CMAKE_GENERATOR STREQUAL "Ninja"))
OR CMAKE_GENERATOR STREQUAL "Ninja"
OR (CMAKE_GENERATOR STREQUAL "Xcode" AND NOT XCODE_VERSION VERSION_LESS 6.0)))
include(CheckCXXCompilerFlag) include(CheckCXXCompilerFlag)
check_cxx_compiler_flag(-Wunused-variable run_sys_includes_test) check_cxx_compiler_flag(-Wunused-variable run_sys_includes_test)
if(run_sys_includes_test) if(run_sys_includes_test)

View File

@ -15,17 +15,10 @@ target_include_directories(upstream SYSTEM PUBLIC
) )
add_library(config_specific INTERFACE) add_library(config_specific INTERFACE)
if(CMAKE_GENERATOR STREQUAL "Xcode") set(testConfig ${CMAKE_BUILD_TYPE})
# CMAKE_BUILD_TYPE does not work here for multi-config generators target_include_directories(config_specific SYSTEM INTERFACE
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>" "$<$<CONFIG:${testConfig}>:${CMAKE_CURRENT_SOURCE_DIR}/config_specific>"
) )
endif()
add_library(consumer consumer.cpp) add_library(consumer consumer.cpp)
target_link_libraries(consumer upstream config_specific) target_link_libraries(consumer upstream config_specific)