CMake Nightly Date Stamp
[kiteware-cmake.git] / Source / cmCPackPropertiesGenerator.cxx
blobfbf7d737f78cc812dab3c755e3a0c2ade77b7755
1 #include "cmCPackPropertiesGenerator.h"
3 #include <map>
4 #include <memory>
5 #include <ostream>
7 #include "cmGeneratorExpression.h"
8 #include "cmInstalledFile.h"
9 #include "cmOutputConverter.h"
11 cmCPackPropertiesGenerator::cmCPackPropertiesGenerator(
12 cmLocalGenerator* lg, cmInstalledFile const& installedFile,
13 std::vector<std::string> const& configurations)
14 : cmScriptGenerator("CPACK_BUILD_CONFIG", configurations)
15 , LG(lg)
16 , InstalledFile(installedFile)
18 this->ActionsPerConfig = true;
21 void cmCPackPropertiesGenerator::GenerateScriptForConfig(
22 std::ostream& os, const std::string& config, Indent indent)
24 std::string const& expandedFileName =
25 this->InstalledFile.GetNameExpression().Evaluate(this->LG, config);
27 cmInstalledFile::PropertyMapType const& properties =
28 this->InstalledFile.GetProperties();
30 for (cmInstalledFile::PropertyMapType::value_type const& i : properties) {
31 std::string const& name = i.first;
32 cmInstalledFile::Property const& property = i.second;
34 os << indent << "set_property(INSTALL "
35 << cmOutputConverter::EscapeForCMake(expandedFileName) << " PROPERTY "
36 << cmOutputConverter::EscapeForCMake(name);
38 for (cmInstalledFile::ExpressionVectorType::value_type const& j :
39 property.ValueExpressions) {
40 std::string value = j->Evaluate(this->LG, config);
41 os << " " << cmOutputConverter::EscapeForCMake(value);
44 os << ")\n";