mirror of
https://github.com/shadps4-emu/ext-SDL.git
synced 2025-02-18 17:59:31 +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>")
|
sdl_include_directories(NO_EXPORT SYSTEM PRIVATE "$<BUILD_INTERFACE:${SDL3_SOURCE_DIR}/src/video/khronos>")
|
||||||
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"
|
|
||||||
)
|
|
||||||
if(NOT SDL_LIBC)
|
|
||||||
sdl_glob_sources(
|
|
||||||
"${SDL3_SOURCE_DIR}/src/libm/*.c"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
if(MSVC AND TARGET SDL3-shared)
|
if(MSVC AND TARGET SDL3-shared)
|
||||||
if(SDL_CPU_X64)
|
if(SDL_CPU_X64)
|
||||||
enable_language(ASM_MASM)
|
enable_language(ASM_MASM)
|
||||||
@ -1057,9 +1022,6 @@ if(SDL_LIBC)
|
|||||||
}
|
}
|
||||||
" LIBC_HAS_${MATH_FN})
|
" LIBC_HAS_${MATH_FN})
|
||||||
set(HAVE_${MATH_FN} ${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("
|
check_c_source_compiles("
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
@ -1078,9 +1040,6 @@ if(SDL_LIBC)
|
|||||||
}
|
}
|
||||||
" LIBC_HAS_${MATH_FN}F)
|
" LIBC_HAS_${MATH_FN}F)
|
||||||
set(HAVE_${MATH_FN}F "${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()
|
endforeach()
|
||||||
cmake_pop_check_state()
|
cmake_pop_check_state()
|
||||||
|
|
||||||
@ -1152,6 +1111,52 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
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
|
# Enable/disable various subsystems of the SDL library
|
||||||
foreach(_SUB ${SDL_SUBSYSTEMS})
|
foreach(_SUB ${SDL_SUBSYSTEMS})
|
||||||
@ -2763,6 +2768,7 @@ elseif(PSP)
|
|||||||
elseif(PS2)
|
elseif(PS2)
|
||||||
sdl_compile_definitions(PRIVATE "PS2" "__PS2__")
|
sdl_compile_definitions(PRIVATE "PS2" "__PS2__")
|
||||||
sdl_include_directories(PRIVATE SYSTEM "$ENV{PS2SDK}/ports/include" "$ENV{PS2DEV}/gsKit/include")
|
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")
|
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/main/ps2/*.c")
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user