1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 file Copyright.txt or https://cmake.org/licensing for details. */
5 #include "cmConfigure.h" // IWYU pragma: keep
12 #include "cmBuildOptions.h"
13 #include "cmGlobalGeneratorFactory.h"
14 #include "cmGlobalUnixMakefileGenerator3.h"
19 /** \class cmGlobalWatcomWMakeGenerator
20 * \brief Write a NMake makefiles.
22 * cmGlobalWatcomWMakeGenerator manages nmake build process for a tree
24 class cmGlobalWatcomWMakeGenerator
: public cmGlobalUnixMakefileGenerator3
27 cmGlobalWatcomWMakeGenerator(cmake
* cm
);
28 static std::unique_ptr
<cmGlobalGeneratorFactory
> NewFactory()
30 return std::unique_ptr
<cmGlobalGeneratorFactory
>(
31 new cmGlobalGeneratorSimpleFactory
<cmGlobalWatcomWMakeGenerator
>());
33 //! Get the name for the generator.
34 std::string
GetName() const override
36 return cmGlobalWatcomWMakeGenerator::GetActualName();
38 static std::string
GetActualName() { return "Watcom WMake"; }
40 /** Get the documentation entry for this generator. */
41 static cmDocumentationEntry
GetDocumentation();
43 /** Tell the generator about the target system. */
44 bool SetSystemName(std::string
const& s
, cmMakefile
* mf
) override
;
47 * Try to determine system information such as shared library
48 * extension, pthreads, byte order etc.
50 void EnableLanguage(std::vector
<std::string
> const& languages
, cmMakefile
*,
51 bool optional
) override
;
53 bool AllowNotParallel() const override
{ return false; }
54 bool AllowDeleteOnError() const override
{ return false; }
56 bool IsGNUMakeJobServerAware() const override
{ return false; }
59 std::vector
<GeneratedMakeCommand
> GenerateBuildCommand(
60 const std::string
& makeProgram
, const std::string
& projectName
,
61 const std::string
& projectDir
, std::vector
<std::string
> const& targetNames
,
62 const std::string
& config
, int jobs
, bool verbose
,
63 const cmBuildOptions
& buildOptions
= cmBuildOptions(),
64 std::vector
<std::string
> const& makeOptions
=
65 std::vector
<std::string
>()) override
;
67 void PrintBuildCommandAdvice(std::ostream
& os
, int jobs
) const override
;