1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 file Copyright.txt or https://cmake.org/licensing for details. */
5 #include "cmConfigure.h" // IWYU pragma: keep
11 class cmExecutionStatus;
14 bool cmSetPropertyCommand(std::vector<std::string> const& args,
15 cmExecutionStatus& status);
17 namespace SetPropertyCommand {
18 bool HandleSourceFileDirectoryScopes(
19 cmExecutionStatus& status, std::vector<std::string>& source_file_directories,
20 std::vector<std::string>& source_file_target_directories,
21 std::vector<cmMakefile*>& directory_makefiles);
23 bool HandleSourceFileDirectoryScopeValidation(
24 cmExecutionStatus& status, bool source_file_directory_option_enabled,
25 bool source_file_target_option_enabled,
26 std::vector<std::string>& source_file_directories,
27 std::vector<std::string>& source_file_target_directories);
29 bool HandleAndValidateSourceFileDirectoryScopes(
30 cmExecutionStatus& status, bool source_directories_option_encountered,
31 bool source_target_directories_option_encountered,
32 std::vector<std::string>& source_directories,
33 std::vector<std::string>& source_target_directories,
34 std::vector<cmMakefile*>& source_file_directory_makefiles);
36 std::string MakeSourceFilePathAbsoluteIfNeeded(
37 cmExecutionStatus& status, const std::string& source_file_path, bool needed);
38 void MakeSourceFilePathsAbsoluteIfNeeded(
39 cmExecutionStatus& status,
40 std::vector<std::string>& source_files_absolute_paths,
41 std::vector<std::string>::const_iterator files_it_begin,
42 std::vector<std::string>::const_iterator files_it_end, bool needed);
52 bool HandleAndValidateSourceFilePropertyGENERATED(
53 cmSourceFile* sf, std::string const& propertyValue,
54 PropertyOp op = PropertyOp::Set);