New corrected version of patches.

Jiri
>From d746502d866e85d62611265dce6237d829f780a3 Mon Sep 17 00:00:00 2001
From: Jiri Malak <malak.j...@gmail.com>
Date: Wed, 19 Mar 2014 14:05:55 +0100
Subject: [PATCH 1/2] Add full cross-compile support for Open Watcom toolchain
 - code changes

---
 Modules/CMakeDetermineCCompiler.cmake        |  5 +++++
 Modules/CMakeDetermineCXXCompiler.cmake      |  5 +++++
 Modules/CMakeDetermineSystem.cmake           |  4 ++++
 Modules/CMakeFindBinUtils.cmake              |  9 +++++++-
 Modules/CMakeSystemSpecificInformation.cmake |  3 +++
 Modules/InstallRequiredSystemLibraries.cmake | 32 ++++++++++++++++------------
 Source/cmGlobalGenerator.cxx                 |  8 +++++--
 Source/cmGlobalWatcomWMakeGenerator.cxx      |  6 ++++--
 8 files changed, 53 insertions(+), 19 deletions(-)

diff --git a/Modules/CMakeDetermineCCompiler.cmake 
b/Modules/CMakeDetermineCCompiler.cmake
index aa4cdc9..9ace0b7 100644
--- a/Modules/CMakeDetermineCCompiler.cmake
+++ b/Modules/CMakeDetermineCCompiler.cmake
@@ -43,6 +43,11 @@ if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
 elseif("${CMAKE_GENERATOR}" MATCHES "Xcode")
   set(CMAKE_C_COMPILER_XCODE_TYPE sourcecode.c.c)
   _cmake_find_compiler_path(C)
+elseif("${CMAKE_GENERATOR}" MATCHES "Watcom WMake")
+  if(NOT CMAKE_C_COMPILER)
+    set(CMAKE_C_COMPILER wcc${_CMAKE_TOOLCHAIN_SUFFIX} CACHE STRING "")
+  endif()
+  mark_as_advanced(CMAKE_C_COMPILER)
 else()
   if(NOT CMAKE_C_COMPILER)
     set(CMAKE_C_COMPILER_INIT NOTFOUND)
diff --git a/Modules/CMakeDetermineCXXCompiler.cmake 
b/Modules/CMakeDetermineCXXCompiler.cmake
index ef8445e..06e4f4d 100644
--- a/Modules/CMakeDetermineCXXCompiler.cmake
+++ b/Modules/CMakeDetermineCXXCompiler.cmake
@@ -42,6 +42,11 @@ if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
 elseif("${CMAKE_GENERATOR}" MATCHES "Xcode")
   set(CMAKE_CXX_COMPILER_XCODE_TYPE sourcecode.cpp.cpp)
   _cmake_find_compiler_path(CXX)
+elseif("${CMAKE_GENERATOR}" MATCHES "Watcom WMake")
+  if(NOT CMAKE_CXX_COMPILER)
+    set(CMAKE_CXX_COMPILER wpp${_CMAKE_TOOLCHAIN_SUFFIX} CACHE STRING "")
+  endif()
+  mark_as_advanced(CMAKE_CXX_COMPILER)
 else()
   if(NOT CMAKE_CXX_COMPILER)
     set(CMAKE_CXX_COMPILER_INIT NOTFOUND)
diff --git a/Modules/CMakeDetermineSystem.cmake 
b/Modules/CMakeDetermineSystem.cmake
index f1bad99..65d71ec 100644
--- a/Modules/CMakeDetermineSystem.cmake
+++ b/Modules/CMakeDetermineSystem.cmake
@@ -189,3 +189,7 @@ if(CMAKE_BINARY_DIR)
                 @ONLY)
 
 endif()
+
+if("${CMAKE_GENERATOR}" MATCHES "Watcom WMake")
+  include(Compiler/Watcom-toolchain)
+endif()
diff --git a/Modules/CMakeFindBinUtils.cmake b/Modules/CMakeFindBinUtils.cmake
index 829b6ff..a93e196 100644
--- a/Modules/CMakeFindBinUtils.cmake
+++ b/Modules/CMakeFindBinUtils.cmake
@@ -41,7 +41,14 @@ if("${CMAKE_C_SIMULATE_ID}" STREQUAL "MSVC"
 
   mark_as_advanced(CMAKE_LINKER)
 
-# in all other cases search for ar, ranlib, etc.
+elseif(WATCOM)
+  set(CMAKE_AR "wlib" CACHE STRING "")
+  set(CMAKE_RANLIB "" CACHE INTERNAL "")
+  set(CMAKE_LINKER "wlink" CACHE STRING "")
+
+  mark_as_advanced(CMAKE_AR CMAKE_RANLIB CMAKE_LINKER)
+
+  # in all other cases search for ar, ranlib, etc.
 else()
   if(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN)
     set(_CMAKE_TOOLCHAIN_LOCATION ${_CMAKE_TOOLCHAIN_LOCATION} 
${CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN}/bin)
diff --git a/Modules/CMakeSystemSpecificInformation.cmake 
b/Modules/CMakeSystemSpecificInformation.cmake
index b9f8e0a..986fc3e 100644
--- a/Modules/CMakeSystemSpecificInformation.cmake
+++ b/Modules/CMakeSystemSpecificInformation.cmake
@@ -26,6 +26,9 @@ set(UNIX   )
 set(CYGWIN )
 set(WIN32  )
 
+if("${CMAKE_GENERATOR}" MATCHES "Watcom WMake")
+  include(Compiler/Watcom-toolchain)
+endif()
 
 # include Generic system information
 include(CMakeGenericSystem)
diff --git a/Modules/InstallRequiredSystemLibraries.cmake 
b/Modules/InstallRequiredSystemLibraries.cmake
index 7e68e8f..c6f997b 100644
--- a/Modules/InstallRequiredSystemLibraries.cmake
+++ b/Modules/InstallRequiredSystemLibraries.cmake
@@ -365,23 +365,27 @@ if(MSVC)
 endif()
 
 if(WATCOM)
-  get_filename_component( CompilerPath ${CMAKE_C_COMPILER} PATH )
-  if(CMAKE_C_COMPILER_VERSION)
-    set(_compiler_version ${CMAKE_C_COMPILER_VERSION})
+  if("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
+    set(CompilerPath ${_CMAKE_TOOLCHAIN_LOCATION}/binnt)
+  elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "OS2")
+    set(CompilerPath ${_CMAKE_TOOLCHAIN_LOCATION}/binp/dll)
   else()
-    set(_compiler_version ${CMAKE_CXX_COMPILER_VERSION})
+    set(CompilerPath)
   endif()
-  string(REGEX MATCHALL "[0-9]+" _watcom_version_list "${_compiler_version}")
-  list(GET _watcom_version_list 0 _watcom_major)
-  list(GET _watcom_version_list 1 _watcom_minor)
-  if(${_watcom_major} GREATER 11)
-    math(EXPR _watcom_major "${_watcom_major} - 11")
+  if(CompilerPath)
+    if(CMAKE_C_COMPILER_VERSION)
+      set(_compiler_version ${CMAKE_C_COMPILER_VERSION})
+    else()
+      set(_compiler_version ${CMAKE_CXX_COMPILER_VERSION})
+    endif()
+    string(REGEX MATCHALL "[0-9]+" _watcom_version_list "${_compiler_version}")
+    list(GET _watcom_version_list 0 _watcom_major)
+    list(GET _watcom_version_list 1 _watcom_minor)
+    set( __install__libs
+      ${CompilerPath}/clbr${_watcom_major}${_watcom_minor}.dll
+      ${CompilerPath}/mt7r${_watcom_major}${_watcom_minor}.dll
+      ${CompilerPath}/plbr${_watcom_major}${_watcom_minor}.dll )
   endif()
-  math(EXPR _watcom_minor "${_watcom_minor} / 10")
-  set( __install__libs
-    ${CompilerPath}/clbr${_watcom_major}${_watcom_minor}.dll
-    ${CompilerPath}/mt7r${_watcom_major}${_watcom_minor}.dll
-    ${CompilerPath}/plbr${_watcom_major}${_watcom_minor}.dll )
   foreach(lib
       ${__install__libs}
       )
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 5b6d729..1c1964d 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -185,7 +185,11 @@ void cmGlobalGenerator::ResolveLanguageCompiler(const 
std::string &lang,
         changeVars.c_str());
       }
     }
-  mf->AddCacheDefinition(langComp, path.c_str(),
+  if(!mf->GetDefinition("WATCOM"))
+    {
+    name = path.c_str();
+    }
+  mf->AddCacheDefinition(langComp, name,
                          doc.c_str(), cmCacheManager::FILEPATH);
 }
 
@@ -586,7 +590,7 @@ 
cmGlobalGenerator::EnableLanguage(std::vector<std::string>const& languages,
         "No " << compilerName << " could be found.\n"
         ;
       }
-    else if(strcmp(lang, "RC") != 0)
+    else if(strcmp(lang, "RC") != 0 && !mf->GetDefinition("WATCOM"))
       {
       if(!cmSystemTools::FileIsFullPath(compilerFile))
         {
diff --git a/Source/cmGlobalWatcomWMakeGenerator.cxx 
b/Source/cmGlobalWatcomWMakeGenerator.cxx
index 671166e..31ff206 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 .";
@@ -34,8 +36,6 @@ void cmGlobalWatcomWMakeGenerator
   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, optional);
 }
 
@@ -44,7 +44,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);
-- 
1.9.0.msysgit.0
>From c77fe3ea7eb0c22facfe11ab0abbe55a88560789 Mon Sep 17 00:00:00 2001
From: Jiri Malak <malak.j...@gmail.com>
Date: Wed, 19 Mar 2014 14:07:17 +0100
Subject: [PATCH 2/2] Add full cross-compile support for Open Watcom toolchain

new script/definition files
---
 Modules/Compiler/OpenWatcom-C.cmake             |  1 +
 Modules/Compiler/OpenWatcom-CXX.cmake           |  1 +
 Modules/Compiler/Watcom-C.cmake                 |  2 +
 Modules/Compiler/Watcom-CXX.cmake               |  2 +
 Modules/Compiler/Watcom-toolchain.cmake         | 43 +++++++++++
 Modules/Compiler/Watcom.cmake                   | 99 +++++++++++++++++++++++++
 Modules/Platform/DOS-OpenWatcom-C.cmake         |  1 +
 Modules/Platform/DOS-OpenWatcom-CXX.cmake       |  1 +
 Modules/Platform/DOS-Watcom-C.cmake             |  7 ++
 Modules/Platform/DOS-Watcom-CXX.cmake           |  7 ++
 Modules/Platform/DOS-Watcom.cmake               | 19 +++++
 Modules/Platform/Linux-OpenWatcom-C.cmake       |  1 +
 Modules/Platform/Linux-OpenWatcom-CXX.cmake     |  1 +
 Modules/Platform/Linux-Watcom-C.cmake           |  7 ++
 Modules/Platform/Linux-Watcom-CXX.cmake         |  7 ++
 Modules/Platform/Linux-Watcom.cmake             | 14 ++++
 Modules/Platform/OS2-OpenWatcom-C.cmake         |  1 +
 Modules/Platform/OS2-OpenWatcom-CXX.cmake       |  1 +
 Modules/Platform/OS2-Watcom-C.cmake             |  7 ++
 Modules/Platform/OS2-Watcom-CXX.cmake           |  7 ++
 Modules/Platform/OS2-Watcom.cmake               | 22 ++++++
 Modules/Platform/OS2-wrc.cmake                  |  1 +
 Modules/Platform/Windows-OpenWatcom-C.cmake     |  1 +
 Modules/Platform/Windows-OpenWatcom-CXX.cmake   |  1 +
 Modules/Platform/Windows-Watcom-C.cmake         |  7 ++
 Modules/Platform/Windows-Watcom-CXX.cmake       |  7 ++
 Modules/Platform/Windows-Watcom.cmake           | 16 ++++
 Modules/Platform/Windows-wrc.cmake              |  1 +
 Modules/Platform/Windows3x-OpenWatcom-C.cmake   |  1 +
 Modules/Platform/Windows3x-OpenWatcom-CXX.cmake |  1 +
 Modules/Platform/Windows3x-Watcom-C.cmake       |  7 ++
 Modules/Platform/Windows3x-Watcom-CXX.cmake     |  7 ++
 Modules/Platform/Windows3x-Watcom.cmake         | 21 ++++++
 Modules/Platform/Windows3x-wrc.cmake            |  1 +
 34 files changed, 323 insertions(+)
 create mode 100644 Modules/Compiler/OpenWatcom-C.cmake
 create mode 100644 Modules/Compiler/OpenWatcom-CXX.cmake
 create mode 100644 Modules/Compiler/Watcom-C.cmake
 create mode 100644 Modules/Compiler/Watcom-CXX.cmake
 create mode 100644 Modules/Compiler/Watcom-toolchain.cmake
 create mode 100644 Modules/Compiler/Watcom.cmake
 create mode 100644 Modules/Platform/DOS-OpenWatcom-C.cmake
 create mode 100644 Modules/Platform/DOS-OpenWatcom-CXX.cmake
 create mode 100644 Modules/Platform/DOS-Watcom-C.cmake
 create mode 100644 Modules/Platform/DOS-Watcom-CXX.cmake
 create mode 100644 Modules/Platform/DOS-Watcom.cmake
 create mode 100644 Modules/Platform/Linux-OpenWatcom-C.cmake
 create mode 100644 Modules/Platform/Linux-OpenWatcom-CXX.cmake
 create mode 100644 Modules/Platform/Linux-Watcom-C.cmake
 create mode 100644 Modules/Platform/Linux-Watcom-CXX.cmake
 create mode 100644 Modules/Platform/Linux-Watcom.cmake
 create mode 100644 Modules/Platform/OS2-OpenWatcom-C.cmake
 create mode 100644 Modules/Platform/OS2-OpenWatcom-CXX.cmake
 create mode 100644 Modules/Platform/OS2-Watcom-C.cmake
 create mode 100644 Modules/Platform/OS2-Watcom-CXX.cmake
 create mode 100644 Modules/Platform/OS2-Watcom.cmake
 create mode 100644 Modules/Platform/OS2-wrc.cmake
 create mode 100644 Modules/Platform/Windows-OpenWatcom-C.cmake
 create mode 100644 Modules/Platform/Windows-OpenWatcom-CXX.cmake
 create mode 100644 Modules/Platform/Windows-Watcom-C.cmake
 create mode 100644 Modules/Platform/Windows-Watcom-CXX.cmake
 create mode 100644 Modules/Platform/Windows-Watcom.cmake
 create mode 100644 Modules/Platform/Windows-wrc.cmake
 create mode 100644 Modules/Platform/Windows3x-OpenWatcom-C.cmake
 create mode 100644 Modules/Platform/Windows3x-OpenWatcom-CXX.cmake
 create mode 100644 Modules/Platform/Windows3x-Watcom-C.cmake
 create mode 100644 Modules/Platform/Windows3x-Watcom-CXX.cmake
 create mode 100644 Modules/Platform/Windows3x-Watcom.cmake
 create mode 100644 Modules/Platform/Windows3x-wrc.cmake

diff --git a/Modules/Compiler/OpenWatcom-C.cmake 
b/Modules/Compiler/OpenWatcom-C.cmake
new file mode 100644
index 0000000..ee32522
--- /dev/null
+++ b/Modules/Compiler/OpenWatcom-C.cmake
@@ -0,0 +1 @@
+include(Compiler/Watcom-C)
diff --git a/Modules/Compiler/OpenWatcom-CXX.cmake 
b/Modules/Compiler/OpenWatcom-CXX.cmake
new file mode 100644
index 0000000..c479c1c
--- /dev/null
+++ b/Modules/Compiler/OpenWatcom-CXX.cmake
@@ -0,0 +1 @@
+include(Compiler/Watcom-CXX)
diff --git a/Modules/Compiler/Watcom-C.cmake b/Modules/Compiler/Watcom-C.cmake
new file mode 100644
index 0000000..5d21c26
--- /dev/null
+++ b/Modules/Compiler/Watcom-C.cmake
@@ -0,0 +1,2 @@
+include(Compiler/Watcom)
+__compiler_watcom(C)
diff --git a/Modules/Compiler/Watcom-CXX.cmake 
b/Modules/Compiler/Watcom-CXX.cmake
new file mode 100644
index 0000000..b40f322
--- /dev/null
+++ b/Modules/Compiler/Watcom-CXX.cmake
@@ -0,0 +1,2 @@
+include(Compiler/Watcom)
+__compiler_watcom(CXX)
diff --git a/Modules/Compiler/Watcom-toolchain.cmake 
b/Modules/Compiler/Watcom-toolchain.cmake
new file mode 100644
index 0000000..a4ee811
--- /dev/null
+++ b/Modules/Compiler/Watcom-toolchain.cmake
@@ -0,0 +1,43 @@
+# initialize toolchain variables for Open Watcom
+# they are used by default even if it is not cross-compile
+# variables are defined in CMAKE_TOOLCHAIN_FILE file
+# or here if anything is missing
+#
+# toolchain location is defined by WATCOM environment variable
+if(NOT _CMAKE_TOOLCHAIN_LOCATION)
+  if($ENV{WATCOM} MATCHES ".+")
+    set(_CMAKE_TOOLCHAIN_LOCATION $ENV{WATCOM})
+  else()
+    message("!!! WATCOM environment variable is not setup !!!")
+  endif()
+endif()
+# prefix is defined by host system
+# now not used for anything
+if(NOT _CMAKE_TOOLCHAIN_PREFIX)
+  if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
+    find_program(_watcom_test NAMES wmake.exe 
+      PATHS NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH)
+    if(_watcom_test MATCHES "binnt64")
+      set(_CMAKE_TOOLCHAIN_PREFIX "binnt64")
+    else()
+      set(_CMAKE_TOOLCHAIN_PREFIX "binnt")
+    endif()
+    unset(_watcom_test)
+  elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux")
+    set(_CMAKE_TOOLCHAIN_PREFIX "binl")
+  endif()
+endif()
+# suffix is defined by target processor architecture
+if(NOT _CMAKE_TOOLCHAIN_SUFFIX)
+  if(CMAKE_SYSTEM_PROCESSOR STREQUAL "I86")
+    set(_CMAKE_TOOLCHAIN_SUFFIX "")
+  elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86" OR CMAKE_SYSTEM_PROCESSOR 
MATCHES "i[3456]86")
+    set(_CMAKE_TOOLCHAIN_SUFFIX "386")
+  elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" AND CMAKE_SYSTEM_PROCESSOR 
STREQUAL "AMD64")
+    set(_CMAKE_TOOLCHAIN_SUFFIX "386")
+  elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR 
STREQUAL "x86_64")
+    set(_CMAKE_TOOLCHAIN_SUFFIX "386")
+  else()
+    message("!!! Unsupported ${CMAKE_SYSTEM_PROCESSOR} value for 
CMAKE_SYSTEM_PROCESSOR !!!")
+  endif()
+endif()
diff --git a/Modules/Compiler/Watcom.cmake b/Modules/Compiler/Watcom.cmake
new file mode 100644
index 0000000..128dd0a
--- /dev/null
+++ b/Modules/Compiler/Watcom.cmake
@@ -0,0 +1,99 @@
+# This module is shared by multiple languages; use include blocker.
+if(__COMPILER_WATCOM)
+  return()
+endif()
+set(__COMPILER_WATCOM 1)
+
+macro(__compiler_watcom lang)
+  # Feature flags.
+  set(CMAKE_${lang}_FLAGS_INIT "-w3")
+  set(CMAKE_${lang}_FLAGS_DEBUG_INIT "-d2")
+  set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "-os -d0 -DNDEBUG")
+  set(CMAKE_${lang}_FLAGS_RELEASE_INIT "-ot -d0 -DNDEBUG")
+  set(CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "-ot -d1 -DNDEBUG")
+
+  set(CMAKE_${lang}_VERBOSE_FLAG)
+  set(CMAKE_${lang}_QUIET_FLAG "-zq")
+  set(CMAKE_${lang}_COMPILE_OPTIONS_PIC)
+  set(CMAKE_${lang}_COMPILE_OPTIONS_PIE)
+  set(CMAKE_${lang}_COMPILE_OPTIONS_DLL "-bd")
+  set(CMAKE_${lang}_COMPILE_OPTIONS_VISIBILITY)
+  set(CMAKE_${lang}_COMPILE_OPTIONS_SYSROOT)
+
+  set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-bd")
+  set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS)
+  set(CMAKE_SHARED_MODULE_${lang}_FLAGS "-bd")
+  set(CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS)
+
+  set(CMAKE_SHARED_LIBRARY_LINK_STATIC_${lang}_FLAGS)
+  set(CMAKE_SHARED_LIBRARY_LINK_DYNAMIC_${lang}_FLAGS)
+  set(CMAKE_SHARED_MODULE_LINK_STATIC_${lang}_FLAGS)
+  set(CMAKE_SHARED_MODULE_LINK_DYNAMIC_${lang}_FLAGS)
+  set(CMAKE_EXE_LINK_STATIC_${lang}_FLAGS)
+  set(CMAKE_EXE_LINK_DYNAMIC_${lang}_FLAGS)
+
+  # build rules
+  set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "<CMAKE_AR> ${CMAKE_AR_QUIET_FLAG} 
-c -n -b <TARGET_QUOTED> <LINK_FLAGS> <OBJECTS>")
+  set(CMAKE_${lang}_CREATE_SHARED_LIBRARY "<CMAKE_LINKER> 
${CMAKE_START_TEMP_FILE} ${CMAKE_LINKER_QUIET_FLAG} name '<TARGET_UNQUOTED>' 
<LINK_FLAGS> opt implib=<TARGET_IMPLIB> file {<OBJECTS>} <LINK_LIBRARIES> 
${CMAKE_END_TEMP_FILE}")
+  set(CMAKE_${lang}_CREATE_SHARED_MODULE "<CMAKE_LINKER> 
${CMAKE_START_TEMP_FILE} ${CMAKE_LINKER_QUIET_FLAG} name '<TARGET_UNQUOTED>' 
<LINK_FLAGS> file {<OBJECTS>} <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
+  set(CMAKE_${lang}_LINK_EXECUTABLE "<CMAKE_LINKER> ${CMAKE_START_TEMP_FILE} 
${CMAKE_LINKER_QUIET_FLAG} name '<TARGET_UNQUOTED>' <LINK_FLAGS> file 
{<OBJECTS>} <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
+  set(CMAKE_${lang}_CREATE_IMPORT_LIBRARY "<CMAKE_AR> ${CMAKE_AR_QUIET_FLAG} 
-c -n -b <TARGET_IMPLIB> +<TARGET_QUOTED>")
+#  set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> 
<DEFINES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
+
+#  get_property(_IN_TC GLOBAL PROPERTY IN_TRY_COMPILE)
+#  if(NOT _IN_TC OR CMAKE_FORCE_DEPFILES)
+#    set(CMAKE_DEPFILE_FLAGS_${lang} "-MMD -MT <OBJECT> -MF <DEPFILE>")
+#  endif()
+
+endmacro()
+
+set(CMAKE_BUILD_TYPE_INIT Debug)
+
+set(CMAKE_LIBRARY_PATH_FLAG "libpath ")
+set(CMAKE_LINK_LIBRARY_FLAG "library ")
+set(CMAKE_LINK_LIBRARY_FILE_FLAG "library")
+
+set(CMAKE_LINKER_QUIET_FLAG "option quiet")
+set(CMAKE_AR_QUIET_FLAG "-q")
+set(CMAKE_RC_QUIET_FLAG "-q")
+
+set(CMAKE_RC_FLAGS_INIT "-xb -r")
+
+set(CMAKE_EXE_LINKER_FLAGS_INIT "debug all")
+set(CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "opt map, symfile")
+set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "opt map, symfile")
+set(CMAKE_SHARED_LINKER_FLAGS_INIT "debug all")
+set(CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT "opt map, symfile")
+set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT "opt map, symfile")
+set(CMAKE_MODULE_LINKER_FLAGS_INIT "debug all")
+set(CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT "opt map, symfile")
+set(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT "opt map, symfile")
+set(CMAKE_STATIC_LINKER_FLAGS_INIT)
+set(CMAKE_STATIC_LINKER_FLAGS_DEBUG_INIT)
+set(CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO_INIT)
+
+# backward compatible variables definition
+if(NOT _CMAKE_WATCOM_VERSION)
+  set(_CMAKE_WATCOM_VERSION 1)
+  if(CMAKE_C_COMPILER_VERSION)
+    set(_compiler_version ${CMAKE_C_COMPILER_VERSION})
+  else()
+    set(_compiler_version ${CMAKE_CXX_COMPILER_VERSION})
+  endif()
+  set(WATCOM16)
+  set(WATCOM17)
+  set(WATCOM18)
+  set(WATCOM19)
+  if("${_compiler_version}" LESS 1.7)
+    set(WATCOM16 1)
+  endif()
+  if("${_compiler_version}" EQUAL 1.7)
+    set(WATCOM17 1)
+  endif()
+  if("${_compiler_version}" EQUAL 1.8)
+    set(WATCOM18 1)
+  endif()
+  if("${_compiler_version}" EQUAL 1.9)
+    set(WATCOM19 1)
+  endif()
+endif()
diff --git a/Modules/Platform/DOS-OpenWatcom-C.cmake 
b/Modules/Platform/DOS-OpenWatcom-C.cmake
new file mode 100644
index 0000000..d37a4ec
--- /dev/null
+++ b/Modules/Platform/DOS-OpenWatcom-C.cmake
@@ -0,0 +1 @@
+include(Platform/DOS-Watcom-C)
diff --git a/Modules/Platform/DOS-OpenWatcom-CXX.cmake 
b/Modules/Platform/DOS-OpenWatcom-CXX.cmake
new file mode 100644
index 0000000..530f2ab
--- /dev/null
+++ b/Modules/Platform/DOS-OpenWatcom-CXX.cmake
@@ -0,0 +1 @@
+include(Platform/DOS-Watcom-CXX)
diff --git a/Modules/Platform/DOS-Watcom-C.cmake 
b/Modules/Platform/DOS-Watcom-C.cmake
new file mode 100644
index 0000000..ba82d99
--- /dev/null
+++ b/Modules/Platform/DOS-Watcom-C.cmake
@@ -0,0 +1,7 @@
+include(Platform/DOS-Watcom)
+
+set(CMAKE_C_FLAGS_INIT "${CMAKE_C_FLAGS_INIT} ${_watcom_target}")
+
+# build rules
+set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> ${CMAKE_START_TEMP_FILE} 
${CMAKE_C_QUIET_FLAG} <FLAGS> -d+ <DEFINES> ${_watcom_include_flags} 
-fo=<OBJECT> <SOURCE>${CMAKE_END_TEMP_FILE}")
+set(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> 
${CMAKE_START_TEMP_FILE} ${CMAKE_C_QUIET_FLAG} <FLAGS> -d+ <DEFINES> 
${_watcom_include_flags} -fo=<PREPROCESSED_SOURCE> -pl 
<SOURCE>${CMAKE_END_TEMP_FILE}")
diff --git a/Modules/Platform/DOS-Watcom-CXX.cmake 
b/Modules/Platform/DOS-Watcom-CXX.cmake
new file mode 100644
index 0000000..8ceb58e
--- /dev/null
+++ b/Modules/Platform/DOS-Watcom-CXX.cmake
@@ -0,0 +1,7 @@
+include(Platform/DOS-Watcom)
+
+set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} ${_watcom_target}")
+
+# build rules
+set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> ${CMAKE_START_TEMP_FILE} 
${CMAKE_CXX_QUIET_FLAG} <FLAGS> -d+ <DEFINES> ${_watcom_include_flags} 
-fo=<OBJECT> <SOURCE>${CMAKE_END_TEMP_FILE}")
+set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> 
${CMAKE_START_TEMP_FILE} ${CMAKE_CXX_QUIET_FLAG} <FLAGS> -d+ <DEFINES> 
${_watcom_include_flags} -fo=<PREPROCESSED_SOURCE> -pl 
<SOURCE>${CMAKE_END_TEMP_FILE}")
diff --git a/Modules/Platform/DOS-Watcom.cmake 
b/Modules/Platform/DOS-Watcom.cmake
new file mode 100644
index 0000000..4b01fd2
--- /dev/null
+++ b/Modules/Platform/DOS-Watcom.cmake
@@ -0,0 +1,19 @@
+set(CMAKE_STATIC_LIBRARY_PREFIX)
+set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib")
+set(CMAKE_SHARED_LIBRARY_PREFIX)
+set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
+set(CMAKE_EXECUTABLE_SUFFIX ".exe")
+
+if("${_CMAKE_TOOLCHAIN_SUFFIX}" STREQUAL "")
+  set(_watcom_system_exe "system dos")
+  set(_watcom_system_dll "system dos")
+else()
+  set(_watcom_system_exe "system dos4g")
+  set(_watcom_system_dll "system dos4g")
+endif()
+set(_watcom_include_flags "-x -I\"${_CMAKE_TOOLCHAIN_LOCATION}/h\"")
+set(_watcom_target "-bt=dos")
+
+set(CMAKE_EXE_LINKER_FLAGS_INIT "${CMAKE_EXE_LINKER_FLAGS_INIT} 
${_watcom_system_exe}")
+set(CMAKE_MODULE_LINKER_FLAGS_INIT "${CMAKE_MODULE_LINKER_FLAGS_INIT} 
${_watcom_system_dll}")
+set(CMAKE_SHARED_LINKER_FLAGS_INIT "${CMAKE_SHARED_LINKER_FLAGS_INIT} 
${_watcom_system_dll}")
diff --git a/Modules/Platform/Linux-OpenWatcom-C.cmake 
b/Modules/Platform/Linux-OpenWatcom-C.cmake
new file mode 100644
index 0000000..2f3e3b3
--- /dev/null
+++ b/Modules/Platform/Linux-OpenWatcom-C.cmake
@@ -0,0 +1 @@
+include(Platform/Linux-Watcom-C)
diff --git a/Modules/Platform/Linux-OpenWatcom-CXX.cmake 
b/Modules/Platform/Linux-OpenWatcom-CXX.cmake
new file mode 100644
index 0000000..9444924
--- /dev/null
+++ b/Modules/Platform/Linux-OpenWatcom-CXX.cmake
@@ -0,0 +1 @@
+include(Platform/Linux-Watcom-CXX)
diff --git a/Modules/Platform/Linux-Watcom-C.cmake 
b/Modules/Platform/Linux-Watcom-C.cmake
new file mode 100644
index 0000000..d6bfc59
--- /dev/null
+++ b/Modules/Platform/Linux-Watcom-C.cmake
@@ -0,0 +1,7 @@
+include(Platform/Linux-Watcom)
+
+set(CMAKE_C_FLAGS_INIT "${CMAKE_C_FLAGS_INIT} ${_watcom_target}")
+
+# build rules
+set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> ${CMAKE_START_TEMP_FILE} 
${CMAKE_C_QUIET_FLAG} <FLAGS> -d+ <DEFINES> ${_watcom_include_flags} 
-fo=<OBJECT> <SOURCE>${CMAKE_END_TEMP_FILE}")
+set(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> 
${CMAKE_START_TEMP_FILE} ${CMAKE_C_QUIET_FLAG} <FLAGS> -d+ <DEFINES> 
${_watcom_include_flags} -fo=<PREPROCESSED_SOURCE> -pl 
<SOURCE>${CMAKE_END_TEMP_FILE}")
diff --git a/Modules/Platform/Linux-Watcom-CXX.cmake 
b/Modules/Platform/Linux-Watcom-CXX.cmake
new file mode 100644
index 0000000..c2b010e
--- /dev/null
+++ b/Modules/Platform/Linux-Watcom-CXX.cmake
@@ -0,0 +1,7 @@
+include(Platform/Linux-Watcom)
+
+set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} ${_watcom_target}")
+
+# build rules
+set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> ${CMAKE_START_TEMP_FILE} 
${CMAKE_CXX_QUIET_FLAG} <FLAGS> -d+ <DEFINES> ${_watcom_include_flags} 
-fo=<OBJECT> <SOURCE>${CMAKE_END_TEMP_FILE}")
+set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> 
${CMAKE_START_TEMP_FILE} ${CMAKE_CXX_QUIET_FLAG} <FLAGS> -d+ <DEFINES> 
${_watcom_include_flags} -fo=<PREPROCESSED_SOURCE> -pl 
<SOURCE>${CMAKE_END_TEMP_FILE}")
diff --git a/Modules/Platform/Linux-Watcom.cmake 
b/Modules/Platform/Linux-Watcom.cmake
new file mode 100644
index 0000000..44bbb53
--- /dev/null
+++ b/Modules/Platform/Linux-Watcom.cmake
@@ -0,0 +1,14 @@
+set(CMAKE_STATIC_LIBRARY_PREFIX)
+set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib")
+set(CMAKE_SHARED_LIBRARY_PREFIX)
+set(CMAKE_SHARED_LIBRARY_SUFFIX ".lib")
+set(CMAKE_EXECUTABLE_SUFFIX)
+
+set(_watcom_system_exe "system linux opt noext")
+set(_watcom_system_dll "system linux")
+set(_watcom_include_flags "-x -I\"${_CMAKE_TOOLCHAIN_LOCATION}/lh\"")
+set(_watcom_target "-bt=linux")
+
+set(CMAKE_EXE_LINKER_FLAGS_INIT "${CMAKE_EXE_LINKER_FLAGS_INIT} 
${_watcom_system_exe}")
+set(CMAKE_MODULE_LINKER_FLAGS_INIT "${CMAKE_MODULE_LINKER_FLAGS_INIT} 
${_watcom_system_dll}")
+set(CMAKE_SHARED_LINKER_FLAGS_INIT "${CMAKE_SHARED_LINKER_FLAGS_INIT} 
${_watcom_system_dll}")
diff --git a/Modules/Platform/OS2-OpenWatcom-C.cmake 
b/Modules/Platform/OS2-OpenWatcom-C.cmake
new file mode 100644
index 0000000..8f551f2
--- /dev/null
+++ b/Modules/Platform/OS2-OpenWatcom-C.cmake
@@ -0,0 +1 @@
+include(Platform/OS2-Watcom-C)
diff --git a/Modules/Platform/OS2-OpenWatcom-CXX.cmake 
b/Modules/Platform/OS2-OpenWatcom-CXX.cmake
new file mode 100644
index 0000000..817c1a9
--- /dev/null
+++ b/Modules/Platform/OS2-OpenWatcom-CXX.cmake
@@ -0,0 +1 @@
+include(Platform/OS2-Watcom-CXX)
diff --git a/Modules/Platform/OS2-Watcom-C.cmake 
b/Modules/Platform/OS2-Watcom-C.cmake
new file mode 100644
index 0000000..6c046a7
--- /dev/null
+++ b/Modules/Platform/OS2-Watcom-C.cmake
@@ -0,0 +1,7 @@
+include(Platform/OS2-Watcom)
+
+set(CMAKE_C_FLAGS_INIT "${CMAKE_C_FLAGS_INIT} ${_watcom_target}")
+
+# build rules
+set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> ${CMAKE_START_TEMP_FILE} 
${CMAKE_C_QUIET_FLAG} <FLAGS> -d+ <DEFINES> ${_watcom_include_flags} 
-fo=<OBJECT> <SOURCE>${CMAKE_END_TEMP_FILE}")
+set(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> 
${CMAKE_START_TEMP_FILE} ${CMAKE_C_QUIET_FLAG} <FLAGS> -d+ <DEFINES> 
${_watcom_include_flags} -fo=<PREPROCESSED_SOURCE> -pl 
<SOURCE>${CMAKE_END_TEMP_FILE}")
diff --git a/Modules/Platform/OS2-Watcom-CXX.cmake 
b/Modules/Platform/OS2-Watcom-CXX.cmake
new file mode 100644
index 0000000..dd420bd
--- /dev/null
+++ b/Modules/Platform/OS2-Watcom-CXX.cmake
@@ -0,0 +1,7 @@
+include(Platform/OS2-Watcom)
+
+set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} ${_watcom_target}")
+
+# build rules
+set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> ${CMAKE_START_TEMP_FILE} 
${CMAKE_CXX_QUIET_FLAG} <FLAGS> -d+ <DEFINES> ${_watcom_include_flags} 
-fo=<OBJECT> <SOURCE>${CMAKE_END_TEMP_FILE}")
+set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> 
${CMAKE_START_TEMP_FILE} ${CMAKE_CXX_QUIET_FLAG} <FLAGS> -d+ <DEFINES> 
${_watcom_include_flags} -fo=<PREPROCESSED_SOURCE> -pl 
<SOURCE>${CMAKE_END_TEMP_FILE}")
diff --git a/Modules/Platform/OS2-Watcom.cmake 
b/Modules/Platform/OS2-Watcom.cmake
new file mode 100644
index 0000000..bb9de3c
--- /dev/null
+++ b/Modules/Platform/OS2-Watcom.cmake
@@ -0,0 +1,22 @@
+set(CMAKE_STATIC_LIBRARY_PREFIX)
+set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib")
+set(CMAKE_SHARED_LIBRARY_PREFIX)
+set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
+set(CMAKE_EXECUTABLE_SUFFIX ".exe")
+
+if("${_CMAKE_TOOLCHAIN_SUFFIX}" STREQUAL "")
+  set(_watcom_system_exe "system os2")
+  set(_watcom_system_dll "system os2_dll")
+  set(_watcom_include_flags "-x -I\"${_CMAKE_TOOLCHAIN_LOCATION}/h\" 
-I\"${_CMAKE_TOOLCHAIN_LOCATION}/h/os21x\"")
+else()
+  set(_watcom_system_exe "system os2v2")
+  set(_watcom_system_dll "system os2v2_dll")
+  set(_watcom_include_flags "-x -I\"${_CMAKE_TOOLCHAIN_LOCATION}/h\" 
-I\"${_CMAKE_TOOLCHAIN_LOCATION}/h/os2\"")
+endif()
+set(_watcom_target "-bt=os2")
+
+set(CMAKE_EXE_LINKER_FLAGS_INIT "${CMAKE_EXE_LINKER_FLAGS_INIT} 
${_watcom_system_exe}")
+set(CMAKE_MODULE_LINKER_FLAGS_INIT "${CMAKE_MODULE_LINKER_FLAGS_INIT} 
${_watcom_system_dll}")
+set(CMAKE_SHARED_LINKER_FLAGS_INIT "${CMAKE_SHARED_LINKER_FLAGS_INIT} 
${_watcom_system_dll}")
+
+set(CMAKE_RC_COMPILER "wrc" )
diff --git a/Modules/Platform/OS2-wrc.cmake b/Modules/Platform/OS2-wrc.cmake
new file mode 100644
index 0000000..7f359d7
--- /dev/null
+++ b/Modules/Platform/OS2-wrc.cmake
@@ -0,0 +1 @@
+set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> ${CMAKE_RC_QUIET_FLAG} 
-bt=os2 <FLAGS> <DEFINES> -fo=<OBJECT> <SOURCE>")
diff --git a/Modules/Platform/Windows-OpenWatcom-C.cmake 
b/Modules/Platform/Windows-OpenWatcom-C.cmake
new file mode 100644
index 0000000..168f135
--- /dev/null
+++ b/Modules/Platform/Windows-OpenWatcom-C.cmake
@@ -0,0 +1 @@
+include(Platform/Windows-Watcom-C)
diff --git a/Modules/Platform/Windows-OpenWatcom-CXX.cmake 
b/Modules/Platform/Windows-OpenWatcom-CXX.cmake
new file mode 100644
index 0000000..c9b0a84
--- /dev/null
+++ b/Modules/Platform/Windows-OpenWatcom-CXX.cmake
@@ -0,0 +1 @@
+include(Platform/Windows-Watcom-CXX)
diff --git a/Modules/Platform/Windows-Watcom-C.cmake 
b/Modules/Platform/Windows-Watcom-C.cmake
new file mode 100644
index 0000000..ca40fb0
--- /dev/null
+++ b/Modules/Platform/Windows-Watcom-C.cmake
@@ -0,0 +1,7 @@
+include(Platform/Windows-Watcom)
+
+set(CMAKE_C_FLAGS_INIT "${CMAKE_C_FLAGS_INIT} ${_watcom_target}")
+
+# build rules
+set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> ${CMAKE_START_TEMP_FILE} 
${CMAKE_C_QUIET_FLAG} <FLAGS> -d+ <DEFINES> ${_watcom_include_flags} 
-fo=<OBJECT> <SOURCE>${CMAKE_END_TEMP_FILE}")
+set(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> 
${CMAKE_START_TEMP_FILE} ${CMAKE_C_QUIET_FLAG} <FLAGS> -d+ <DEFINES> 
${_watcom_include_flags} -fo=<PREPROCESSED_SOURCE> -pl 
<SOURCE>${CMAKE_END_TEMP_FILE}")
diff --git a/Modules/Platform/Windows-Watcom-CXX.cmake 
b/Modules/Platform/Windows-Watcom-CXX.cmake
new file mode 100644
index 0000000..53f3569
--- /dev/null
+++ b/Modules/Platform/Windows-Watcom-CXX.cmake
@@ -0,0 +1,7 @@
+include(Platform/Windows-Watcom)
+
+set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} ${_watcom_target}")
+
+# build rules
+set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> ${CMAKE_START_TEMP_FILE} 
${CMAKE_CXX_QUIET_FLAG} <FLAGS> -d+ <DEFINES> ${_watcom_include_flags} 
-fo=<OBJECT> <SOURCE>${CMAKE_END_TEMP_FILE}")
+set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> 
${CMAKE_START_TEMP_FILE} ${CMAKE_CXX_QUIET_FLAG} <FLAGS> -d+ <DEFINES> 
${_watcom_include_flags} -fo=<PREPROCESSED_SOURCE> -pl 
<SOURCE>${CMAKE_END_TEMP_FILE}")
diff --git a/Modules/Platform/Windows-Watcom.cmake 
b/Modules/Platform/Windows-Watcom.cmake
new file mode 100644
index 0000000..66a8947
--- /dev/null
+++ b/Modules/Platform/Windows-Watcom.cmake
@@ -0,0 +1,16 @@
+set(CMAKE_STATIC_LIBRARY_PREFIX)
+set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib")
+set(CMAKE_SHARED_LIBRARY_PREFIX)
+set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
+set(CMAKE_EXECUTABLE_SUFFIX ".exe")
+
+set(_watcom_system_exe "system nt")
+set(_watcom_system_dll "system nt_dll")
+set(_watcom_include_flags "-x -I\"${_CMAKE_TOOLCHAIN_LOCATION}/h\" 
-I\"${_CMAKE_TOOLCHAIN_LOCATION}/h/nt\"")
+set(_watcom_target "-bt=nt")
+
+set(CMAKE_EXE_LINKER_FLAGS_INIT "${CMAKE_EXE_LINKER_FLAGS_INIT} 
${_watcom_system_exe}")
+set(CMAKE_MODULE_LINKER_FLAGS_INIT "${CMAKE_MODULE_LINKER_FLAGS_INIT} 
${_watcom_system_dll}")
+set(CMAKE_SHARED_LINKER_FLAGS_INIT "${CMAKE_SHARED_LINKER_FLAGS_INIT} 
${_watcom_system_dll}")
+
+set(CMAKE_RC_COMPILER "wrc" )
diff --git a/Modules/Platform/Windows-wrc.cmake 
b/Modules/Platform/Windows-wrc.cmake
new file mode 100644
index 0000000..80258c9
--- /dev/null
+++ b/Modules/Platform/Windows-wrc.cmake
@@ -0,0 +1 @@
+set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> ${CMAKE_RC_QUIET_FLAG} -bt=nt 
<FLAGS> <DEFINES> -fo=<OBJECT> <SOURCE>")
diff --git a/Modules/Platform/Windows3x-OpenWatcom-C.cmake 
b/Modules/Platform/Windows3x-OpenWatcom-C.cmake
new file mode 100644
index 0000000..06498fc
--- /dev/null
+++ b/Modules/Platform/Windows3x-OpenWatcom-C.cmake
@@ -0,0 +1 @@
+include(Platform/Windows3x-Watcom-C)
diff --git a/Modules/Platform/Windows3x-OpenWatcom-CXX.cmake 
b/Modules/Platform/Windows3x-OpenWatcom-CXX.cmake
new file mode 100644
index 0000000..e2acf01
--- /dev/null
+++ b/Modules/Platform/Windows3x-OpenWatcom-CXX.cmake
@@ -0,0 +1 @@
+include(Platform/Windows3x-Watcom-CXX)
diff --git a/Modules/Platform/Windows3x-Watcom-C.cmake 
b/Modules/Platform/Windows3x-Watcom-C.cmake
new file mode 100644
index 0000000..24a2896
--- /dev/null
+++ b/Modules/Platform/Windows3x-Watcom-C.cmake
@@ -0,0 +1,7 @@
+include(Platform/Windows3x-Watcom)
+
+set(CMAKE_C_FLAGS_INIT "${CMAKE_C_FLAGS_INIT} ${_watcom_target}")
+
+# build rules
+set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> ${CMAKE_START_TEMP_FILE} 
${CMAKE_C_QUIET_FLAG} <FLAGS> -d+ <DEFINES> ${_watcom_include_flags} 
-fo=<OBJECT> <SOURCE>${CMAKE_END_TEMP_FILE}")
+set(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> 
${CMAKE_START_TEMP_FILE} ${CMAKE_C_QUIET_FLAG} <FLAGS> -d+ <DEFINES> 
${_watcom_include_flags} -fo=<PREPROCESSED_SOURCE> -pl 
<SOURCE>${CMAKE_END_TEMP_FILE}")
diff --git a/Modules/Platform/Windows3x-Watcom-CXX.cmake 
b/Modules/Platform/Windows3x-Watcom-CXX.cmake
new file mode 100644
index 0000000..64388cc
--- /dev/null
+++ b/Modules/Platform/Windows3x-Watcom-CXX.cmake
@@ -0,0 +1,7 @@
+include(Platform/Windows3x-Watcom)
+
+set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} ${_watcom_target}")
+
+# build rules
+set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> ${CMAKE_START_TEMP_FILE} 
${CMAKE_CXX_QUIET_FLAG} <FLAGS> -d+ <DEFINES> ${_watcom_include_flags} 
-fo=<OBJECT> <SOURCE>${CMAKE_END_TEMP_FILE}")
+set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> 
${CMAKE_START_TEMP_FILE} ${CMAKE_CXX_QUIET_FLAG} <FLAGS> -d+ <DEFINES> 
${_watcom_include_flags} -fo=<PREPROCESSED_SOURCE> -pl 
<SOURCE>${CMAKE_END_TEMP_FILE}")
diff --git a/Modules/Platform/Windows3x-Watcom.cmake 
b/Modules/Platform/Windows3x-Watcom.cmake
new file mode 100644
index 0000000..0ab90c9
--- /dev/null
+++ b/Modules/Platform/Windows3x-Watcom.cmake
@@ -0,0 +1,21 @@
+set(CMAKE_STATIC_LIBRARY_PREFIX)
+set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib")
+set(CMAKE_SHARED_LIBRARY_PREFIX)
+set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
+set(CMAKE_EXECUTABLE_SUFFIX ".exe")
+
+if("${_CMAKE_TOOLCHAIN_SUFFIX}" STREQUAL "")
+  set(_watcom_system_exe "system windows")
+  set(_watcom_system_dll "system windows_dll")
+else()
+  set(_watcom_system_exe "system win386")
+  set(_watcom_system_dll "system win386_dll")
+endif()
+set(_watcom_include_flags "-x -I\"${_CMAKE_TOOLCHAIN_LOCATION}/h\" 
-I\"${_CMAKE_TOOLCHAIN_LOCATION}/h/win\"")
+set(_watcom_target "-bt=windows")
+
+set(CMAKE_EXE_LINKER_FLAGS_INIT "${CMAKE_EXE_LINKER_FLAGS_INIT} 
${_watcom_system_exe}")
+set(CMAKE_MODULE_LINKER_FLAGS_INIT "${CMAKE_MODULE_LINKER_FLAGS_INIT} 
${_watcom_system_dll}")
+set(CMAKE_SHARED_LINKER_FLAGS_INIT "${CMAKE_SHARED_LINKER_FLAGS_INIT} 
${_watcom_system_dll}")
+
+set(CMAKE_RC_COMPILER "wrc" )
diff --git a/Modules/Platform/Windows3x-wrc.cmake 
b/Modules/Platform/Windows3x-wrc.cmake
new file mode 100644
index 0000000..133ff0f
--- /dev/null
+++ b/Modules/Platform/Windows3x-wrc.cmake
@@ -0,0 +1 @@
+set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> ${CMAKE_RC_QUIET_FLAG} 
-bt=windows <FLAGS> <DEFINES> -fo=<OBJECT> <SOURCE>")
-- 
1.9.0.msysgit.0
-- 

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