| /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying |
| file Copyright.txt or https://cmake.org/licensing for details. */ |
| #pragma once |
| |
| #include "cmConfigure.h" // IWYU pragma: keep |
| |
| #include <string> |
| #include <vector> |
| |
| class cmMakefile; |
| class cmExecutionStatus; |
| class cmSourceFile; |
| |
| bool cmSetPropertyCommand(std::vector<std::string> const& args, |
| cmExecutionStatus& status); |
| |
| namespace SetPropertyCommand { |
| bool HandleSourceFileDirectoryScopes( |
| cmExecutionStatus& status, std::vector<std::string>& source_file_directories, |
| std::vector<std::string>& source_file_target_directories, |
| std::vector<cmMakefile*>& directory_makefiles); |
| |
| bool HandleSourceFileDirectoryScopeValidation( |
| cmExecutionStatus& status, bool source_file_directory_option_enabled, |
| bool source_file_target_option_enabled, |
| std::vector<std::string>& source_file_directories, |
| std::vector<std::string>& source_file_target_directories); |
| |
| bool HandleAndValidateSourceFileDirectoryScopes( |
| cmExecutionStatus& status, bool source_directories_option_encountered, |
| bool source_target_directories_option_encountered, |
| std::vector<std::string>& source_directories, |
| std::vector<std::string>& source_target_directories, |
| std::vector<cmMakefile*>& source_file_directory_makefiles); |
| |
| bool HandleTestDirectoryScopes(cmExecutionStatus& status, |
| std::string& test_directory, |
| cmMakefile*& directory_makefile); |
| |
| bool HandleTestDirectoryScopeValidation(cmExecutionStatus& status, |
| bool test_directory_option_enabled, |
| std::string& test_directory); |
| |
| bool HandleAndValidateTestDirectoryScopes( |
| cmExecutionStatus& status, bool test_directory_option_encountered, |
| std::string& test_directory, cmMakefile*& test_directory_makefile); |
| |
| std::string MakeSourceFilePathAbsoluteIfNeeded( |
| cmExecutionStatus& status, const std::string& source_file_path, bool needed); |
| void MakeSourceFilePathsAbsoluteIfNeeded( |
| cmExecutionStatus& status, |
| std::vector<std::string>& source_files_absolute_paths, |
| std::vector<std::string>::const_iterator files_it_begin, |
| std::vector<std::string>::const_iterator files_it_end, bool needed); |
| |
| enum class PropertyOp |
| { |
| Remove, |
| Set, |
| Append, |
| AppendAsString |
| }; |
| |
| bool HandleAndValidateSourceFilePropertyGENERATED( |
| cmSourceFile* sf, std::string const& propertyValue, |
| PropertyOp op = PropertyOp::Set); |
| } |