1 #include "cmCPackPropertiesGenerator.h"
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
)
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
);