diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2006-01-17 15:21:45 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2006-01-17 15:21:45 (GMT) |
commit | 9891260a6dab66c9ea44b5c2e244f3128625baf5 (patch) | |
tree | 930651e4383fe1d904cc9c493bd859cb97b530af /Source/cmGlobalWatcomWMakeGenerator.cxx | |
parent | 2694ad76c538333d3ff45613bd1201f97af003cd (diff) | |
download | CMake-9891260a6dab66c9ea44b5c2e244f3128625baf5.zip CMake-9891260a6dab66c9ea44b5c2e244f3128625baf5.tar.gz CMake-9891260a6dab66c9ea44b5c2e244f3128625baf5.tar.bz2 |
ENH: add support for watcom wmake and wcl386
Diffstat (limited to 'Source/cmGlobalWatcomWMakeGenerator.cxx')
-rw-r--r-- | Source/cmGlobalWatcomWMakeGenerator.cxx | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/Source/cmGlobalWatcomWMakeGenerator.cxx b/Source/cmGlobalWatcomWMakeGenerator.cxx new file mode 100644 index 0000000..a7c3770 --- /dev/null +++ b/Source/cmGlobalWatcomWMakeGenerator.cxx @@ -0,0 +1,65 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGlobalWatcomWMakeGenerator.h" +#include "cmLocalUnixMakefileGenerator3.h" +#include "cmMakefile.h" + +cmGlobalWatcomWMakeGenerator::cmGlobalWatcomWMakeGenerator() +{ + m_FindMakeProgramFile = "CMakeFindWMake.cmake"; + m_ForceUnixPaths = false; +} + +void cmGlobalWatcomWMakeGenerator::EnableLanguage(std::vector<std::string>const& l, + cmMakefile *mf) +{ + // pick a default + mf->AddDefinition("WATCOM", "1"); + mf->AddDefinition("CMAKE_MANGLE_OBJECT_FILE_NAMES", "1"); + mf->AddDefinition("CMAKE_WINDOWS_OBJECT_PATH", "1"); + mf->AddDefinition("CMAKE_MAKE_LINE_CONTINUE", "&"); + mf->AddDefinition("CMAKE_MAKE_SYMBOLIC_RULE", ".SYMBOLIC"); + mf->AddDefinition("CMAKE_NO_QUOTED_OBJECTS", "1"); + mf->AddDefinition("CMAKE_GENERATOR_CC", "wcl386"); + mf->AddDefinition("CMAKE_GENERATOR_CXX", "wcl386"); + this->cmGlobalUnixMakefileGenerator3::EnableLanguage(l, mf); +} + +///! Create a local generator appropriate to this Global Generator +cmLocalGenerator *cmGlobalWatcomWMakeGenerator::CreateLocalGenerator() +{ + cmLocalUnixMakefileGenerator3* lg = new cmLocalUnixMakefileGenerator3; + lg->SetSilentNoColon(true); + lg->SetEchoNeedsQuote(false); + lg->SetDefineWindowsNULL(true); + lg->SetWindowsShell(true); + lg->SetMakeSilentFlag("-s -h"); + lg->SetGlobalGenerator(this); + lg->SetIgnoreLibPrefix(true); + lg->SetPassMakeflags(false); + lg->SetUnixCD(false); + lg->SetIncludeDirective("!include"); + return lg; +} + +//---------------------------------------------------------------------------- +void cmGlobalWatcomWMakeGenerator::GetDocumentation(cmDocumentationEntry& entry) const +{ + entry.name = this->GetName(); + entry.brief = "Generates Watcom WMake makefiles."; + entry.full = ""; +} |