123 lines
3.4 KiB
CMake
123 lines
3.4 KiB
CMake
#################################
|
|
# mars-dosutils
|
|
##############
|
|
|
|
set(MARS_DOSUTILS_NET_EXE
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/net.exe"
|
|
CACHE FILEPATH "Prebuilt DOS net.exe used for installation"
|
|
)
|
|
|
|
set(MARS_DOSUTILS_STACK_SIZE "32768" CACHE STRING "DOS stack size for mars-dosutils net.exe")
|
|
|
|
set(MARS_DOSUTILS_PUBLIC_TOOLS
|
|
net
|
|
login
|
|
profile
|
|
spawn
|
|
passwd
|
|
path
|
|
pathins
|
|
pathdel
|
|
map
|
|
mapdel
|
|
logout
|
|
slist
|
|
capture
|
|
endcap
|
|
)
|
|
|
|
if(MARS_NWE_BUILD_DOSUTILS)
|
|
find_package(OpenWatcom REQUIRED)
|
|
|
|
set(DOSUTILS_C_SOURCES
|
|
net.c
|
|
tools.c
|
|
netcall.c
|
|
ncpcall.c
|
|
login.c
|
|
map.c
|
|
slist.c
|
|
nwcrypt.c
|
|
nwdebug.c
|
|
nwtests.c
|
|
capture.c
|
|
)
|
|
|
|
add_custom_command(
|
|
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/kern.obj"
|
|
COMMAND "${CMAKE_COMMAND}" -E env
|
|
"WATCOM=${OPENWATCOM_ROOT}"
|
|
"PATH=${OPENWATCOM_BINDIR}:$ENV{PATH}"
|
|
"INCLUDE=${OPENWATCOM_INCLUDE}"
|
|
"EDPATH=${OPENWATCOM_ROOT}/eddat"
|
|
"${OPENWATCOM_WASM}"
|
|
-q
|
|
-zq
|
|
-fo="${CMAKE_CURRENT_BINARY_DIR}/kern.obj"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/kern_wasm.asm"
|
|
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/kern_wasm.asm"
|
|
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
|
VERBATIM
|
|
)
|
|
|
|
add_custom_command(
|
|
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/net.exe"
|
|
COMMAND "${CMAKE_COMMAND}" -E env
|
|
"WATCOM=${OPENWATCOM_ROOT}"
|
|
"PATH=${OPENWATCOM_BINDIR}:$ENV{PATH}"
|
|
"INCLUDE=${OPENWATCOM_INCLUDE}"
|
|
"EDPATH=${OPENWATCOM_ROOT}/eddat"
|
|
"${OPENWATCOM_WCL}"
|
|
-q
|
|
-zq
|
|
-bt=dos
|
|
-ml
|
|
-0
|
|
-k${MARS_DOSUTILS_STACK_SIZE}
|
|
-fe="${CMAKE_CURRENT_BINARY_DIR}/net.exe"
|
|
${DOSUTILS_C_SOURCES}
|
|
"${CMAKE_CURRENT_BINARY_DIR}/kern.obj"
|
|
DEPENDS
|
|
${DOSUTILS_C_SOURCES}
|
|
"${CMAKE_CURRENT_BINARY_DIR}/kern.obj"
|
|
net.h
|
|
kern.h
|
|
nwcrypt.h
|
|
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
|
VERBATIM
|
|
)
|
|
|
|
add_custom_target(dosutils_net ALL
|
|
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/net.exe"
|
|
)
|
|
|
|
set(MARS_DOSUTILS_NET_EXE "${CMAKE_CURRENT_BINARY_DIR}/net.exe")
|
|
else()
|
|
if(NOT EXISTS "${MARS_DOSUTILS_NET_EXE}")
|
|
message(FATAL_ERROR
|
|
"Prebuilt DOS utility missing: ${MARS_DOSUTILS_NET_EXE}. "
|
|
"Either commit net.exe into dosutils or configure with "
|
|
"-DMARS_NWE_BUILD_DOSUTILS=ON and OpenWatcom installed."
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
foreach(tool IN LISTS MARS_DOSUTILS_PUBLIC_TOOLS)
|
|
if(tool STREQUAL "net")
|
|
install(FILES "${MARS_DOSUTILS_NET_EXE}"
|
|
DESTINATION "${MARS_NWE_INSTALL_FULL_FILEDIR}/SYS/public")
|
|
else()
|
|
install(FILES "${MARS_DOSUTILS_NET_EXE}"
|
|
DESTINATION "${MARS_NWE_INSTALL_FULL_FILEDIR}/SYS/public"
|
|
RENAME "${tool}.exe")
|
|
endif()
|
|
endforeach()
|
|
|
|
install(FILES "${MARS_DOSUTILS_NET_EXE}"
|
|
DESTINATION "${MARS_NWE_INSTALL_FULL_FILEDIR}/SYS/login"
|
|
RENAME login.exe)
|
|
|
|
install(FILES "${MARS_DOSUTILS_NET_EXE}"
|
|
DESTINATION "${MARS_NWE_INSTALL_FULL_FILEDIR}/SYS/login"
|
|
RENAME map.exe)
|