summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDeniz Bahadir <dbahadir@benocs.com>2020-11-13 22:34:30 (GMT)
committerBrad King <brad.king@kitware.com>2020-11-16 17:56:54 (GMT)
commit7524501d893ad4a768c104a3ac6c62ceacc6a7ab (patch)
tree4b4b5bf9eb71a1e6b312fcec974c8355805ff3ae
parent01b473b81098e95ac3e6cbf173c78bf02bdf036c (diff)
downloadCMake-7524501d893ad4a768c104a3ac6c62ceacc6a7ab.zip
CMake-7524501d893ad4a768c104a3ac6c62ceacc6a7ab.tar.gz
CMake-7524501d893ad4a768c104a3ac6c62ceacc6a7ab.tar.bz2
PCH: Do not mark PCH-header as generated
The PCH header file itself is written by CMake and is not generated by part of the buildsystem. Therefore the `GENERATED` property is not appropriate to set because the file is always present before the build starts. We already do not mark the PCH source file as `GENERATED` either. This is a preparation for solving #18399, which will no longer allow to unset the `GENERATED` property from a source-file once it was set. Fixes: #21437 Signed-off-by: Deniz Bahadir <dbahadir@benocs.com>
-rw-r--r--Source/cmLocalGenerator.cxx14
1 files changed, 8 insertions, 6 deletions
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 2054200..8a3f285 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -2607,14 +2607,16 @@ void cmLocalGenerator::AddPchDependencies(cmGeneratorTarget* target)
// Add pchHeader to source files, which will
// be grouped as "Precompile Header File"
auto pchHeader_sf = this->Makefile->GetOrCreateSource(
- pchHeader, true, cmSourceFileLocationKind::Known);
+ pchHeader, false, cmSourceFileLocationKind::Known);
std::string err;
pchHeader_sf->ResolveFullPath(&err);
-
- // The pch file is generated, but mark it as not generated
- // so that a clean operation will not remove it from disk
- pchHeader_sf->SetProperty("GENERATED", "0");
-
+ if (!err.empty()) {
+ std::ostringstream msg;
+ msg << "Unable to resolve full path of PCH-header '" << pchHeader
+ << "' assigned to target " << target->GetName()
+ << ", although its path is supposed to be known!";
+ this->IssueMessage(MessageType::FATAL_ERROR, msg.str());
+ }
target->AddSource(pchHeader);
}
}