Brad, I attached corrected patch.
Regards Jiri > On 03/16/2014 07:43 AM, Jiri Malak wrote: >> I enclosed patch, which enable generation of wmake makefiles on Linux host. > > The CMake condition > > if(WIN32 OR UNIX AND NOT APPLE) > > and the preprocessor condition > > #if defined(_WIN32) || defined(__linux__) > > are not fully equivalent. Instead you could perform the test in > the CMake code, perhaps using CMAKE_SYSTEM_NAME, and then tell > cmake.cxx about it with > > set_property(SOURCE cmake.cxx PROPERTY COMPILE_DEFINITIONS USE_WMAKE) > > Thanks, > -Brad > >
>From af4e8fa9d8c81e0144df9b1907acc3a34773a296 Mon Sep 17 00:00:00 2001 From: Jiri Malak <malak.j...@gmail.com> Date: Mon, 17 Mar 2014 19:30:38 +0100 Subject: [PATCH] Enable WMake generator on Linux --- Source/CMakeLists.txt | 10 +++++++++- Source/cmGlobalWatcomWMakeGenerator.cxx | 4 ++++ Source/cmake.cxx | 10 +++++++--- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 9fb8d9a..936bfcf 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -404,7 +404,6 @@ if (WIN32) cmGlobalVisualStudio12Generator.cxx cmGlobalVisualStudioGenerator.cxx cmGlobalVisualStudioGenerator.h - cmGlobalWatcomWMakeGenerator.cxx cmIDEFlagTable.h cmIDEOptions.cxx cmIDEOptions.h @@ -424,6 +423,15 @@ if (WIN32) endif() endif () +# Watcom support +if(WIN32 OR "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") + set_property(SOURCE cmake.cxx PROPERTY COMPILE_DEFINITIONS USE_WMAKE) + set(SRCS ${SRCS} + cmGlobalWatcomWMakeGenerator.cxx + cmGlobalWatcomWMakeGenerator.h + ) +endif() + # Ninja support set(SRCS ${SRCS} cmGlobalNinjaGenerator.cxx diff --git a/Source/cmGlobalWatcomWMakeGenerator.cxx b/Source/cmGlobalWatcomWMakeGenerator.cxx index 671166e..f2105f8 100644 --- a/Source/cmGlobalWatcomWMakeGenerator.cxx +++ b/Source/cmGlobalWatcomWMakeGenerator.cxx @@ -16,7 +16,9 @@ cmGlobalWatcomWMakeGenerator::cmGlobalWatcomWMakeGenerator() { this->FindMakeProgramFile = "CMakeFindWMake.cmake"; +#ifdef _WIN32 this->ForceUnixPaths = false; +#endif this->ToolSupportsColor = true; this->NeedSymbolicMark = true; this->EmptyRuleHackCommand = "@cd ."; @@ -44,7 +46,9 @@ cmLocalGenerator *cmGlobalWatcomWMakeGenerator::CreateLocalGenerator() { cmLocalUnixMakefileGenerator3* lg = new cmLocalUnixMakefileGenerator3; lg->SetDefineWindowsNULL(true); +#ifdef _WIN32 lg->SetWindowsShell(true); +#endif lg->SetWatcomWMake(true); lg->SetMakeSilentFlag("-h"); lg->SetGlobalGenerator(this); diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 4ce1d70..e5b77bc 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -60,13 +60,15 @@ # include "cmGlobalBorlandMakefileGenerator.h" # include "cmGlobalNMakeMakefileGenerator.h" # include "cmGlobalJOMMakefileGenerator.h" -# include "cmGlobalWatcomWMakeGenerator.h" # define CMAKE_HAVE_VS_GENERATORS # endif # include "cmGlobalMSYSMakefileGenerator.h" # include "cmGlobalMinGWMakefileGenerator.h" #else #endif +#if defined(USE_WMAKE) +#include "cmGlobalWatcomWMakeGenerator.h" +#endif #include "cmGlobalUnixMakefileGenerator3.h" #include "cmGlobalNinjaGenerator.h" #include "cmExtraCodeLiteGenerator.h" @@ -1781,8 +1783,6 @@ void cmake::AddDefaultGenerators() cmGlobalNMakeMakefileGenerator::NewFactory()); this->Generators.push_back( cmGlobalJOMMakefileGenerator::NewFactory()); - this->Generators.push_back( - cmGlobalWatcomWMakeGenerator::NewFactory()); # endif this->Generators.push_back( cmGlobalMSYSMakefileGenerator::NewFactory()); @@ -1793,6 +1793,10 @@ void cmake::AddDefaultGenerators() cmGlobalUnixMakefileGenerator3::NewFactory()); this->Generators.push_back( cmGlobalNinjaGenerator::NewFactory()); +#if defined(USE_WMAKE) + this->Generators.push_back( + cmGlobalWatcomWMakeGenerator::NewFactory()); +#endif #ifdef CMAKE_USE_XCODE this->Generators.push_back( cmGlobalXCodeGenerator::NewFactory()); -- 1.8.1.4
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers