mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-06-06 06:34:35 +00:00
Merge 3f4334a92c into 1bf6279fc7
This commit is contained in:
commit
787ca8341f
11 changed files with 243 additions and 16 deletions
|
|
@ -63,4 +63,5 @@ runs:
|
||||||
id: final
|
id: final
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
|
echo "${{ runner.temp }}/djgpp/i586-pc-msdosdjgpp/bin" >> $env:GITHUB_PATH
|
||||||
echo "${{ runner.temp }}/djgpp/bin" >> $env:GITHUB_PATH
|
echo "${{ runner.temp }}/djgpp/bin" >> $env:GITHUB_PATH
|
||||||
|
|
|
||||||
4
.github/workflows/create-test-plan.py
vendored
4
.github/workflows/create-test-plan.py
vendored
|
|
@ -167,6 +167,7 @@ class SharedLibType(Enum):
|
||||||
SO_0 = "libSDL3.so.0"
|
SO_0 = "libSDL3.so.0"
|
||||||
SO = "libSDL3.so"
|
SO = "libSDL3.so"
|
||||||
DYLIB = "libSDL3.0.dylib"
|
DYLIB = "libSDL3.0.dylib"
|
||||||
|
DXE = "SDL3.dxe"
|
||||||
FRAMEWORK = "SDL3.framework/Versions/A/SDL3"
|
FRAMEWORK = "SDL3.framework/Versions/A/SDL3"
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -860,11 +861,10 @@ def spec_to_job(spec: JobSpec, key: str, trackmem_symbol_names: bool, ctest_args
|
||||||
job.apt_packages = ["ccache", "libfl-dev"] # djgpp needs libfl.so.2
|
job.apt_packages = ["ccache", "libfl-dev"] # djgpp needs libfl.so.2
|
||||||
job.cmake_build_type = "Release"
|
job.cmake_build_type = "Release"
|
||||||
job.setup_ninja = True
|
job.setup_ninja = True
|
||||||
|
job.shared_lib = SharedLibType.DXE
|
||||||
job.static_lib = StaticLibType.A
|
job.static_lib = StaticLibType.A
|
||||||
job.shared_lib = None
|
|
||||||
job.clang_tidy = False
|
job.clang_tidy = False
|
||||||
job.werror = False # FIXME: enable SDL_WERROR
|
job.werror = False # FIXME: enable SDL_WERROR
|
||||||
job.shared = False
|
|
||||||
job.run_tests = False
|
job.run_tests = False
|
||||||
job.test_pkg_config = False
|
job.test_pkg_config = False
|
||||||
job.cmake_toolchain_file = "$GITHUB_WORKSPACE/build-scripts/i586-pc-msdosdjgpp.cmake"
|
job.cmake_toolchain_file = "$GITHUB_WORKSPACE/build-scripts/i586-pc-msdosdjgpp.cmake"
|
||||||
|
|
|
||||||
|
|
@ -210,7 +210,19 @@ if(EMSCRIPTEN)
|
||||||
set(SDL_SHARED_AVAILABLE OFF)
|
set(SDL_SHARED_AVAILABLE OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(VITA OR PSP OR PS2 OR N3DS OR RISCOS OR NGAGE OR DOS)
|
if(DOS)
|
||||||
|
if(NOT DJGPP)
|
||||||
|
message(FATAL_ERROR "SDL3 DOS support requires a DJGPP toolchain")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_program(DJGPP_DXE3GEN_BIN NAMES dxe3gen)
|
||||||
|
if(NOT EXISTS "${DJGPP_DXE3GEN_BIN}")
|
||||||
|
message(STATUS "Disabling shared library support: dxe3gen not found")
|
||||||
|
set(SDL_SHARED_AVAILABLE OFF)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(VITA OR PSP OR PS2 OR N3DS OR RISCOS OR NGAGE)
|
||||||
set(SDL_SHARED_AVAILABLE OFF)
|
set(SDL_SHARED_AVAILABLE OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
@ -533,6 +545,9 @@ if(SDL_TEST_LIBRARY)
|
||||||
add_library(SDL3::SDL3_test ALIAS SDL3_test)
|
add_library(SDL3::SDL3_test ALIAS SDL3_test)
|
||||||
SDL_AddCommonCompilerFlags(SDL3_test)
|
SDL_AddCommonCompilerFlags(SDL3_test)
|
||||||
target_compile_definitions(SDL3_test PRIVATE "$<$<CONFIG:Debug>:DEBUG>")
|
target_compile_definitions(SDL3_test PRIVATE "$<$<CONFIG:Debug>:DEBUG>")
|
||||||
|
if("c_std_99" IN_LIST CMAKE_C_COMPILE_FEATURES)
|
||||||
|
target_compile_features(SDL3_test PRIVATE c_std_99)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Make sure SDL3::SDL3 always exists
|
# Make sure SDL3::SDL3 always exists
|
||||||
|
|
@ -555,7 +570,7 @@ if (LIBC_IS_GLIBC AND CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
check_linker_supports_version_file(HAVE_WL_VERSION_SCRIPT)
|
check_linker_supports_version_file(HAVE_WL_VERSION_SCRIPT)
|
||||||
if(HAVE_WL_VERSION_SCRIPT)
|
if(HAVE_WL_VERSION_SCRIPT AND (NOT DOS))
|
||||||
sdl_shared_link_options("-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/src/dynapi/SDL_dynapi.sym")
|
sdl_shared_link_options("-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/src/dynapi/SDL_dynapi.sym")
|
||||||
else()
|
else()
|
||||||
# When building with tcc on Linux+glibc or Android, avoid emitting an error
|
# When building with tcc on Linux+glibc or Android, avoid emitting an error
|
||||||
|
|
@ -686,7 +701,7 @@ if(USE_GCC OR USE_CLANG OR USE_INTELCC OR USE_QCC)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT OPENBSD)
|
if(NOT (DOS OR OPENBSD))
|
||||||
cmake_push_check_state()
|
cmake_push_check_state()
|
||||||
check_linker_flag(C "-Wl,--no-undefined" LINKER_SUPPORTS_WL_NO_UNDEFINED)
|
check_linker_flag(C "-Wl,--no-undefined" LINKER_SUPPORTS_WL_NO_UNDEFINED)
|
||||||
#FIXME: originally this if had an additional "AND NOT (USE_CLANG AND WINDOWS)"
|
#FIXME: originally this if had an additional "AND NOT (USE_CLANG AND WINDOWS)"
|
||||||
|
|
@ -4104,6 +4119,16 @@ if(SDL_SHARED)
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
if(DJGPP)
|
||||||
|
# <LANG>_LINKER_LAUNCHER was introduced in CMake 3.21. genex support was added in 3.27.
|
||||||
|
cmake_minimum_required(VERSION 3.27)
|
||||||
|
|
||||||
|
set_property(TARGET SDL3-shared SDL_uclibc PROPERTY POSITION_INDEPENDENT_CODE FALSE)
|
||||||
|
set_property(TARGET SDL3-shared PROPERTY IMPORT_SUFFIX ".dxe.a")
|
||||||
|
set_property(TARGET SDL3-shared PROPERTY SUFFIX ".dxe")
|
||||||
|
set_property(TARGET SDL3-shared PROPERTY C_LINKER_LAUNCHER "${CMAKE_CURRENT_SOURCE_DIR}/build-scripts/djgpp-dxe-linker-wrapper.py;--dxe3gen=${DJGPP_DXE3GEN_BIN};--import-library;$<TARGET_IMPORT_FILE:SDL3-shared>;--library-paths;${DJGPP_LIBRARY_PATHS};--")
|
||||||
|
set_property(TARGET SDL3-shared APPEND PROPERTY LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/build-scripts/djgpp-dxe-linker-wrapper.py")
|
||||||
|
endif()
|
||||||
|
|
||||||
target_link_libraries(SDL3-shared PRIVATE ${SDL_CMAKE_DEPENDS})
|
target_link_libraries(SDL3-shared PRIVATE ${SDL_CMAKE_DEPENDS})
|
||||||
target_include_directories(SDL3-shared
|
target_include_directories(SDL3-shared
|
||||||
|
|
|
||||||
75
build-scripts/djgpp-dxe-linker-wrapper.py
Executable file
75
build-scripts/djgpp-dxe-linker-wrapper.py
Executable file
|
|
@ -0,0 +1,75 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
def parse_wrapper_args(args):
|
||||||
|
parser = argparse.ArgumentParser(allow_abbrev=False)
|
||||||
|
parser.add_argument("--library-paths", nargs="*", help="Additional DJGPP Library paths")
|
||||||
|
parser.add_argument("--dxe3gen", default="dxe3gen", help="Path of dxe3gen")
|
||||||
|
parser.add_argument("--import-library", help="Import library name")
|
||||||
|
args = parser.parse_args(args)
|
||||||
|
return args
|
||||||
|
|
||||||
|
def parse_linker_args(args):
|
||||||
|
unknown_args = []
|
||||||
|
output = None
|
||||||
|
i = 1
|
||||||
|
while i < len(args):
|
||||||
|
arg = args[i]
|
||||||
|
if arg in ("-fPIC", "-shared"):
|
||||||
|
consumed = 1
|
||||||
|
elif arg.startswith("-Wl,"):
|
||||||
|
unknown_args.extend(arg[4:].split(","))
|
||||||
|
elif arg.startswith("-I"):
|
||||||
|
if arg == "-I":
|
||||||
|
consumed = 2
|
||||||
|
else:
|
||||||
|
consumed = 1
|
||||||
|
elif arg == "-o":
|
||||||
|
output = args[i + 1]
|
||||||
|
consumed = 2
|
||||||
|
elif arg.startswith("-D"):
|
||||||
|
consumed = 1
|
||||||
|
elif arg.startswith("-O"):
|
||||||
|
consumed = 1
|
||||||
|
else:
|
||||||
|
unknown_args.append(arg)
|
||||||
|
consumed = 1
|
||||||
|
i += consumed
|
||||||
|
if not output:
|
||||||
|
print("Missing \"-o\" argument", file=sys.stderr)
|
||||||
|
return output, unknown_args
|
||||||
|
|
||||||
|
try:
|
||||||
|
pos_double_dash = sys.argv.index("--")
|
||||||
|
wrapper_args = sys.argv[1:pos_double_dash]
|
||||||
|
original_args = sys.argv[pos_double_dash+1:]
|
||||||
|
except IndexError:
|
||||||
|
wrapper_args = []
|
||||||
|
original_args = sys.argv[1:]
|
||||||
|
|
||||||
|
wrapper_args = parse_wrapper_args(wrapper_args)
|
||||||
|
output_path, original_linker_args = parse_linker_args(original_args)
|
||||||
|
|
||||||
|
dxe3gen_command = [
|
||||||
|
wrapper_args.dxe3gen,
|
||||||
|
"-o", output_path,
|
||||||
|
"-U",
|
||||||
|
]
|
||||||
|
if wrapper_args.import_library:
|
||||||
|
dxe3gen_command.extend(["-Y", wrapper_args.import_library])
|
||||||
|
for libpath in wrapper_args.library_paths:
|
||||||
|
dxe3gen_command.append("-L" + libpath)
|
||||||
|
dxe3gen_command.extend(original_linker_args)
|
||||||
|
if not "-nostlib" in original_linker_args:
|
||||||
|
dxe3gen_command.append("-lgcc")
|
||||||
|
|
||||||
|
os.environ["DXE_LD_LIBRARY_PATH"] = "dontcare"
|
||||||
|
os.environ["DJDIR"] = "dontcare"
|
||||||
|
|
||||||
|
process_result = subprocess.run(dxe3gen_command)
|
||||||
|
|
||||||
|
raise SystemExit(process_result.returncode)
|
||||||
|
|
@ -11,7 +11,12 @@
|
||||||
|
|
||||||
set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
|
set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
|
||||||
set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
|
set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
|
||||||
|
set(CMAKE_SHARED_LIBRARY_PREFIX "")
|
||||||
|
set(CMAKE_SHARED_LIBRARY_SUFFIX ".dxe")
|
||||||
|
set(CMAKE_IMPORT_LIBRARY_PREFIX "lib")
|
||||||
|
set(CMAKE_IMPORT_LIBRARY_SUFFIX ".dxe.a")
|
||||||
|
|
||||||
set(CMAKE_LINK_LIBRARY_SUFFIX "")
|
set(CMAKE_LINK_LIBRARY_SUFFIX "")
|
||||||
set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "")
|
set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "")
|
||||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" ".lib")
|
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" ".lib")
|
||||||
set(CMAKE_EXECUTABLE_SUFFIX ".exe")
|
set(CMAKE_EXECUTABLE_SUFFIX ".exe")
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,9 @@ set(CMAKE_USER_MAKE_RULES_OVERRIDE "${DJGPP_PLATFORM_OVERRIDES}")
|
||||||
set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
|
set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
|
||||||
set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
|
set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
|
||||||
set(CMAKE_SHARED_LIBRARY_PREFIX "")
|
set(CMAKE_SHARED_LIBRARY_PREFIX "")
|
||||||
set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
|
set(CMAKE_SHARED_LIBRARY_SUFFIX ".dxe")
|
||||||
set(CMAKE_IMPORT_LIBRARY_PREFIX "lib")
|
set(CMAKE_IMPORT_LIBRARY_PREFIX "lib")
|
||||||
set(CMAKE_IMPORT_LIBRARY_SUFFIX ".a")
|
set(CMAKE_IMPORT_LIBRARY_SUFFIX ".dxe.a")
|
||||||
set(CMAKE_EXECUTABLE_SUFFIX ".exe")
|
set(CMAKE_EXECUTABLE_SUFFIX ".exe")
|
||||||
set(CMAKE_LINK_LIBRARY_SUFFIX "")
|
set(CMAKE_LINK_LIBRARY_SUFFIX "")
|
||||||
set(CMAKE_DL_LIBS "")
|
set(CMAKE_DL_LIBS "")
|
||||||
|
|
@ -67,6 +67,11 @@ endforeach()
|
||||||
|
|
||||||
list(APPEND CMAKE_FIND_ROOT_PATH ${CC_ROOTS})
|
list(APPEND CMAKE_FIND_ROOT_PATH ${CC_ROOTS})
|
||||||
|
|
||||||
|
set(DJGPP_LIBRARY_PATHS )
|
||||||
|
foreach(__cc_root ${CC_ROOTS})
|
||||||
|
list(APPEND DJGPP_LIBRARY_PATHS "${__cc_root}" "${__cc_root}/lib")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
# search for programs in the host directories
|
# search for programs in the host directories
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
|
|
||||||
|
|
@ -79,4 +84,4 @@ if(NOT DEFINED CACHE{CMAKE_FIND_ROOT_PATH_MODE_INCLUDE})
|
||||||
endif()
|
endif()
|
||||||
if(NOT DEFINED CACHE{CMAKE_FIND_ROOT_PATH_MODE_PACKAGE})
|
if(NOT DEFINED CACHE{CMAKE_FIND_ROOT_PATH_MODE_PACKAGE})
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
|
|
@ -65,11 +65,13 @@ if(TEST_SHARED)
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(sharedlib-shared SHARED main_lib.c)
|
if(NOT DOS)
|
||||||
target_link_libraries(sharedlib-shared PRIVATE SDL3::SDL3-shared)
|
add_library(sharedlib-shared SHARED main_lib.c)
|
||||||
generate_export_header(sharedlib-shared EXPORT_MACRO_NAME MYLIBRARY_EXPORT)
|
target_link_libraries(sharedlib-shared PRIVATE SDL3::SDL3-shared)
|
||||||
target_compile_definitions(sharedlib-shared PRIVATE "EXPORT_HEADER=\"${CMAKE_CURRENT_BINARY_DIR}/sharedlib-shared_export.h\"")
|
generate_export_header(sharedlib-shared EXPORT_MACRO_NAME MYLIBRARY_EXPORT)
|
||||||
set_target_properties(sharedlib-shared PROPERTIES C_VISIBILITY_PRESET "hidden")
|
target_compile_definitions(sharedlib-shared PRIVATE "EXPORT_HEADER=\"${CMAKE_CURRENT_BINARY_DIR}/sharedlib-shared_export.h\"")
|
||||||
|
set_target_properties(sharedlib-shared PROPERTIES C_VISIBILITY_PRESET "hidden")
|
||||||
|
endif()
|
||||||
|
|
||||||
add_executable(cli-shared main_cli.c)
|
add_executable(cli-shared main_cli.c)
|
||||||
target_link_libraries(cli-shared PRIVATE SDL3::SDL3-shared)
|
target_link_libraries(cli-shared PRIVATE SDL3::SDL3-shared)
|
||||||
|
|
@ -96,7 +98,7 @@ if(TEST_STATIC)
|
||||||
add_executable(gui-static WIN32 main_gui.c)
|
add_executable(gui-static WIN32 main_gui.c)
|
||||||
target_link_libraries(gui-static PRIVATE SDL3::SDL3-static)
|
target_link_libraries(gui-static PRIVATE SDL3::SDL3-static)
|
||||||
|
|
||||||
if(TEST_SHARED)
|
if(TEST_SHARED AND NOT DOS)
|
||||||
# Assume SDL library has been built with `set(CMAKE_POSITION_INDEPENDENT_CODE ON)`
|
# Assume SDL library has been built with `set(CMAKE_POSITION_INDEPENDENT_CODE ON)`
|
||||||
add_library(sharedlib-static SHARED main_lib.c)
|
add_library(sharedlib-static SHARED main_lib.c)
|
||||||
target_link_libraries(sharedlib-static PRIVATE SDL3::SDL3-static)
|
target_link_libraries(sharedlib-static PRIVATE SDL3::SDL3-static)
|
||||||
|
|
|
||||||
|
|
@ -286,7 +286,7 @@ SDL_FORCE_INLINE Uint16 SDL_Swap16(Uint16 x)
|
||||||
/* Byte swap 32-bit integer. */
|
/* Byte swap 32-bit integer. */
|
||||||
#ifndef SDL_WIKI_DOCUMENTATION_SECTION
|
#ifndef SDL_WIKI_DOCUMENTATION_SECTION
|
||||||
#if HAS_BUILTIN_BSWAP32
|
#if HAS_BUILTIN_BSWAP32
|
||||||
#define SDL_Swap32(x) __builtin_bswap32(x)
|
#define SDL_Swap32(x) (Uint32)__builtin_bswap32(x)
|
||||||
#elif (defined(_MSC_VER) && (_MSC_VER >= 1400)) && !defined(__ICL)
|
#elif (defined(_MSC_VER) && (_MSC_VER >= 1400)) && !defined(__ICL)
|
||||||
#pragma intrinsic(_byteswap_ulong)
|
#pragma intrinsic(_byteswap_ulong)
|
||||||
#define SDL_Swap32(x) _byteswap_ulong(x)
|
#define SDL_Swap32(x) _byteswap_ulong(x)
|
||||||
|
|
|
||||||
|
|
@ -220,6 +220,7 @@
|
||||||
void reset_IOP() {}
|
void reset_IOP() {}
|
||||||
|
|
||||||
#elif defined(SDL_PLATFORM_DOS)
|
#elif defined(SDL_PLATFORM_DOS)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
On DOS, SDL provides a main function that sets up memory
|
On DOS, SDL provides a main function that sets up memory
|
||||||
page locking (code, data, stack are locked, future
|
page locking (code, data, stack are locked, future
|
||||||
|
|
|
||||||
|
|
@ -148,4 +148,116 @@
|
||||||
|
|
||||||
#endif /* SDL_MAIN_HANDLED */
|
#endif /* SDL_MAIN_HANDLED */
|
||||||
|
|
||||||
|
#ifdef SDL_PLATFORM_DOS
|
||||||
|
|
||||||
|
/* On DOS, the executable must export symbols for the SDL3 module.
|
||||||
|
*/
|
||||||
|
#define FOR_EACH_DXE_EXPORT(X) \
|
||||||
|
X(__Exit) \
|
||||||
|
X(___dj_huge_val) \
|
||||||
|
X(___dj_stderr) \
|
||||||
|
X(___dj_stdin) \
|
||||||
|
X(___djgpp_base_address) \
|
||||||
|
X(___djgpp_nearptr_enable) \
|
||||||
|
X(___dpmi_free_physical_address_mapping) \
|
||||||
|
X(___dpmi_int) \
|
||||||
|
X(___dpmi_physical_address_mapping) \
|
||||||
|
X(___dpmi_simulate_real_mode_procedure_retf) \
|
||||||
|
X(___fpclassifyd) \
|
||||||
|
X(___fpclassifyf) \
|
||||||
|
X(__go32_dpmi_allocate_dos_memory) \
|
||||||
|
X(__go32_dpmi_chain_protected_mode_interrupt_vector) \
|
||||||
|
X(__go32_dpmi_free_dos_memory) \
|
||||||
|
X(__go32_dpmi_get_protected_mode_interrupt_vector) \
|
||||||
|
X(__go32_dpmi_lock_code) \
|
||||||
|
X(__go32_dpmi_lock_data) \
|
||||||
|
X(__go32_dpmi_set_protected_mode_interrupt_vector) \
|
||||||
|
X(__go32_info_block) \
|
||||||
|
X(_abort) \
|
||||||
|
X(_atof) \
|
||||||
|
X(_atoi) \
|
||||||
|
X(_calloc) \
|
||||||
|
X(_clearerr) \
|
||||||
|
X(_close) \
|
||||||
|
X(_closedir) \
|
||||||
|
X(_delay) \
|
||||||
|
X(_dlregsym) \
|
||||||
|
X(_dosmemput) \
|
||||||
|
X(_environ) \
|
||||||
|
X(_errno) \
|
||||||
|
X(_fclose) \
|
||||||
|
X(_ferror) \
|
||||||
|
X(_fflush) \
|
||||||
|
X(_fgets) \
|
||||||
|
X(_fileno) \
|
||||||
|
X(_fopen) \
|
||||||
|
X(_fprintf) \
|
||||||
|
X(_fputs) \
|
||||||
|
X(_fread) \
|
||||||
|
X(_free) \
|
||||||
|
X(_fseeko) \
|
||||||
|
X(_fstat) \
|
||||||
|
X(_ftello) \
|
||||||
|
X(_fwrite) \
|
||||||
|
X(_getcwd) \
|
||||||
|
X(_getenv) \
|
||||||
|
X(_gethostname) \
|
||||||
|
X(_getpagesize) \
|
||||||
|
X(_gettimeofday) \
|
||||||
|
X(_gmtime_r) \
|
||||||
|
X(_itoa) \
|
||||||
|
X(_localtime_r) \
|
||||||
|
X(_longjmp) \
|
||||||
|
X(_lseek) \
|
||||||
|
X(_malloc) \
|
||||||
|
X(_memcmp) \
|
||||||
|
X(_memcpy) \
|
||||||
|
X(_memmove) \
|
||||||
|
X(_mkdir) \
|
||||||
|
X(_opendir) \
|
||||||
|
X(_read) \
|
||||||
|
X(_readdir) \
|
||||||
|
X(_realloc) \
|
||||||
|
X(_remove) \
|
||||||
|
X(_rename) \
|
||||||
|
X(_searchpath) \
|
||||||
|
X(_setenv) \
|
||||||
|
X(_setjmp) \
|
||||||
|
X(_sigaction) \
|
||||||
|
X(_stat) \
|
||||||
|
X(_strchr) \
|
||||||
|
X(_strcmp) \
|
||||||
|
X(_strerror) \
|
||||||
|
X(_strlcat) \
|
||||||
|
X(_strlcpy) \
|
||||||
|
X(_strlen) \
|
||||||
|
X(_strncmp) \
|
||||||
|
X(_strnlen) \
|
||||||
|
X(_strpbrk) \
|
||||||
|
X(_strrchr) \
|
||||||
|
X(_strstr) \
|
||||||
|
X(_strtod) \
|
||||||
|
X(_strtok_r) \
|
||||||
|
X(_strtol) \
|
||||||
|
X(_strtoll) \
|
||||||
|
X(_strtoul) \
|
||||||
|
X(_strtoull) \
|
||||||
|
X(_uclock) \
|
||||||
|
X(_unsetenv) \
|
||||||
|
X(_vsnprintf) \
|
||||||
|
X(_vsscanf) \
|
||||||
|
X(_write)
|
||||||
|
|
||||||
|
#define EXTERN_ASM_SEMICOLON(V) extern_asm(V);
|
||||||
|
#include <sys/dxe.h>
|
||||||
|
FOR_EACH_DXE_EXPORT(EXTERN_ASM_SEMICOLON)
|
||||||
|
DXE_EXPORT_TABLE(sdl3_export_syms)
|
||||||
|
FOR_EACH_DXE_EXPORT(DXE_EXPORT_ASM)
|
||||||
|
DXE_EXPORT_END
|
||||||
|
static __attribute__((constructor)) void sdl3_export_syms_auto_register (void)
|
||||||
|
{
|
||||||
|
dlregsym (sdl3_export_syms);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* SDL_main_impl_h_ */
|
#endif /* SDL_main_impl_h_ */
|
||||||
|
|
|
||||||
|
|
@ -256,6 +256,7 @@ function(add_sdl_test_executable TARGET)
|
||||||
if(AST_NAME83)
|
if(AST_NAME83)
|
||||||
set_property(TARGET ${TARGET} PROPERTY OUTPUT_NAME "${AST_NAME83}")
|
set_property(TARGET ${TARGET} PROPERTY OUTPUT_NAME "${AST_NAME83}")
|
||||||
endif()
|
endif()
|
||||||
|
target_compile_definitions(${TARGET} PRIVATE SDL_INCLUDE_INTTYPES_H)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(OPENGL_FOUND)
|
if(OPENGL_FOUND)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue