mirror of
https://github.com/shadps4-emu/ext-SDL.git
synced 2024-11-27 03:50:25 +00:00
cmake: build uclibc as a static library
This commit is contained in:
parent
aa527dd0c2
commit
38815c22cd
@ -467,41 +467,6 @@ else()
|
||||
sdl_include_directories(NO_EXPORT SYSTEM PRIVATE "$<BUILD_INTERFACE:${SDL3_SOURCE_DIR}/src/video/khronos>")
|
||||
endif()
|
||||
|
||||
# General source files
|
||||
sdl_glob_sources(
|
||||
"${SDL3_SOURCE_DIR}/src/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/atomic/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/audio/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/camera/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/core/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/cpuinfo/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/dynapi/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/events/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/file/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/filesystem/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/joystick/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/haptic/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/hidapi/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/locale/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/main/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/misc/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/power/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/render/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/render/*/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/sensor/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/stdlib/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/storage/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/thread/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/time/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/timer/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/video/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/video/yuv2rgb/*.c"
|
||||
)
|
||||
if(NOT SDL_LIBC)
|
||||
sdl_glob_sources(
|
||||
"${SDL3_SOURCE_DIR}/src/libm/*.c"
|
||||
)
|
||||
endif()
|
||||
if(MSVC AND TARGET SDL3-shared)
|
||||
if(SDL_CPU_X64)
|
||||
enable_language(ASM_MASM)
|
||||
@ -1057,9 +1022,6 @@ if(SDL_LIBC)
|
||||
}
|
||||
" LIBC_HAS_${MATH_FN})
|
||||
set(HAVE_${MATH_FN} ${LIBC_HAS_${MATH_FN}})
|
||||
if(NOT HAVE_${MATH_FN})
|
||||
sdl_sources("${SDL3_SOURCE_DIR}/src/libm/s_${math_fn}.c")
|
||||
endif()
|
||||
|
||||
check_c_source_compiles("
|
||||
#include <math.h>
|
||||
@ -1078,9 +1040,6 @@ if(SDL_LIBC)
|
||||
}
|
||||
" LIBC_HAS_${MATH_FN}F)
|
||||
set(HAVE_${MATH_FN}F "${LIBC_HAS_${MATH_FN}F}")
|
||||
if(NOT HAVE_${MATH_FN}F)
|
||||
sdl_sources("${SDL3_SOURCE_DIR}/src/libm/s_${math_fn}f.c")
|
||||
endif()
|
||||
endforeach()
|
||||
cmake_pop_check_state()
|
||||
|
||||
@ -1152,6 +1111,52 @@ else()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# General source files
|
||||
sdl_glob_sources(
|
||||
"${SDL3_SOURCE_DIR}/src/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/atomic/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/audio/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/camera/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/core/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/cpuinfo/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/dynapi/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/events/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/file/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/filesystem/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/joystick/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/haptic/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/hidapi/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/locale/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/main/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/misc/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/power/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/render/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/render/*/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/sensor/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/stdlib/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/storage/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/thread/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/time/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/timer/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/video/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/video/yuv2rgb/*.c"
|
||||
)
|
||||
|
||||
# Build uclibc as a static library such that non-used symbols don't end up in the SDL3 shared library.
|
||||
file(GLOB SDL_UCLIBC_SOURCES "${SDL3_SOURCE_DIR}/src/libm/*.c")
|
||||
add_library(SDL_uclibc STATIC "${SDL_UCLIBC_SOURCES}")
|
||||
target_compile_definitions(SDL_uclibc PRIVATE USING_GENERATED_CONFIG_H)
|
||||
target_include_directories(SDL_uclibc PRIVATE "${SDL3_BINARY_DIR}/include-config-$<LOWER_CASE:$<CONFIG>>/build_config")
|
||||
target_include_directories(SDL_uclibc PRIVATE "${SDL3_SOURCE_DIR}/src")
|
||||
target_include_directories(SDL_uclibc PRIVATE "${SDL3_SOURCE_DIR}/include")
|
||||
SDL_AddCommonCompilerFlags(SDL_uclibc)
|
||||
sdl_sources(STATIC "$<TARGET_OBJECTS:SDL_uclibc>")
|
||||
if(TARGET SDL3-shared)
|
||||
target_link_libraries(SDL3-shared PRIVATE SDL_uclibc)
|
||||
endif()
|
||||
if(HAVE_GCC_FVISIBILITY)
|
||||
set_property(TARGET SDL_uclibc PROPERTY C_VISIBILITY_PRESET "hidden")
|
||||
endif()
|
||||
|
||||
# Enable/disable various subsystems of the SDL library
|
||||
foreach(_SUB ${SDL_SUBSYSTEMS})
|
||||
@ -2763,6 +2768,7 @@ elseif(PSP)
|
||||
elseif(PS2)
|
||||
sdl_compile_definitions(PRIVATE "PS2" "__PS2__")
|
||||
sdl_include_directories(PRIVATE SYSTEM "$ENV{PS2SDK}/ports/include" "$ENV{PS2DEV}/gsKit/include")
|
||||
target_include_directories(SDL_uclibc PRIVATE "$ENV{PS2SDK}/ports/include" "$ENV{PS2DEV}/gsKit/include")
|
||||
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/main/ps2/*.c")
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user