cmCPackPropertiesGenerator.cxx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include "cmCPackPropertiesGenerator.h"
  2. #include "cmOutputConverter.h"
  3. #include "cmLocalGenerator.h"
  4. cmCPackPropertiesGenerator::cmCPackPropertiesGenerator(
  5. cmLocalGenerator* lg,
  6. cmInstalledFile const& installedFile,
  7. std::vector<std::string> const& configurations):
  8. cmScriptGenerator("CPACK_BUILD_CONFIG", configurations),
  9. LG(lg),
  10. InstalledFile(installedFile)
  11. {
  12. this->ActionsPerConfig = true;
  13. }
  14. void cmCPackPropertiesGenerator::GenerateScriptForConfig(std::ostream& os,
  15. const std::string& config, Indent const& indent)
  16. {
  17. std::string const& expandedFileName =
  18. this->InstalledFile.GetNameExpression().Evaluate(this->LG->GetMakefile(),
  19. config);
  20. cmInstalledFile::PropertyMapType const& properties =
  21. this->InstalledFile.GetProperties();
  22. for(cmInstalledFile::PropertyMapType::const_iterator i = properties.begin();
  23. i != properties.end(); ++i)
  24. {
  25. std::string const& name = i->first;
  26. cmInstalledFile::Property const& property = i->second;
  27. os << indent << "set_property(INSTALL " <<
  28. cmOutputConverter::EscapeForCMake(expandedFileName) << " PROPERTY " <<
  29. cmOutputConverter::EscapeForCMake(name);
  30. for(cmInstalledFile::ExpressionVectorType::const_iterator
  31. j = property.ValueExpressions.begin();
  32. j != property.ValueExpressions.end(); ++j)
  33. {
  34. std::string value = (*j)->Evaluate(LG->GetMakefile(), config);
  35. os << " " << cmOutputConverter::EscapeForCMake(value);
  36. }
  37. os << ")\n";
  38. }
  39. }