cmTargetPrecompileHeadersCommand.cxx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #include "cmTargetPrecompileHeadersCommand.h"
  4. #include "cmMakefile.h"
  5. #include "cmMessageType.h"
  6. #include "cmStringAlgorithms.h"
  7. #include "cmTarget.h"
  8. bool cmTargetPrecompileHeadersCommand::InitialPass(
  9. std::vector<std::string> const& args, cmExecutionStatus&)
  10. {
  11. return this->HandleArguments(args, "PRECOMPILE_HEADERS", PROCESS_REUSE_FROM);
  12. }
  13. void cmTargetPrecompileHeadersCommand::HandleMissingTarget(
  14. const std::string& name)
  15. {
  16. const std::string e =
  17. cmStrCat("Cannot specify precompile headers for target \"", name,
  18. "\" which is not built by this project.");
  19. this->Makefile->IssueMessage(MessageType::FATAL_ERROR, e);
  20. }
  21. std::string cmTargetPrecompileHeadersCommand::Join(
  22. const std::vector<std::string>& content)
  23. {
  24. return cmJoin(content, ";");
  25. }
  26. bool cmTargetPrecompileHeadersCommand::HandleDirectContent(
  27. cmTarget* tgt, const std::vector<std::string>& content, bool, bool)
  28. {
  29. tgt->AppendProperty("PRECOMPILE_HEADERS", this->Join(content).c_str());
  30. return true;
  31. }