Revert "Xcode: Obey SYSTEM keyword for includes (#15687)"
Revert commit v3.7.0-rc1~266^2 (Xcode: Obey SYSTEM keyword for includes, 2015-08-31). It worked for C, C++, and Swift but not for GNU Assembly files for which Xcode has no property to set flags. Closes: #16449
This commit is contained in:
parent
5cfc2e926a
commit
543dcb0ada
|
@ -1894,40 +1894,24 @@ 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::vector<std::string> includes;
|
||||||
|
this->CurrentLocalGenerator->GetIncludeDirectories(includes, gtgt, "C",
|
||||||
|
configName);
|
||||||
std::set<std::string> emitted;
|
std::set<std::string> emitted;
|
||||||
emitted.insert("/System/Library/Frameworks");
|
emitted.insert("/System/Library/Frameworks");
|
||||||
|
|
||||||
if (this->XcodeVersion < 60) {
|
for (std::vector<std::string>::iterator i = includes.begin();
|
||||||
std::vector<std::string> includes;
|
i != includes.end(); ++i) {
|
||||||
this->CurrentLocalGenerator->GetIncludeDirectories(includes, gtgt, "C",
|
if (this->NameResolvesToFramework(*i)) {
|
||||||
configName);
|
std::string frameworkDir = *i;
|
||||||
for (std::vector<std::string>::iterator i = includes.begin();
|
frameworkDir += "/../";
|
||||||
i != includes.end(); ++i) {
|
frameworkDir = cmSystemTools::CollapseFullPath(frameworkDir);
|
||||||
if (this->NameResolvesToFramework(*i)) {
|
if (emitted.insert(frameworkDir).second) {
|
||||||
std::string frameworkDir = *i;
|
fdirs.Add(this->XCodeEscapePath(frameworkDir));
|
||||||
frameworkDir += "/../";
|
|
||||||
frameworkDir = cmSystemTools::CollapseFullPath(frameworkDir);
|
|
||||||
if (emitted.insert(frameworkDir).second) {
|
|
||||||
fdirs.Add(this->XCodeEscapePath(frameworkDir));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
std::string incpath = this->XCodeEscapePath(*i);
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
std::string incpath = this->XCodeEscapePath(*i);
|
||||||
|
dirs.Add(incpath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Add framework search paths needed for linking.
|
// Add framework search paths needed for linking.
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
"$<$<CONFIG:${testConfig}>:${CMAKE_CURRENT_SOURCE_DIR}/config_specific>"
|
||||||
"${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)
|
add_library(consumer consumer.cpp)
|
||||||
target_link_libraries(consumer upstream config_specific)
|
target_link_libraries(consumer upstream config_specific)
|
||||||
|
|
Loading…
Reference in New Issue