cmLocalGhsMultiGenerator.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*============================================================================
  2. CMake - Cross Platform Makefile Generator
  3. Copyright 2015 Geoffrey Viola <[email protected]>
  4. Distributed under the OSI-approved BSD License (the "License");
  5. see accompanying file Copyright.txt for details.
  6. This software is distributed WITHOUT ANY WARRANTY; without even the
  7. implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  8. See the License for more information.
  9. ============================================================================*/
  10. #ifndef cmLocalGhsMultiGenerator_h
  11. #define cmLocalGhsMultiGenerator_h
  12. #include "cmLocalGenerator.h"
  13. class cmGeneratedFileStream;
  14. /** \class cmLocalGhsMultiGenerator
  15. * \brief Write Green Hills MULTI project files.
  16. *
  17. * cmLocalGhsMultiGenerator produces a set of .gpj
  18. * file for each target in its mirrored directory.
  19. */
  20. class cmLocalGhsMultiGenerator : public cmLocalGenerator
  21. {
  22. public:
  23. cmLocalGhsMultiGenerator(cmGlobalGenerator* gg, cmLocalGenerator* parent);
  24. virtual ~cmLocalGhsMultiGenerator();
  25. /// @returns the relative path between the HomeOutputDirectory and this
  26. /// local generators StartOutputDirectory.
  27. std::string GetHomeRelativeOutputPath() const
  28. {
  29. return this->HomeRelativeOutputPath;
  30. }
  31. /**
  32. * Generate the makefile for this directory.
  33. */
  34. virtual void Generate();
  35. /// Overloaded methods. @see cmLocalGenerator::Configure()
  36. virtual void Configure();
  37. const char *GetBuildFileName() { return this->BuildFileName.c_str(); }
  38. protected:
  39. virtual bool CustomCommandUseLocal() const { return true; }
  40. private:
  41. std::string BuildFileName;
  42. std::string HomeRelativeOutputPath;
  43. };
  44. #endif