diff options
author | Brad King <brad.king@kitware.com> | 2016-03-10 14:16:08 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2016-03-10 14:16:08 (GMT) |
commit | 707b400e749f73f614e7e317f89dab5404ad1212 (patch) | |
tree | 754ad67b582f8d55cde510484c93a4c8c7cce0b4 /Source | |
parent | af35bede1ad384d0959928e8b8403dc0c8e5bdc5 (diff) | |
parent | 111cd679191c8aa4e081765ac4f7bc2e08657c7f (diff) | |
download | CMake-707b400e749f73f614e7e317f89dab5404ad1212.zip CMake-707b400e749f73f614e7e317f89dab5404ad1212.tar.gz CMake-707b400e749f73f614e7e317f89dab5404ad1212.tar.bz2 |
Merge topic 'xcode-regenerate-on-deleted-files'
111cd679 Xcode: ReRunCMake even if files disappeared (#15992)
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmGlobalXCodeGenerator.cxx | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index ef18729..7c85281 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -593,19 +593,28 @@ void cmGlobalXCodeGenerator::CreateReRunCMakeFile( cmGeneratedFileStream makefileStream (this->CurrentReRunCMakeMakefile.c_str()); makefileStream.SetCopyIfDifferent(true); - makefileStream << "# Generated by CMake, DO NOT EDIT\n"; - std::string checkCache = root->GetBinaryDirectory(); - checkCache += "/"; - checkCache += cmake::GetCMakeFilesDirectoryPostSlash(); - checkCache += "cmake.check_cache"; - makefileStream << this->ConvertToRelativeForMake(checkCache.c_str()) - << ": "; + makefileStream << "# Generated by CMake, DO NOT EDIT\n\n"; + + makefileStream << "empty:= \n"; + makefileStream << "space:= $(empty) $(empty)\n"; + makefileStream << "spaceplus:= $(empty)\\ $(empty)\n\n"; + for(std::vector<std::string>::const_iterator i = lfiles.begin(); i != lfiles.end(); ++i) { - makefileStream << "\\\n" << this->ConvertToRelativeForMake(i->c_str()); + makefileStream << "TARGETS += $(subst $(space),$(spaceplus),$(wildcard " + << this->ConvertToRelativeForMake(i->c_str()) + << "))\n"; } - makefileStream << "\n\t" << + + std::string checkCache = root->GetBinaryDirectory(); + checkCache += "/"; + checkCache += cmake::GetCMakeFilesDirectoryPostSlash(); + checkCache += "cmake.check_cache"; + + makefileStream << "\n" << this->ConvertToRelativeForMake(checkCache.c_str()) + << ": $(TARGETS)\n"; + makefileStream << "\t" << this->ConvertToRelativeForMake(cmSystemTools::GetCMakeCommand().c_str()) << " -H" << this->ConvertToRelativeForMake( root->GetSourceDirectory()) |