cmSetPropertyCommand.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file LICENSE.rst or https://cmake.org/licensing for details. */
  3. #pragma once
  4. #include "cmConfigure.h" // IWYU pragma: keep
  5. #include <string>
  6. #include <vector>
  7. class cmMakefile;
  8. class cmExecutionStatus;
  9. class cmSourceFile;
  10. class cmTarget;
  11. bool cmSetPropertyCommand(std::vector<std::string> const& args,
  12. cmExecutionStatus& status);
  13. namespace SetPropertyCommand {
  14. bool HandleFileSetTargetScopes(cmExecutionStatus& status,
  15. std::string& file_set_target_name,
  16. cmTarget*& file_set_target);
  17. bool HandleFileSetTargetScopeValidation(cmExecutionStatus& status,
  18. bool file_set_target_option_enabled,
  19. std::string& file_set_target_name);
  20. bool HandleAndValidateFileSetTargetScopes(cmExecutionStatus& status,
  21. bool file_set_target_option_enabled,
  22. std::string& file_set_target_name,
  23. cmTarget*& file_set_target);
  24. bool HandleSourceFileDirectoryScopes(
  25. cmExecutionStatus& status, std::vector<std::string>& source_file_directories,
  26. std::vector<std::string>& source_file_target_directories,
  27. std::vector<cmMakefile*>& directory_makefiles);
  28. bool HandleSourceFileDirectoryScopeValidation(
  29. cmExecutionStatus& status, bool source_file_directory_option_enabled,
  30. bool source_file_target_option_enabled,
  31. std::vector<std::string>& source_file_directories,
  32. std::vector<std::string>& source_file_target_directories);
  33. bool HandleAndValidateSourceFileDirectoryScopes(
  34. cmExecutionStatus& status, bool source_directories_option_encountered,
  35. bool source_target_directories_option_encountered,
  36. std::vector<std::string>& source_directories,
  37. std::vector<std::string>& source_target_directories,
  38. std::vector<cmMakefile*>& source_file_directory_makefiles);
  39. bool HandleTestDirectoryScopes(cmExecutionStatus& status,
  40. std::string& test_directory,
  41. cmMakefile*& directory_makefile);
  42. bool HandleTestDirectoryScopeValidation(cmExecutionStatus& status,
  43. bool test_directory_option_enabled,
  44. std::string& test_directory);
  45. bool HandleAndValidateTestDirectoryScopes(
  46. cmExecutionStatus& status, bool test_directory_option_encountered,
  47. std::string& test_directory, cmMakefile*& test_directory_makefile);
  48. std::string MakeSourceFilePathAbsoluteIfNeeded(
  49. cmExecutionStatus& status, std::string const& source_file_path, bool needed);
  50. void MakeSourceFilePathsAbsoluteIfNeeded(
  51. cmExecutionStatus& status,
  52. std::vector<std::string>& source_files_absolute_paths,
  53. std::vector<std::string>::const_iterator files_it_begin,
  54. std::vector<std::string>::const_iterator files_it_end, bool needed);
  55. enum class PropertyOp
  56. {
  57. Remove,
  58. Set,
  59. Append,
  60. AppendAsString
  61. };
  62. bool HandleAndValidateSourceFilePropertyGENERATED(
  63. cmSourceFile* sf, std::string const& propertyValue,
  64. PropertyOp op = PropertyOp::Set);
  65. }