Add cmake file for cross compiling using DJGPP.

This commit is contained in:
2021-03-09 19:35:16 +00:00
parent 7f7555d3e3
commit 9ce05e8aaf
5 changed files with 62 additions and 4 deletions

View File

@@ -1,12 +1,12 @@
cmake_minimum_required(VERSION 2.20) cmake_minimum_required(VERSION 2.20)
project(setter C) project(setter C)
set(CMAKE_C_STANDARD 90) set(CMAKE_C_STANDARD 90)
add_subdirectory(src) add_subdirectory(src)
message(${CMAKE_C_COMPILER_VERSION}) add_subdirectory(src/dos)
add_subdirectory(src/unix) add_subdirectory(src/unix)
add_subdirectory(src/linux) add_subdirectory(src/linux)

View File

@@ -0,0 +1,15 @@
if(NOT DOS)
return()
endif()
project(fssetter-dos
DESCRIPTION "Filesystem test creator for DOS"
LANGUAGES C)
set(PLATFORM_SOURCES attr.c deleted.c dirdepth.c filename.c files.c frag.c links.c os.c perms.c rsrcfork.c sparse.c time.c volume.c xattr.c)
set(EXECUTABLE_NAME "fssetter")
add_executable(${EXECUTABLE_NAME} ${PLATFORM_SOURCES})
target_link_libraries(${EXECUTABLE_NAME} core)

View File

@@ -1,4 +1,4 @@
if(NOT "${CMAKE_SYSTEM_NAME}" MATCHES "Linux") if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
return() return()
endif() endif()

View File

@@ -1,4 +1,4 @@
if(NOT "${CMAKE_SYSTEM_NAME}" MATCHES "Linux") if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
return() return()
endif() endif()

View File

@@ -0,0 +1,43 @@
set(CMAKE_SYSTEM_NAME Generic)
set(DOS 1)
set(DJGPP 1)
set(CMAKE_STATIC_LIBRARY_PREFIX "")
set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib")
set(CMAKE_SHARED_LIBRARY_PREFIX "")
set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
set(CMAKE_IMPORT_LIBRARY_PREFIX "")
set(CMAKE_IMPORT_LIBRARY_SUFFIX ".lib")
set(CMAKE_EXECUTABLE_SUFFIX ".exe")
set(CMAKE_LINK_LIBRARY_SUFFIX ".lib")
set(CMAKE_DL_LIBS "")
set(CMAKE_FIND_LIBRARY_PREFIXES "")
set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
set(CMAKE_CROSSCOMPILING 1)
set(CMAKE_CROSSCOMPILING_EMULATOR dosbox)
# specify the cross compiler
set(CMAKE_C_COMPILER i686-pc-msdosdjgpp-gcc)
set(CMAKE_CXX_COMPILER i686-pc-msdosdjgpp-g++)
# where is the target environment
set(CMAKE_FIND_ROOT_PATH /usr/i686-pc-msdosdjgpp)
# search for programs in the build host directories
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
# Make sure Qt can be detected by CMake
set(QT_BINARY_DIR /usr/i686-pc-msdosdjgpp/bin /usr/bin)
set(QT_INCLUDE_DIRS_NO_SYSTEM ON)
# These are needed for compiling lapack (RHBZ #753906)
set(CMAKE_Fortran_COMPILER i686-pc-msdosdjgpp-gfortran)
set(CMAKE_AR:FILEPATH i686-pc-msdosdjgpp-ar)
set(CMAKE_RANLIB:FILEPATH i686-pc-msdosdjgpp-ranlib)