start with openwatcom v2
This commit is contained in:
86
cmake/modules/FindOpenWatcom.cmake
Normal file
86
cmake/modules/FindOpenWatcom.cmake
Normal file
@@ -0,0 +1,86 @@
|
||||
# FindOpenWatcom.cmake
|
||||
#
|
||||
# Locate an Open Watcom v2 toolchain usable for building the 16-bit DOS
|
||||
# mars-nwe DOS utilities on a Linux host.
|
||||
#
|
||||
# Result variables:
|
||||
# OpenWatcom_FOUND
|
||||
# OPENWATCOM_WCL
|
||||
# OPENWATCOM_WCC
|
||||
# OPENWATCOM_WASM
|
||||
# OPENWATCOM_WLINK
|
||||
# OPENWATCOM_BIN_DIR
|
||||
# OPENWATCOM_ROOT
|
||||
# OPENWATCOM_ENV
|
||||
#
|
||||
# This module intentionally does not enable a CMake language/toolchain. The
|
||||
# DOS utilities are built via custom commands. OPENWATCOM_ENV is provided so
|
||||
# wcl can find its helper programs such as wcc, wlink and include files.
|
||||
|
||||
set(_OPENWATCOM_HINTS)
|
||||
|
||||
if(DEFINED ENV{WATCOM})
|
||||
list(APPEND _OPENWATCOM_HINTS "$ENV{WATCOM}")
|
||||
endif()
|
||||
|
||||
list(APPEND _OPENWATCOM_HINTS
|
||||
/opt/watcom
|
||||
/usr/local/watcom
|
||||
/usr/local/open-watcom-v2
|
||||
/opt/open-watcom-v2
|
||||
)
|
||||
|
||||
find_program(OPENWATCOM_WCL
|
||||
NAMES wcl owcc
|
||||
HINTS ${_OPENWATCOM_HINTS}
|
||||
PATH_SUFFIXES binl binnt binw bin
|
||||
)
|
||||
|
||||
find_program(OPENWATCOM_WCC
|
||||
NAMES wcc
|
||||
HINTS ${_OPENWATCOM_HINTS}
|
||||
PATH_SUFFIXES binl binnt binw bin
|
||||
)
|
||||
|
||||
find_program(OPENWATCOM_WASM
|
||||
NAMES wasm
|
||||
HINTS ${_OPENWATCOM_HINTS}
|
||||
PATH_SUFFIXES binl binnt binw bin
|
||||
)
|
||||
|
||||
find_program(OPENWATCOM_WLINK
|
||||
NAMES wlink
|
||||
HINTS ${_OPENWATCOM_HINTS}
|
||||
PATH_SUFFIXES binl binnt binw bin
|
||||
)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(OpenWatcom
|
||||
REQUIRED_VARS
|
||||
OPENWATCOM_WCL
|
||||
OPENWATCOM_WCC
|
||||
OPENWATCOM_WASM
|
||||
OPENWATCOM_WLINK
|
||||
)
|
||||
|
||||
if(OpenWatcom_FOUND)
|
||||
get_filename_component(OPENWATCOM_BIN_DIR "${OPENWATCOM_WCL}" DIRECTORY)
|
||||
get_filename_component(OPENWATCOM_ROOT "${OPENWATCOM_BIN_DIR}" DIRECTORY)
|
||||
|
||||
# wcl starts helper tools such as wcc/wlink by name. Therefore finding the
|
||||
# absolute wcl path is not enough; the Watcom bin directory must be in PATH
|
||||
# at build time. WATCOM and INCLUDE are also expected by many installations.
|
||||
set(OPENWATCOM_ENV
|
||||
"WATCOM=${OPENWATCOM_ROOT}"
|
||||
"INCLUDE=${OPENWATCOM_ROOT}/h:${OPENWATCOM_ROOT}/h/nt:${OPENWATCOM_ROOT}/h/os2"
|
||||
"EDPATH=${OPENWATCOM_ROOT}/eddat"
|
||||
"PATH=${OPENWATCOM_BIN_DIR}:$ENV{PATH}"
|
||||
)
|
||||
endif()
|
||||
|
||||
mark_as_advanced(
|
||||
OPENWATCOM_WCL
|
||||
OPENWATCOM_WCC
|
||||
OPENWATCOM_WASM
|
||||
OPENWATCOM_WLINK
|
||||
)
|
||||
Reference in New Issue
Block a user