diff options
author | Brad King <brad.king@kitware.com> | 2014-05-28 16:34:36 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2014-05-28 16:34:36 (GMT) |
commit | 8df4d03d99ba88394d931f41d679defdd226b193 (patch) | |
tree | 7ef91610ab967bd8ba37e8d4c3fcd8cda407f44b /Source/cmCPackPropertiesGenerator.cxx | |
parent | ca2b012cb9dd488b74871bf481b1bb9154fdf804 (diff) | |
parent | d0b1d2a65be658663ce7314961e13036974f62e7 (diff) | |
download | CMake-8df4d03d99ba88394d931f41d679defdd226b193.zip CMake-8df4d03d99ba88394d931f41d679defdd226b193.tar.gz CMake-8df4d03d99ba88394d931f41d679defdd226b193.tar.bz2 |
Merge topic 'cpack-properties'
d0b1d2a6 CPackWiX: Implement CPACK_NEVER_OVERWRITE and CPACK_PERMANENT properties
15a8af21 Add an "installed file" property scope
Diffstat (limited to 'Source/cmCPackPropertiesGenerator.cxx')
-rw-r--r-- | Source/cmCPackPropertiesGenerator.cxx | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Source/cmCPackPropertiesGenerator.cxx b/Source/cmCPackPropertiesGenerator.cxx new file mode 100644 index 0000000..cf24c13 --- /dev/null +++ b/Source/cmCPackPropertiesGenerator.cxx @@ -0,0 +1,45 @@ +#include "cmCPackPropertiesGenerator.h" + +#include "cmLocalGenerator.h" + +cmCPackPropertiesGenerator::cmCPackPropertiesGenerator( + cmMakefile* mf, + cmInstalledFile const& installedFile, + std::vector<std::string> const& configurations): + cmScriptGenerator("CPACK_BUILD_CONFIG", configurations), + Makefile(mf), + InstalledFile(installedFile) +{ + this->ActionsPerConfig = true; +} + +void cmCPackPropertiesGenerator::GenerateScriptForConfig(std::ostream& os, + const std::string& config, Indent const& indent) +{ + std::string const& expandedFileName = + this->InstalledFile.GetNameExpression().Evaluate(this->Makefile, config); + + cmInstalledFile::PropertyMapType const& properties = + this->InstalledFile.GetProperties(); + + for(cmInstalledFile::PropertyMapType::const_iterator i = properties.begin(); + i != properties.end(); ++i) + { + std::string const& name = i->first; + cmInstalledFile::Property const& property = i->second; + + os << indent << "set_property(INSTALL " << + cmLocalGenerator::EscapeForCMake(expandedFileName) << " PROPERTY " << + cmLocalGenerator::EscapeForCMake(name); + + for(cmInstalledFile::ExpressionVectorType::const_iterator + j = property.ValueExpressions.begin(); + j != property.ValueExpressions.end(); ++j) + { + std::string value = (*j)->Evaluate(this->Makefile, config); + os << " " << cmLocalGenerator::EscapeForCMake(value); + } + + os << ")\n"; + } +} |