summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-08-24 14:50:28 (GMT)
committerBrad King <brad.king@kitware.com>2017-08-24 14:56:48 (GMT)
commit9ecee256f85022028f1b46477d0e49cd1dfeb4a4 (patch)
treee401cf5f11905cf09cfcbf3ad94325c5a859c181
parent3f17ccce1cc5b2c307aac866d9fd19aba73fd979 (diff)
downloadCMake-9ecee256f85022028f1b46477d0e49cd1dfeb4a4.zip
CMake-9ecee256f85022028f1b46477d0e49cd1dfeb4a4.tar.gz
CMake-9ecee256f85022028f1b46477d0e49cd1dfeb4a4.tar.bz2
Xcode: Revert addition of "outputPaths" to custom command build phase
The change in commit v3.9.0~3^2 (Xcode: Add "outputPaths" to custom command script build phase, 2017-07-13) was meant to support Xcode 9's new build system. However, without matching "inputPaths", Xcode will not re-run the build phase if its outputs have already been generated. This broke the old Xcode build system too. Revert the change for now so at least the old Xcode build system works. Further investigation will be needed to add proper support for Xcode 9's new build system. Fixes: #17178
-rw-r--r--Help/release/3.9.rst7
-rw-r--r--Source/cmGlobalXCodeGenerator.cxx11
2 files changed, 5 insertions, 13 deletions
diff --git a/Help/release/3.9.rst b/Help/release/3.9.rst
index 5087b43..897e268 100644
--- a/Help/release/3.9.rst
+++ b/Help/release/3.9.rst
@@ -34,8 +34,6 @@ Generators
This is an experimental feature and can be activated by setting the
:variable:`CMAKE_XCODE_GENERATE_SCHEME` variable to a ``TRUE`` value.
-* The :generator:`Xcode` generator now supports Xcode 9.
-
Commands
--------
@@ -337,3 +335,8 @@ Changes made since CMake 3.9.0 include the following.
* On macOS, the default application bundle ``Info.plist`` file no longer
enables Hi-DPI support as it did in 3.9.0 and 3.9.1. The change had
to be reverted because it broke iOS applications.
+
+* The Xcode generator no longer adds "outputPaths" to custom script
+ build phases as it did in 3.9.0 and 3.9.1. This was added in an
+ attempt to support Xcode 9's new build system, but broke incremental
+ rebuilds for both the old and new Xcode build systems.
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 3cd14e1..9037961 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -1517,17 +1517,6 @@ void cmGlobalXCodeGenerator::AddCommandsToBuildPhase(
makecmd += " all";
buildphase->AddAttribute("shellScript", this->CreateString(makecmd));
buildphase->AddAttribute("showEnvVarsInLog", this->CreateString("0"));
-
- cmXCodeObject* outputFiles = this->CreateObject(cmXCodeObject::OBJECT_LIST);
- for (std::vector<cmCustomCommand>::const_iterator i = commands.begin();
- i != commands.end(); ++i) {
- std::vector<std::string> const& outputs = i->GetOutputs();
- for (std::vector<std::string>::const_iterator j = outputs.begin();
- j != outputs.end(); ++j) {
- outputFiles->AddObject(this->CreateString(*j));
- }
- }
- buildphase->AddAttribute("outputPaths", outputFiles);
}
void cmGlobalXCodeGenerator::CreateCustomRulesMakefile(