cmGlobalMSYSMakefileGenerator.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #ifndef cmGlobalMSYSMakefileGenerator_h
  4. #define cmGlobalMSYSMakefileGenerator_h
  5. #include <memory>
  6. #include "cmGlobalUnixMakefileGenerator3.h"
  7. /** \class cmGlobalMSYSMakefileGenerator
  8. * \brief Write a NMake makefiles.
  9. *
  10. * cmGlobalMSYSMakefileGenerator manages nmake build process for a tree
  11. */
  12. class cmGlobalMSYSMakefileGenerator : public cmGlobalUnixMakefileGenerator3
  13. {
  14. public:
  15. cmGlobalMSYSMakefileGenerator(cmake* cm);
  16. static std::unique_ptr<cmGlobalGeneratorFactory> NewFactory()
  17. {
  18. return std::unique_ptr<cmGlobalGeneratorFactory>(
  19. new cmGlobalGeneratorSimpleFactory<cmGlobalMSYSMakefileGenerator>());
  20. }
  21. //! Get the name for the generator.
  22. virtual std::string GetName() const
  23. {
  24. return cmGlobalMSYSMakefileGenerator::GetActualName();
  25. }
  26. static std::string GetActualName() { return "MSYS Makefiles"; }
  27. /** Get the documentation entry for this generator. */
  28. static void GetDocumentation(cmDocumentationEntry& entry);
  29. /**
  30. * Try to determine system information such as shared library
  31. * extension, pthreads, byte order etc.
  32. */
  33. virtual void EnableLanguage(std::vector<std::string> const& languages,
  34. cmMakefile*, bool optional);
  35. private:
  36. std::string FindMinGW(std::string const& makeloc);
  37. };
  38. #endif