diff options
author | Deniz Bahadir <dbahadir@benocs.com> | 2020-11-13 22:34:30 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2020-11-16 17:56:54 (GMT) |
commit | 7524501d893ad4a768c104a3ac6c62ceacc6a7ab (patch) | |
tree | 4b4b5bf9eb71a1e6b312fcec974c8355805ff3ae | |
parent | 01b473b81098e95ac3e6cbf173c78bf02bdf036c (diff) | |
download | CMake-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.cxx | 14 |
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); } } |