Add CMake files for 32-bit OS/2 using OpenWatcom.

This commit is contained in:
2021-04-23 05:10:03 +01:00
parent a4e27c9e47
commit 4de2eabb06
6 changed files with 166 additions and 0 deletions

View File

@@ -32,3 +32,4 @@ add_subdirectory(win32)
add_subdirectory(unix) add_subdirectory(unix)
add_subdirectory(beos) add_subdirectory(beos)
add_subdirectory(amiga) add_subdirectory(amiga)
add_subdirectory(os2)

View File

@@ -0,0 +1,39 @@
# /****************************************************************************
# Aaru Data Preservation Suite
# -----------------------------------------------------------------------------
#
# Author(s) : Natalia Portillo
#
# --[ License ] ---------------------------------------------------------------
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# -----------------------------------------------------------------------------
# Copyright (C) 2011-2021 Natalia Portillo
# *****************************************************************************/
if(NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "I86")
return()
endif()
project(fssetter-os2
DESCRIPTION "Filesystem test creator for 16-bit OS/2"
LANGUAGES C)
set(SUBPLATFORM_SOURCES os.c xattr.c xattr.h)
set(EXECUTABLE_NAME "fssetter")
add_executable(${EXECUTABLE_NAME} ${SUBPLATFORM_SOURCES})
target_link_libraries(${EXECUTABLE_NAME} core platform)

View File

@@ -0,0 +1,41 @@
# /****************************************************************************
# Aaru Data Preservation Suite
# -----------------------------------------------------------------------------
#
# Author(s) : Natalia Portillo
#
# --[ License ] ---------------------------------------------------------------
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# -----------------------------------------------------------------------------
# Copyright (C) 2011-2021 Natalia Portillo
# *****************************************************************************/
if(NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "i386")
return()
endif()
project(fssetter-os2
DESCRIPTION "Filesystem test creator for 32-bit OS/2"
LANGUAGES C)
set(SUBPLATFORM_SOURCES os.c xattr.c)
set(EXECUTABLE_NAME "fssetter32")
find_library(OS2LIB "os2386")
add_executable(${EXECUTABLE_NAME} ${SUBPLATFORM_SOURCES})
target_link_libraries(${EXECUTABLE_NAME} core platform)

View File

@@ -0,0 +1,35 @@
# /****************************************************************************
# Aaru Data Preservation Suite
# -----------------------------------------------------------------------------
#
# Author(s) : Natalia Portillo
#
# --[ License ] ---------------------------------------------------------------
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# -----------------------------------------------------------------------------
# Copyright (C) 2011-2021 Natalia Portillo
# *****************************************************************************/
if(NOT OS2)
return()
endif()
set(PLATFORM_SOURCES attr.c attr.h deleted.c dirdepth.c filename.c files.c frag.c links.c os2defs.h perms.c rsrcfork.c sparse.c time.c volume.c)
add_library(platform ${PLATFORM_SOURCES})
add_subdirectory(16bit)
add_subdirectory(32bit)

4
setter/toolchains/genow.sh Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
# Generates compilation databases for OpenWatcom
mkdir -p ../projects/compdb/ow/os2v2
cmake -B ../projects/compdb/ow/os2v2 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_TOOLCHAIN_FILE=toolchains/ow-os2.cmake ..

View File

@@ -0,0 +1,46 @@
if(NOT ${CMAKE_HOST_SYSTEM_NAME} MATCHES "Linux|Windows")
message(FATAL_ERROR "Unsupported system")
endif()
if(NOT ${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "x86_64|i386")
message(FATAL_ERROR "Unsupported architecture")
endif()
if("$ENV{WATCOM}" STREQUAL "")
if(${CMAKE_HOST_SYSTEM_NAME} MATCHES "Linux")
set(ENV{WATCOM} "/opt/watcom")
else()
set(ENV{WATCOM} "C:\\WATCOM")
endif()
endif()
if(${CMAKE_HOST_SYSTEM_NAME} MATCHES "Linux")
if(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "x86_64")
set(WATCOM_BIN_PATH "$ENV{WATCOM}/binl64/")
set(ENV{PATH} "$ENV{WATCOM}/binl64:$ENV{WATCOM}/binl:$ENV{PATH}")
else()
set(WATCOM_BIN_PATH "$ENV{WATCOM}/binl/")
set(ENV{PATH} "$ENV{WATCOM}/binl:$ENV{PATH}")
endif()
set(ENV{EDPATH} "$ENV{WATCOM}/eddat")
set(ENV{WIPFC} "$ENV{WATCOM}/wipfc")
else()
if(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "x86_64")
set(WATCOM_BIN_PATH "$ENV{WATCOM}\\binnt64\\")
set(ENV{PATH} "$ENV{WATCOM}\\binnt64;$ENV{WATCOM}/binnt;$ENV{PATH}")
else()
set(ENV{PATH} "$ENV{WATCOM}\\binnt;$ENV{PATH}")
set(WATCOM_BIN_PATH "$ENV{WATCOM}\\binnt\\")
endif()
set(ENV{EDPATH} "$ENV{WATCOM}\\eddat")
set(ENV{WIPFC} "$ENV{WATCOM}\\wipfc")
endif()
add_compile_options(-3r)
add_compile_options(-mf)
add_compile_options(-l=os2v2)
set(CMAKE_SYSTEM_NAME OS2)
set(CMAKE_SYSTEM_PROCESSOR i386)
set(CMAKE_C_COMPILER "${WATCOM_BIN_PATH}wcl386")