cmGlobalJOMMakefileGenerator.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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 cmGlobalJOMMakefileGenerator_h
  4. #define cmGlobalJOMMakefileGenerator_h
  5. #include "cmGlobalUnixMakefileGenerator3.h"
  6. /** \class cmGlobalJOMMakefileGenerator
  7. * \brief Write a JOM makefiles.
  8. *
  9. * cmGlobalJOMMakefileGenerator manages nmake build process for a tree
  10. */
  11. class cmGlobalJOMMakefileGenerator : public cmGlobalUnixMakefileGenerator3
  12. {
  13. public:
  14. cmGlobalJOMMakefileGenerator(cmake* cm);
  15. static cmGlobalGeneratorFactory* NewFactory()
  16. {
  17. return new cmGlobalGeneratorSimpleFactory<cmGlobalJOMMakefileGenerator>();
  18. }
  19. ///! Get the name for the generator.
  20. virtual std::string GetName() const
  21. {
  22. return cmGlobalJOMMakefileGenerator::GetActualName();
  23. }
  24. // use NMake Makefiles in the name so that scripts/tests that depend on the
  25. // name NMake Makefiles will work
  26. static std::string GetActualName() { return "NMake Makefiles JOM"; }
  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. void PrintCompilerAdvice(std::ostream& os, std::string const& lang,
  37. const char* envVar) const;
  38. };
  39. #endif