summaryrefslogtreecommitdiffstats
path: root/Source/cmTargetPrecompileHeadersCommand.cxx
diff options
context:
space:
mode:
authorDaniel Pfeifer <daniel@pfeifer-mail.de>2015-03-12 16:44:36 (GMT)
committerCristian Adam <cristian.adam@gmail.com>2019-08-27 10:49:53 (GMT)
commit9b6797e71d28d4ee201cb0f8ed5efa39784a2af3 (patch)
tree7d2f9dea125a78743b12d6e000eccb5b0679dab8 /Source/cmTargetPrecompileHeadersCommand.cxx
parent0467a2f91b632e9eb69805b7f0a2034ed4c8f39e (diff)
downloadCMake-9b6797e71d28d4ee201cb0f8ed5efa39784a2af3.zip
CMake-9b6797e71d28d4ee201cb0f8ed5efa39784a2af3.tar.gz
CMake-9b6797e71d28d4ee201cb0f8ed5efa39784a2af3.tar.bz2
PCH: add target_precompile_headers command
Diffstat (limited to 'Source/cmTargetPrecompileHeadersCommand.cxx')
-rw-r--r--Source/cmTargetPrecompileHeadersCommand.cxx36
1 files changed, 36 insertions, 0 deletions
diff --git a/Source/cmTargetPrecompileHeadersCommand.cxx b/Source/cmTargetPrecompileHeadersCommand.cxx
new file mode 100644
index 0000000..30cf1be
--- /dev/null
+++ b/Source/cmTargetPrecompileHeadersCommand.cxx
@@ -0,0 +1,36 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#include "cmTargetPrecompileHeadersCommand.h"
+
+#include "cmMakefile.h"
+#include "cmMessageType.h"
+#include "cmStringAlgorithms.h"
+#include "cmTarget.h"
+
+bool cmTargetPrecompileHeadersCommand::InitialPass(
+ std::vector<std::string> const& args, cmExecutionStatus&)
+{
+ return this->HandleArguments(args, "PRECOMPILE_HEADERS");
+}
+
+void cmTargetPrecompileHeadersCommand::HandleMissingTarget(
+ const std::string& name)
+{
+ const std::string e =
+ cmStrCat("Cannot specify precompile headers for target \"", name,
+ "\" which is not built by this project.");
+ this->Makefile->IssueMessage(MessageType::FATAL_ERROR, e);
+}
+
+std::string cmTargetPrecompileHeadersCommand::Join(
+ const std::vector<std::string>& content)
+{
+ return cmJoin(content, ";");
+}
+
+bool cmTargetPrecompileHeadersCommand::HandleDirectContent(
+ cmTarget* tgt, const std::vector<std::string>& content, bool, bool)
+{
+ tgt->AppendProperty("PRECOMPILE_HEADERS", this->Join(content).c_str());
+ return true;
+}