Merge commit '411251c6242b04119edc41ce83f09f0714e2d32b' as 'external/SDL'
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
set(CMAKE_SYSTEM_NAME DOS)
|
||||
|
||||
set(DJGPP TRUE)
|
||||
|
||||
# CMake's Platform/DOS.cmake assumes OpenWatcom naming conventions (no prefix,
|
||||
# .lib suffix). DJGPP uses standard Unix/GCC conventions for its system
|
||||
# libraries (lib prefix, .a suffix — e.g. libm.a), so we override the platform
|
||||
# defaults via CMAKE_USER_MAKE_RULES_OVERRIDE, which runs *after* the platform
|
||||
# module has set its defaults, giving us the final say on these variables.
|
||||
# The path must be cached because CMake re-parses the toolchain file during
|
||||
# try_compile, where CMAKE_CURRENT_LIST_DIR may point elsewhere.
|
||||
set(DJGPP_PLATFORM_OVERRIDES "${CMAKE_CURRENT_LIST_DIR}/djgpp-platform-overrides.cmake" CACHE FILEPATH "" FORCE)
|
||||
set(CMAKE_USER_MAKE_RULES_OVERRIDE "${DJGPP_PLATFORM_OVERRIDES}")
|
||||
|
||||
set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
|
||||
set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
|
||||
set(CMAKE_SHARED_LIBRARY_PREFIX "")
|
||||
set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
|
||||
set(CMAKE_IMPORT_LIBRARY_PREFIX "lib")
|
||||
set(CMAKE_IMPORT_LIBRARY_SUFFIX ".a")
|
||||
set(CMAKE_EXECUTABLE_SUFFIX ".exe")
|
||||
set(CMAKE_LINK_LIBRARY_SUFFIX "")
|
||||
set(CMAKE_DL_LIBS "")
|
||||
|
||||
set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
|
||||
|
||||
#
|
||||
# CMake toolchain file for DJGPP. Usage:
|
||||
#
|
||||
# 1. Download and extract DGJPP
|
||||
# 2. Add directory containing i586-pc-msdosdjgpp-gcc to PATH environment variable
|
||||
# 3. When configuring your CMake project, specify the toolchain file like this:
|
||||
#
|
||||
# cmake -DCMAKE_TOOLCHAIN_FILE=path/to/i586-pc-msdosdjgpp.cmake ...
|
||||
#
|
||||
|
||||
# specify the cross compiler
|
||||
find_program(CMAKE_C_COMPILER NAMES "i586-pc-msdosdjgpp-gcc" "i386-pc-msdosdjgpp-gcc" REQUIRED)
|
||||
find_program(CMAKE_CXX_COMPILER NAMES "i586-pc-msdosdjgpp-g++" "i386-pc-msdosdjgpp-g++" REQUIRED)
|
||||
|
||||
execute_process(COMMAND "${CMAKE_C_COMPILER}" -print-search-dirs
|
||||
RESULT_VARIABLE CC_SEARCH_DIRS_RESULT
|
||||
OUTPUT_VARIABLE CC_SEARCH_DIRS_OUTPUT)
|
||||
|
||||
if(CC_SEARCH_DIRS_RESULT)
|
||||
message(FATAL_ERROR "Could not determine search dirs")
|
||||
endif()
|
||||
|
||||
string(REGEX MATCH ".*libraries: (.*).*" CC_SD_LIBS "${CC_SEARCH_DIRS_OUTPUT}")
|
||||
string(STRIP "${CMAKE_MATCH_1}" CC_SEARCH_DIRS)
|
||||
string(REPLACE ":" ";" CC_SEARCH_DIRS "${CC_SEARCH_DIRS}")
|
||||
|
||||
foreach(CC_SEARCH_DIR ${CC_SEARCH_DIRS})
|
||||
if(CC_SEARCH_DIR MATCHES "=.*")
|
||||
string(REGEX MATCH "=(.*)" CC_LIB "${CC_SEARCH_DIR}")
|
||||
set(CC_SEARCH_DIR "${CMAKE_MATCH_1}")
|
||||
endif()
|
||||
if(IS_DIRECTORY "${CC_SEARCH_DIR}")
|
||||
if(IS_DIRECTORY "${CC_SEARCH_DIR}/../include" OR IS_DIRECTORY "${CC_SEARCH_DIR}/../lib" OR IS_DIRECTORY "${CC_SEARCH_DIR}/../bin")
|
||||
list(APPEND CC_ROOTS "${CC_SEARCH_DIR}/..")
|
||||
else()
|
||||
list(APPEND CC_ROOTS "${CC_SEARCH_DIR}")
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
list(APPEND CMAKE_FIND_ROOT_PATH ${CC_ROOTS})
|
||||
|
||||
# search for programs in the host directories
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
|
||||
# for libraries, headers and packages in the target directories
|
||||
if(NOT DEFINED CACHE{CMAKE_FIND_ROOT_PATH_MODE_LIBRARY})
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
endif()
|
||||
if(NOT DEFINED CACHE{CMAKE_FIND_ROOT_PATH_MODE_INCLUDE})
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
endif()
|
||||
if(NOT DEFINED CACHE{CMAKE_FIND_ROOT_PATH_MODE_PACKAGE})
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
endif()
|
||||
Reference in New Issue
Block a user