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