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

Reply via email to