summaryrefslogtreecommitdiffstats
path: root/Modules/Platform/DOS-OpenWatcom.cmake
diff options
context:
space:
mode:
authorJiri Malak <malak.jiri@gmail.com>2020-05-01 14:03:48 (GMT)
committerBrad King <brad.king@kitware.com>2020-05-06 17:09:00 (GMT)
commit0ab583d78770b1e8babe83924321881b0710b420 (patch)
tree477af8a16a0e1ff5169d3a919dc6e19d3b92d5f9 /Modules/Platform/DOS-OpenWatcom.cmake
parent8406f71eae5e3e62e5b23885ad2eaba80c72fefb (diff)
downloadCMake-0ab583d78770b1e8babe83924321881b0710b420.zip
CMake-0ab583d78770b1e8babe83924321881b0710b420.tar.gz
CMake-0ab583d78770b1e8babe83924321881b0710b420.tar.bz2
OpenWatcom: Add DOS target support
DOS 16-bit and 32-bit target support files for cross-compilation by OpenWatcom. It is used if CMAKE_SYSTEM_NAME=DOS is defined. If CMAKE_SYSTEM_PROCESSOR=I86 is defined then 16-bit DOS target is used, otherwise 32-bit DOS target is used.
Diffstat (limited to 'Modules/Platform/DOS-OpenWatcom.cmake')
-rw-r--r--Modules/Platform/DOS-OpenWatcom.cmake28
1 files changed, 28 insertions, 0 deletions
diff --git a/Modules/Platform/DOS-OpenWatcom.cmake b/Modules/Platform/DOS-OpenWatcom.cmake
new file mode 100644
index 0000000..54c452e
--- /dev/null
+++ b/Modules/Platform/DOS-OpenWatcom.cmake
@@ -0,0 +1,28 @@
+
+# This module is shared by multiple languages; use include blocker.
+include_guard()
+
+set(CMAKE_BUILD_TYPE_INIT Debug)
+
+if(DEFINED CMAKE_SYSTEM_PROCESSOR AND CMAKE_SYSTEM_PROCESSOR STREQUAL "I86")
+ string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " system dos")
+ string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " system dos")
+ string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " system dos")
+else()
+ string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " system dos4g")
+ string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " system dos4g")
+ string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " system dos4g")
+endif()
+
+set(CMAKE_C_COMPILE_OPTIONS_DLL "-bd") # Note: This variable is a ';' separated list
+set(CMAKE_SHARED_LIBRARY_C_FLAGS "-bd") # ... while this is a space separated string.
+
+string(APPEND CMAKE_C_FLAGS_INIT " -bt=dos")
+string(APPEND CMAKE_CXX_FLAGS_INIT " -bt=dos -xs")
+
+if(NOT CMAKE_C_STANDARD_INCLUDE_DIRECTORIES)
+ set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h)
+endif()
+if(NOT CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES)
+ set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h)
+endif()