You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.6 KiB

  1. /*=========================================================================
  2. Program: CMake - Cross-Platform Makefile Generator
  3. Module: $RCSfile$
  4. Language: C++
  5. Date: $Date$
  6. Version: $Revision$
  7. Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
  8. See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
  9. This software is distributed WITHOUT ANY WARRANTY; without even
  10. the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  11. PURPOSE. See the above copyright notices for more information.
  12. =========================================================================*/
  13. #include "cmInstallScriptGenerator.h"
  14. //----------------------------------------------------------------------------
  15. cmInstallScriptGenerator
  16. ::cmInstallScriptGenerator(const char* script, bool code,
  17. const char* component) :
  18. cmInstallGenerator(0, std::vector<std::string>(), component),
  19. Script(script), Code(code)
  20. {
  21. }
  22. //----------------------------------------------------------------------------
  23. cmInstallScriptGenerator
  24. ::~cmInstallScriptGenerator()
  25. {
  26. }
  27. //----------------------------------------------------------------------------
  28. void cmInstallScriptGenerator::GenerateScript(std::ostream& os)
  29. {
  30. Indent indent;
  31. std::string component_test =
  32. this->CreateComponentTest(this->Component.c_str());
  33. os << indent << "IF(" << component_test << ")\n";
  34. if(this->Code)
  35. {
  36. os << indent.Next() << this->Script << "\n";
  37. }
  38. else
  39. {
  40. os << indent.Next() << "INCLUDE(\"" << this->Script << "\")\n";
  41. }
  42. os << indent << "ENDIF(" << component_test << ")\n\n";
  43. }