mirror of https://github.com/libsdl-org/SDL
cmake: collect cflags in sdl-build-options and sdl-global-options
This commit is contained in:
parent
fb80608fff
commit
373a6464c8
100
CMakeLists.txt
100
CMakeLists.txt
|
@ -17,14 +17,12 @@ set(EXTRA_LDFLAGS)
|
||||||
set(CMAKE_DEPENDS)
|
set(CMAKE_DEPENDS)
|
||||||
set(PKGCONFIG_DEPENDS)
|
set(PKGCONFIG_DEPENDS)
|
||||||
|
|
||||||
# This is a virtual "library" that just exists to collect up compiler and
|
# The sdl-build-options interface library collects all PRIVATE build options for the SDL libraries
|
||||||
# linker options that used to be global to this CMake project. When you
|
|
||||||
# specify it as part of a real library's target_link_libraries(), that
|
|
||||||
# library will also gain all those build options too. This is meant to
|
|
||||||
# modularize old calls to the global add_definitions and include_directories,
|
|
||||||
# etc. See https://github.com/libsdl-org/SDL/issues/4150
|
|
||||||
add_library(sdl-build-options INTERFACE)
|
add_library(sdl-build-options INTERFACE)
|
||||||
|
|
||||||
|
# The sdl-global-options interface library collects all PRIVATE build options for the SDL libraries + test + ...
|
||||||
|
add_library(sdl-global-options INTERFACE)
|
||||||
|
|
||||||
if(WINDOWS_STORE)
|
if(WINDOWS_STORE)
|
||||||
target_compile_definitions(sdl-build-options INTERFACE "SDL_BUILDING_WINRT=1")
|
target_compile_definitions(sdl-build-options INTERFACE "SDL_BUILDING_WINRT=1")
|
||||||
target_compile_options(sdl-build-options INTERFACE "-ZW")
|
target_compile_options(sdl-build-options INTERFACE "-ZW")
|
||||||
|
@ -78,7 +76,7 @@ include(${SDL3_SOURCE_DIR}/cmake/CheckCPUArchitecture.cmake)
|
||||||
# with large inode numbers
|
# with large inode numbers
|
||||||
check_symbol_exists("__GLIBC__" "stdlib.h" LIBC_IS_GLIBC)
|
check_symbol_exists("__GLIBC__" "stdlib.h" LIBC_IS_GLIBC)
|
||||||
if (LIBC_IS_GLIBC AND CMAKE_SIZEOF_VOID_P EQUAL 4)
|
if (LIBC_IS_GLIBC AND CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
add_definitions(-D_FILE_OFFSET_BITS=64)
|
target_compile_definitions(sdl-build-options "_FILE_OFFSET_BITS=64")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# See docs/release_checklist.md
|
# See docs/release_checklist.md
|
||||||
|
@ -539,17 +537,17 @@ if(USE_GCC OR USE_CLANG)
|
||||||
# /W3 as -Wall, and /W4 as -Wall -Wextra. So: /W3 is enough.
|
# /W3 as -Wall, and /W4 as -Wall -Wextra. So: /W3 is enough.
|
||||||
check_c_compiler_flag(-Wall HAVE_GCC_WALL)
|
check_c_compiler_flag(-Wall HAVE_GCC_WALL)
|
||||||
if(MSVC_CLANG)
|
if(MSVC_CLANG)
|
||||||
list(APPEND EXTRA_CFLAGS "/W3")
|
target_compile_options(sdl-global-options INTERFACE "/W3")
|
||||||
elseif(HAVE_GCC_WALL)
|
elseif(HAVE_GCC_WALL)
|
||||||
list(APPEND EXTRA_CFLAGS "-Wall")
|
target_compile_options(sdl-global-options INTERFACE "-Wall")
|
||||||
if(HAIKU)
|
if(HAIKU)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-multichar")
|
target_compile_options(sdl-global-options INTERFACE "-Wno-multichar")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
check_c_compiler_flag(-fno-strict-aliasing HAVE_GCC_NO_STRICT_ALIASING)
|
check_c_compiler_flag(-fno-strict-aliasing HAVE_GCC_NO_STRICT_ALIASING)
|
||||||
if(HAVE_GCC_NO_STRICT_ALIASING)
|
if(HAVE_GCC_NO_STRICT_ALIASING)
|
||||||
list(APPEND EXTRA_CFLAGS "-fno-strict-aliasing")
|
target_compile_options(sdl-global-options INTERFACE "-fno-strict-aliasing")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
check_c_compiler_flag(-Wdeclaration-after-statement HAVE_GCC_WDECLARATION_AFTER_STATEMENT)
|
check_c_compiler_flag(-Wdeclaration-after-statement HAVE_GCC_WDECLARATION_AFTER_STATEMENT)
|
||||||
|
@ -557,10 +555,10 @@ if(USE_GCC OR USE_CLANG)
|
||||||
if(SDL_WERROR)
|
if(SDL_WERROR)
|
||||||
check_c_compiler_flag(-Werror=declaration-after-statement HAVE_GCC_WERROR_DECLARATION_AFTER_STATEMENT)
|
check_c_compiler_flag(-Werror=declaration-after-statement HAVE_GCC_WERROR_DECLARATION_AFTER_STATEMENT)
|
||||||
if(HAVE_GCC_WERROR_DECLARATION_AFTER_STATEMENT)
|
if(HAVE_GCC_WERROR_DECLARATION_AFTER_STATEMENT)
|
||||||
list(APPEND EXTRA_CFLAGS "-Werror=declaration-after-statement")
|
target_compile_options(sdl-global-options INTERFACE "-Werror=declaration-after-statement")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
list(APPEND EXTRA_CFLAGS "-Wdeclaration-after-statement")
|
target_compile_options(sdl-global-options INTERFACE "-Wdeclaration-after-statement")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
check_c_compiler_flag(-Wdocumentation HAVE_GCC_WDOCUMENTATION)
|
check_c_compiler_flag(-Wdocumentation HAVE_GCC_WDOCUMENTATION)
|
||||||
|
@ -568,10 +566,10 @@ if(USE_GCC OR USE_CLANG)
|
||||||
if(SDL_WERROR)
|
if(SDL_WERROR)
|
||||||
check_c_compiler_flag(-Werror=documentation HAVE_GCC_WERROR_DOCUMENTATION)
|
check_c_compiler_flag(-Werror=documentation HAVE_GCC_WERROR_DOCUMENTATION)
|
||||||
if(HAVE_GCC_WERROR_DOCUMENTATION)
|
if(HAVE_GCC_WERROR_DOCUMENTATION)
|
||||||
list(APPEND EXTRA_CFLAGS "-Werror=documentation")
|
target_compile_options(sdl-global-options INTERFACE "-Werror=documentation")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
list(APPEND EXTRA_CFLAGS "-Wdocumentation")
|
target_compile_options(sdl-global-options INTERFACE "-Wdocumentation")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
check_c_compiler_flag(-Wdocumentation-unknown-command HAVE_GCC_WDOCUMENTATION_UNKNOWN_COMMAND)
|
check_c_compiler_flag(-Wdocumentation-unknown-command HAVE_GCC_WDOCUMENTATION_UNKNOWN_COMMAND)
|
||||||
|
@ -579,10 +577,10 @@ if(USE_GCC OR USE_CLANG)
|
||||||
if(SDL_WERROR)
|
if(SDL_WERROR)
|
||||||
check_c_compiler_flag(-Werror=documentation-unknown-command HAVE_GCC_WERROR_DOCUMENTATION_UNKNOWN_COMMAND)
|
check_c_compiler_flag(-Werror=documentation-unknown-command HAVE_GCC_WERROR_DOCUMENTATION_UNKNOWN_COMMAND)
|
||||||
if(HAVE_GCC_WERROR_DOCUMENTATION_UNKNOWN_COMMAND)
|
if(HAVE_GCC_WERROR_DOCUMENTATION_UNKNOWN_COMMAND)
|
||||||
list(APPEND EXTRA_CFLAGS "-Werror=documentation-unknown-command")
|
target_compile_options(sdl-global-options INTERFACE "-Werror=documentation-unknown-command")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
list(APPEND EXTRA_CFLAGS "-Wdocumentation-unknown-command")
|
target_compile_options(sdl-global-options INTERFACE "-Wdocumentation-unknown-command")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(DEPENDENCY_TRACKING)
|
if(DEPENDENCY_TRACKING)
|
||||||
|
@ -614,7 +612,7 @@ if(USE_GCC OR USE_CLANG)
|
||||||
|
|
||||||
check_c_compiler_flag(-Wshadow HAVE_GCC_WSHADOW)
|
check_c_compiler_flag(-Wshadow HAVE_GCC_WSHADOW)
|
||||||
if(HAVE_GCC_WSHADOW)
|
if(HAVE_GCC_WSHADOW)
|
||||||
list(APPEND EXTRA_CFLAGS "-Wshadow")
|
target_compile_options(sdl-global-options INTERFACE "-Wshadow")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
|
@ -654,9 +652,9 @@ if(USE_GCC OR USE_CLANG)
|
||||||
# Force color diagnostics when one of these conditions are met
|
# Force color diagnostics when one of these conditions are met
|
||||||
if(DEFINED ENV{CI} OR DEFINED ENV{USE_CCACHE} OR CMAKE_GENERATOR MATCHES Ninja)
|
if(DEFINED ENV{CI} OR DEFINED ENV{USE_CCACHE} OR CMAKE_GENERATOR MATCHES Ninja)
|
||||||
if(EMSCRIPTEN OR (USE_GCC AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9))
|
if(EMSCRIPTEN OR (USE_GCC AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9))
|
||||||
list(APPEND EXTRA_CFLAGS -fdiagnostics-color=always)
|
target_compile_options(sdl-global-options INTERFACE -fdiagnostics-color=always)
|
||||||
elseif(USE_CLANG AND NOT CMAKE_C_COMPILER_ID MATCHES AppleClang)
|
elseif(USE_CLANG AND NOT CMAKE_C_COMPILER_ID MATCHES AppleClang)
|
||||||
list(APPEND EXTRA_CFLAGS -fcolor-diagnostics)
|
target_compile_options(sdl-global-options INTERFACE -fcolor-diagnostics)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
@ -702,7 +700,7 @@ if(SDL_ASSEMBLY)
|
||||||
int main(int argc, char **argv) { return 0; }" HAVE_MMX)
|
int main(int argc, char **argv) { return 0; }" HAVE_MMX)
|
||||||
cmake_pop_check_state()
|
cmake_pop_check_state()
|
||||||
if(HAVE_MMX)
|
if(HAVE_MMX)
|
||||||
list(APPEND EXTRA_CFLAGS "-mmmx")
|
target_compile_options(sdl-build-options INTERFACE "-mmmx")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -727,7 +725,7 @@ if(SDL_ASSEMBLY)
|
||||||
cmake_pop_check_state()
|
cmake_pop_check_state()
|
||||||
if(CPU_SUPPORTS_SSE)
|
if(CPU_SUPPORTS_SSE)
|
||||||
set(HAVE_SSE ON)
|
set(HAVE_SSE ON)
|
||||||
list(APPEND EXTRA_CFLAGS "-msse")
|
target_compile_options(sdl-build-options INTERFACE "-msse")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -752,7 +750,7 @@ if(SDL_ASSEMBLY)
|
||||||
cmake_pop_check_state()
|
cmake_pop_check_state()
|
||||||
if(CPU_SUPPORTS_SSE2)
|
if(CPU_SUPPORTS_SSE2)
|
||||||
set(HAVE_SSE2 TRUE)
|
set(HAVE_SSE2 TRUE)
|
||||||
list(APPEND EXTRA_CFLAGS "-msse2")
|
target_compile_options(sdl-build-options INTERFACE "-msse2")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -777,7 +775,7 @@ if(SDL_ASSEMBLY)
|
||||||
cmake_pop_check_state()
|
cmake_pop_check_state()
|
||||||
if(CPU_SUPPORTS_SSE3)
|
if(CPU_SUPPORTS_SSE3)
|
||||||
set(HAVE_SSE3 TRUE)
|
set(HAVE_SSE3 TRUE)
|
||||||
list(APPEND EXTRA_CFLAGS "-msse3")
|
target_compile_options(sdl-build-options INTERFACE "-msse3")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -786,7 +784,7 @@ if(SDL_ASSEMBLY)
|
||||||
if(USE_GCC)
|
if(USE_GCC)
|
||||||
check_c_compiler_flag(-mfpmath=387 HAVE_FP_387)
|
check_c_compiler_flag(-mfpmath=387 HAVE_FP_387)
|
||||||
if(HAVE_FP_387)
|
if(HAVE_FP_387)
|
||||||
list(APPEND EXTRA_CFLAGS "-mfpmath=387")
|
target_compile_options(sdl-build-options INTERFACE "-mfpmath=387")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
@ -813,7 +811,7 @@ if(SDL_ASSEMBLY)
|
||||||
cmake_pop_check_state()
|
cmake_pop_check_state()
|
||||||
if(CPU_SUPPORTS_ALTIVEC OR HAVE_ALTIVEC_H_HDR)
|
if(CPU_SUPPORTS_ALTIVEC OR HAVE_ALTIVEC_H_HDR)
|
||||||
set(HAVE_ALTIVEC TRUE) # if only HAVE_ALTIVEC_H_HDR is set
|
set(HAVE_ALTIVEC TRUE) # if only HAVE_ALTIVEC_H_HDR is set
|
||||||
list(APPEND EXTRA_CFLAGS "-maltivec")
|
target_compile_options(sdl-build-options INTERFACE "-maltivec")
|
||||||
set(SDL_ALTIVEC_BLITTERS 1)
|
set(SDL_ALTIVEC_BLITTERS 1)
|
||||||
if(HAVE_ALTIVEC_H_HDR)
|
if(HAVE_ALTIVEC_H_HDR)
|
||||||
set(HAVE_ALTIVEC_H 1)
|
set(HAVE_ALTIVEC_H 1)
|
||||||
|
@ -833,7 +831,7 @@ if(SDL_ASSEMBLY)
|
||||||
cmake_pop_check_state()
|
cmake_pop_check_state()
|
||||||
|
|
||||||
if(CPU_HAS_LSX AND HAVE_LSXINTRIN_H)
|
if(CPU_HAS_LSX AND HAVE_LSXINTRIN_H)
|
||||||
list(APPEND EXTRA_CFLAGS "-mlsx")
|
target_compile_options(sdl-build-options INTERFACE "-mlsx")
|
||||||
set(HAS_LSX TRUE)
|
set(HAS_LSX TRUE)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
@ -849,7 +847,7 @@ if(SDL_ASSEMBLY)
|
||||||
check_include_file("lasxintrin.h" HAVE_LASXINTRIN_H)
|
check_include_file("lasxintrin.h" HAVE_LASXINTRIN_H)
|
||||||
cmake_pop_check_state()
|
cmake_pop_check_state()
|
||||||
if(CPU_HAS_LASX AND HAVE_LASXINTRIN_H)
|
if(CPU_HAS_LASX AND HAVE_LASXINTRIN_H)
|
||||||
list(APPEND EXTRA_CFLAGS "-mlasx")
|
target_compile_options(sdl-build-options INTERFACE "-mlasx")
|
||||||
set(HAS_LASX TRUE)
|
set(HAS_LASX TRUE)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
@ -1481,7 +1479,7 @@ elseif(UNIX AND NOT APPLE AND NOT RISCOS AND NOT HAIKU)
|
||||||
pkg_search_module(DBUS dbus-1 dbus)
|
pkg_search_module(DBUS dbus-1 dbus)
|
||||||
if(DBUS_FOUND)
|
if(DBUS_FOUND)
|
||||||
set(HAVE_DBUS_DBUS_H TRUE)
|
set(HAVE_DBUS_DBUS_H TRUE)
|
||||||
target_include_directories(sdl-build-options INTERFACE "${DBUS_INCLUDE_DIRS}")
|
target_include_directories(sdl-build-options INTERFACE ${DBUS_INCLUDE_DIRS})
|
||||||
# Fcitx need only dbus.
|
# Fcitx need only dbus.
|
||||||
set(HAVE_FCITX TRUE)
|
set(HAVE_FCITX TRUE)
|
||||||
set(HAVE_DBUS TRUE)
|
set(HAVE_DBUS TRUE)
|
||||||
|
@ -1493,7 +1491,7 @@ elseif(UNIX AND NOT APPLE AND NOT RISCOS AND NOT HAIKU)
|
||||||
find_path(HAVE_SYS_INOTIFY_H NAMES sys/inotify.h)
|
find_path(HAVE_SYS_INOTIFY_H NAMES sys/inotify.h)
|
||||||
if(IBUS_FOUND AND HAVE_SYS_INOTIFY_H)
|
if(IBUS_FOUND AND HAVE_SYS_INOTIFY_H)
|
||||||
set(HAVE_IBUS_IBUS_H TRUE)
|
set(HAVE_IBUS_IBUS_H TRUE)
|
||||||
target_include_directories(sdl-build-options INTERFACE "${IBUS_INCLUDE_DIRS}")
|
target_include_directories(sdl-build-options INTERFACE ${IBUS_INCLUDE_DIRS})
|
||||||
set(HAVE_IBUS TRUE)
|
set(HAVE_IBUS TRUE)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
@ -2586,7 +2584,8 @@ elseif(PSP)
|
||||||
)
|
)
|
||||||
|
|
||||||
elseif(PS2)
|
elseif(PS2)
|
||||||
list(APPEND EXTRA_CFLAGS "-DPS2" "-D__PS2__" "-I$ENV{PS2SDK}/ports/include" "-I$ENV{PS2DEV}/gsKit/include")
|
target_compile_definitions(sdl-build-options INTERFACE "PS2" "__PS2__")
|
||||||
|
target_include_directories(sdl-build-options INTERFACE "$ENV{PS2SDK}/ports/include" "$ENV{PS2DEV}/gsKit/include")
|
||||||
|
|
||||||
file(GLOB PS2_CORE_SOURCES ${SDL3_SOURCE_DIR}/src/core/ps2/*.c)
|
file(GLOB PS2_CORE_SOURCES ${SDL3_SOURCE_DIR}/src/core/ps2/*.c)
|
||||||
set(SOURCE_FILES ${SOURCE_FILES} ${PS2_CORE_SOURCES})
|
set(SOURCE_FILES ${SOURCE_FILES} ${PS2_CORE_SOURCES})
|
||||||
|
@ -3018,6 +3017,22 @@ if(SDL_TESTS)
|
||||||
set(HAVE_TESTS ON)
|
set(HAVE_TESTS ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
get_property(INFO_CFLAGS TARGET sdl-build-options PROPERTY INTERFACE_COMPILE_OPTIONS)
|
||||||
|
list(REMOVE_DUPLICATES INFO_CFLAGS)
|
||||||
|
listtostr(INFO_CFLAGS INFO_CFLAGS)
|
||||||
|
|
||||||
|
get_property(INFO_INCDIRS TARGET sdl-build-options PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
|
||||||
|
list(REMOVE_DUPLICATES INFO_INCDIRS)
|
||||||
|
listtostr(INFO_INCDIRS INFO_INCDIRS "-I")
|
||||||
|
|
||||||
|
get_property(INFO_DEFS TARGET sdl-build-options PROPERTY INTERFACE_COMPILE_DEFINITIONS)
|
||||||
|
list(REMOVE_DUPLICATES INFO_DEFS)
|
||||||
|
listtostr(INFO_DEFS INFO_DEFS "-D")
|
||||||
|
|
||||||
|
get_property(INFO_CHECKS TARGET sdl-global-options PROPERTY INTERFACE_COMPILE_OPTIONS)
|
||||||
|
list(REMOVE_DUPLICATES INFO_CHECKS)
|
||||||
|
listtostr(INFO_CHECKS INFO_CHECKS)
|
||||||
|
|
||||||
##### Info output #####
|
##### Info output #####
|
||||||
message(STATUS "")
|
message(STATUS "")
|
||||||
message(STATUS "SDL3 was configured with the following options:")
|
message(STATUS "SDL3 was configured with the following options:")
|
||||||
|
@ -3047,8 +3062,10 @@ if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
|
||||||
message(STATUS " CMAKE_CXX_FLAGS_DEBUG: ${CMAKE_CXX_FLAGS_DEBUG}")
|
message(STATUS " CMAKE_CXX_FLAGS_DEBUG: ${CMAKE_CXX_FLAGS_DEBUG}")
|
||||||
endif()
|
endif()
|
||||||
message(STATUS "")
|
message(STATUS "")
|
||||||
message(STATUS " CFLAGS: ${CMAKE_C_FLAGS}")
|
message(STATUS " CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}")
|
||||||
message(STATUS " EXTRA_CFLAGS: ${EXTRA_CFLAGS}")
|
message(STATUS " EXTRA DEFS: ${INFO_DEFS}")
|
||||||
|
message(STATUS " EXTRA CFLAGS: ${INFO_CFLAGS} ${INFO_CHECKS}")
|
||||||
|
message(STATUS " EXTRA INCDIRS: ${INFO_INCDIRS}")
|
||||||
message(STATUS " EXTRA_LDFLAGS: ${EXTRA_LDFLAGS} ${EXTRA_LDFLAGS_BUILD}")
|
message(STATUS " EXTRA_LDFLAGS: ${EXTRA_LDFLAGS} ${EXTRA_LDFLAGS_BUILD}")
|
||||||
message(STATUS " EXTRA_LIBS: ${EXTRA_LIBS}")
|
message(STATUS " EXTRA_LIBS: ${EXTRA_LIBS}")
|
||||||
message(STATUS "")
|
message(STATUS "")
|
||||||
|
@ -3083,9 +3100,6 @@ if(WARN_ABOUT_ARM_NEON_ASM_MIT)
|
||||||
message(STATUS " -DSDL_ARMNEON=OFF")
|
message(STATUS " -DSDL_ARMNEON=OFF")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Ensure that the extra cflags are used at compile time
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${EXTRA_CFLAGS_BUILD}")
|
|
||||||
|
|
||||||
if(ANDROID)
|
if(ANDROID)
|
||||||
target_include_directories(sdl-build-options INTERFACE "${ANDROID_NDK}/sources/android/cpufeatures")
|
target_include_directories(sdl-build-options INTERFACE "${ANDROID_NDK}/sources/android/cpufeatures")
|
||||||
endif()
|
endif()
|
||||||
|
@ -3165,6 +3179,7 @@ if(SDL_SHARED)
|
||||||
)
|
)
|
||||||
# This picks up all the compiler options and such we've accumulated up to here.
|
# This picks up all the compiler options and such we've accumulated up to here.
|
||||||
target_link_libraries(SDL3 PRIVATE $<BUILD_INTERFACE:sdl-build-options>)
|
target_link_libraries(SDL3 PRIVATE $<BUILD_INTERFACE:sdl-build-options>)
|
||||||
|
target_link_libraries(SDL3 PRIVATE $<BUILD_INTERFACE:sdl-global-options>)
|
||||||
if(MINGW OR CYGWIN)
|
if(MINGW OR CYGWIN)
|
||||||
if(NOT CMAKE_VERSION VERSION_LESS "3.13")
|
if(NOT CMAKE_VERSION VERSION_LESS "3.13")
|
||||||
target_link_options(SDL3 PRIVATE -static-libgcc)
|
target_link_options(SDL3 PRIVATE -static-libgcc)
|
||||||
|
@ -3184,7 +3199,8 @@ if(SDL_STATIC)
|
||||||
add_library(SDL3::SDL3-static ALIAS SDL3-static)
|
add_library(SDL3::SDL3-static ALIAS SDL3-static)
|
||||||
set_target_properties(SDL3-static PROPERTIES
|
set_target_properties(SDL3-static PROPERTIES
|
||||||
OUTPUT_NAME "${sdl_static_libname}"
|
OUTPUT_NAME "${sdl_static_libname}"
|
||||||
POSITION_INDEPENDENT_CODE "${SDL_STATIC_PIC}")
|
POSITION_INDEPENDENT_CODE "${SDL_STATIC_PIC}"
|
||||||
|
)
|
||||||
target_compile_definitions(SDL3-static PRIVATE SDL_STATIC_LIB)
|
target_compile_definitions(SDL3-static PRIVATE SDL_STATIC_LIB)
|
||||||
target_link_libraries(SDL3-static PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS} ${CMAKE_DEPENDS})
|
target_link_libraries(SDL3-static PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS} ${CMAKE_DEPENDS})
|
||||||
target_include_directories(SDL3-static
|
target_include_directories(SDL3-static
|
||||||
|
@ -3200,6 +3216,7 @@ if(SDL_STATIC)
|
||||||
)
|
)
|
||||||
# This picks up all the compiler options and such we've accumulated up to here.
|
# This picks up all the compiler options and such we've accumulated up to here.
|
||||||
target_link_libraries(SDL3-static PRIVATE $<BUILD_INTERFACE:sdl-build-options>)
|
target_link_libraries(SDL3-static PRIVATE $<BUILD_INTERFACE:sdl-build-options>)
|
||||||
|
target_link_libraries(SDL3-static PRIVATE $<BUILD_INTERFACE:sdl-global-options>)
|
||||||
# Use `Compatible Interface Properties` to allow consumers to enforce a shared/static library
|
# Use `Compatible Interface Properties` to allow consumers to enforce a shared/static library
|
||||||
set_property(TARGET SDL3-static PROPERTY INTERFACE_SDL3_SHARED FALSE)
|
set_property(TARGET SDL3-static PROPERTY INTERFACE_SDL3_SHARED FALSE)
|
||||||
set_property(TARGET SDL3-static APPEND PROPERTY COMPATIBLE_INTERFACE_BOOL SDL3_SHARED)
|
set_property(TARGET SDL3-static APPEND PROPERTY COMPATIBLE_INTERFACE_BOOL SDL3_SHARED)
|
||||||
|
@ -3208,9 +3225,11 @@ if(SDL_STATIC)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSDL_BUILD_MAJOR_VERSION=${SDL_MAJOR_VERSION}")
|
target_compile_definitions(sdl-build-options INTERFACE
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSDL_BUILD_MINOR_VERSION=${SDL_MINOR_VERSION}")
|
"SDL_BUILD_MAJOR_VERSION=${SDL_MAJOR_VERSION}"
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSDL_BUILD_MICRO_VERSION=${SDL_MICRO_VERSION}")
|
"SDL_BUILD_MINOR_VERSION=${SDL_MINOR_VERSION}"
|
||||||
|
"SDL_BUILD_MICRO_VERSION=${SDL_MICRO_VERSION}"
|
||||||
|
)
|
||||||
|
|
||||||
##### Tests #####
|
##### Tests #####
|
||||||
|
|
||||||
|
@ -3218,6 +3237,7 @@ if(SDL_TEST)
|
||||||
file(GLOB TEST_SOURCES ${SDL3_SOURCE_DIR}/src/test/*.c)
|
file(GLOB TEST_SOURCES ${SDL3_SOURCE_DIR}/src/test/*.c)
|
||||||
add_library(SDL3_test STATIC ${TEST_SOURCES})
|
add_library(SDL3_test STATIC ${TEST_SOURCES})
|
||||||
add_library(SDL3::SDL3_test ALIAS SDL3_test)
|
add_library(SDL3::SDL3_test ALIAS SDL3_test)
|
||||||
|
target_link_libraries(SDL3_test PRIVATE $<BUILD_INTERFACE:sdl-global-options>)
|
||||||
set_target_properties(SDL3_test PROPERTIES
|
set_target_properties(SDL3_test PROPERTIES
|
||||||
EXPORT_NAME SDL3_test)
|
EXPORT_NAME SDL3_test)
|
||||||
target_include_directories(SDL3_test
|
target_include_directories(SDL3_test
|
||||||
|
|
|
@ -138,7 +138,7 @@ macro(CheckPipewire)
|
||||||
file(GLOB PIPEWIRE_SOURCES ${SDL3_SOURCE_DIR}/src/audio/pipewire/*.c)
|
file(GLOB PIPEWIRE_SOURCES ${SDL3_SOURCE_DIR}/src/audio/pipewire/*.c)
|
||||||
list(APPEND SOURCE_FILES ${PIPEWIRE_SOURCES})
|
list(APPEND SOURCE_FILES ${PIPEWIRE_SOURCES})
|
||||||
set(SDL_AUDIO_DRIVER_PIPEWIRE 1)
|
set(SDL_AUDIO_DRIVER_PIPEWIRE 1)
|
||||||
list(APPEND EXTRA_CFLAGS ${PKG_PIPEWIRE_CFLAGS})
|
target_compile_options(sdl-build-options INTERFACE ${PKG_PIPEWIRE_CFLAGS})
|
||||||
if(SDL_PIPEWIRE_SHARED AND NOT HAVE_SDL_LOADSO)
|
if(SDL_PIPEWIRE_SHARED AND NOT HAVE_SDL_LOADSO)
|
||||||
message_warn("You must have SDL_LoadObject() support for dynamic Pipewire loading")
|
message_warn("You must have SDL_LoadObject() support for dynamic Pipewire loading")
|
||||||
endif()
|
endif()
|
||||||
|
@ -167,7 +167,7 @@ macro(CheckPulseAudio)
|
||||||
file(GLOB PULSEAUDIO_SOURCES ${SDL3_SOURCE_DIR}/src/audio/pulseaudio/*.c)
|
file(GLOB PULSEAUDIO_SOURCES ${SDL3_SOURCE_DIR}/src/audio/pulseaudio/*.c)
|
||||||
list(APPEND SOURCE_FILES ${PULSEAUDIO_SOURCES})
|
list(APPEND SOURCE_FILES ${PULSEAUDIO_SOURCES})
|
||||||
set(SDL_AUDIO_DRIVER_PULSEAUDIO 1)
|
set(SDL_AUDIO_DRIVER_PULSEAUDIO 1)
|
||||||
list(APPEND EXTRA_CFLAGS ${PKG_PULSEAUDIO_CFLAGS})
|
target_compile_options(sdl-build-options INTERFACE ${PKG_PULSEAUDIO_CFLAGS})
|
||||||
if(SDL_PULSEAUDIO_SHARED AND NOT HAVE_SDL_LOADSO)
|
if(SDL_PULSEAUDIO_SHARED AND NOT HAVE_SDL_LOADSO)
|
||||||
message_warn("You must have SDL_LoadObject() support for dynamic PulseAudio loading")
|
message_warn("You must have SDL_LoadObject() support for dynamic PulseAudio loading")
|
||||||
endif()
|
endif()
|
||||||
|
@ -196,7 +196,7 @@ macro(CheckJACK)
|
||||||
file(GLOB JACK_SOURCES ${SDL3_SOURCE_DIR}/src/audio/jack/*.c)
|
file(GLOB JACK_SOURCES ${SDL3_SOURCE_DIR}/src/audio/jack/*.c)
|
||||||
list(APPEND SOURCE_FILES ${JACK_SOURCES})
|
list(APPEND SOURCE_FILES ${JACK_SOURCES})
|
||||||
set(SDL_AUDIO_DRIVER_JACK 1)
|
set(SDL_AUDIO_DRIVER_JACK 1)
|
||||||
list(APPEND EXTRA_CFLAGS ${PKG_JACK_CFLAGS})
|
target_compile_options(sdl-build-options INTERFACE ${PKG_JACK_CFLAGS})
|
||||||
if(SDL_JACK_SHARED AND NOT HAVE_SDL_LOADSO)
|
if(SDL_JACK_SHARED AND NOT HAVE_SDL_LOADSO)
|
||||||
message_warn("You must have SDL_LoadObject() support for dynamic JACK audio loading")
|
message_warn("You must have SDL_LoadObject() support for dynamic JACK audio loading")
|
||||||
endif()
|
endif()
|
||||||
|
@ -225,7 +225,7 @@ macro(CheckSNDIO)
|
||||||
file(GLOB SNDIO_SOURCES ${SDL3_SOURCE_DIR}/src/audio/sndio/*.c)
|
file(GLOB SNDIO_SOURCES ${SDL3_SOURCE_DIR}/src/audio/sndio/*.c)
|
||||||
list(APPEND SOURCE_FILES ${SNDIO_SOURCES})
|
list(APPEND SOURCE_FILES ${SNDIO_SOURCES})
|
||||||
set(SDL_AUDIO_DRIVER_SNDIO 1)
|
set(SDL_AUDIO_DRIVER_SNDIO 1)
|
||||||
list(APPEND EXTRA_CFLAGS ${PKG_SNDIO_CFLAGS})
|
target_compile_options(sdl-build-options INTERFACE ${PKG_SNDIO_CFLAGS})
|
||||||
if(SDL_SNDIO_SHARED AND NOT HAVE_SDL_LOADSO)
|
if(SDL_SNDIO_SHARED AND NOT HAVE_SDL_LOADSO)
|
||||||
message_warn("You must have SDL_LoadObject() support for dynamic sndio loading")
|
message_warn("You must have SDL_LoadObject() support for dynamic sndio loading")
|
||||||
endif()
|
endif()
|
||||||
|
@ -318,7 +318,7 @@ macro(CheckX11)
|
||||||
)
|
)
|
||||||
|
|
||||||
if(X_INCLUDEDIR)
|
if(X_INCLUDEDIR)
|
||||||
list(APPEND EXTRA_CFLAGS "-I${X_INCLUDEDIR}")
|
target_include_directories(sdl-build-options INTERFACE "${X_INCLUDEDIR}")
|
||||||
list(APPEND CMAKE_REQUIRED_INCLUDES ${X_INCLUDEDIR})
|
list(APPEND CMAKE_REQUIRED_INCLUDES ${X_INCLUDEDIR})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -356,7 +356,7 @@ macro(CheckX11)
|
||||||
list(APPEND EXTRA_LIBS ipc)
|
list(APPEND EXTRA_LIBS ipc)
|
||||||
endif()
|
endif()
|
||||||
if(NOT HAVE_SHMAT_IN_LIBIPC)
|
if(NOT HAVE_SHMAT_IN_LIBIPC)
|
||||||
list(APPEND EXTRA_CFLAGS "-DNO_SHARED_MEMORY")
|
target_compile_definitions(sdl-build-options INTERFACE "NO_SHARED_MEMORY")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -491,7 +491,7 @@ macro(CheckX11)
|
||||||
endif()
|
endif()
|
||||||
if(NOT HAVE_X11)
|
if(NOT HAVE_X11)
|
||||||
# Prevent Mesa from including X11 headers
|
# Prevent Mesa from including X11 headers
|
||||||
list(APPEND EXTRA_CFLAGS "-DMESA_EGL_NO_X11_HEADERS -DEGL_NO_X11")
|
target_compile_definitions(sdl-build-options INTERFACE "MESA_EGL_NO_X11_HEADERS" "EGL_NO_X11")
|
||||||
endif()
|
endif()
|
||||||
cmake_pop_check_state()
|
cmake_pop_check_state()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
@ -553,8 +553,8 @@ macro(CheckWayland)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WAYLAND_FOUND)
|
if(WAYLAND_FOUND)
|
||||||
target_link_directories(sdl-build-options INTERFACE "${PKG_WAYLAND_LIBRARY_DIRS}")
|
target_link_directories(sdl-build-options INTERFACE ${PKG_WAYLAND_LIBRARY_DIRS})
|
||||||
target_include_directories(sdl-build-options INTERFACE "${PKG_WAYLAND_INCLUDE_DIRS}")
|
target_include_directories(sdl-build-options INTERFACE ${PKG_WAYLAND_INCLUDE_DIRS})
|
||||||
|
|
||||||
set(HAVE_WAYLAND TRUE)
|
set(HAVE_WAYLAND TRUE)
|
||||||
set(HAVE_SDL_VIDEO TRUE)
|
set(HAVE_SDL_VIDEO TRUE)
|
||||||
|
@ -806,7 +806,7 @@ macro(CheckPTHREAD)
|
||||||
}" HAVE_PTHREADS)
|
}" HAVE_PTHREADS)
|
||||||
if(HAVE_PTHREADS)
|
if(HAVE_PTHREADS)
|
||||||
set(SDL_THREAD_PTHREAD 1)
|
set(SDL_THREAD_PTHREAD 1)
|
||||||
list(APPEND EXTRA_CFLAGS ${PTHREAD_CFLAGS})
|
target_compile_options(sdl-build-options INTERFACE ${PTHREAD_CFLAGS})
|
||||||
list(APPEND EXTRA_LDFLAGS ${PTHREAD_LDFLAGS})
|
list(APPEND EXTRA_LDFLAGS ${PTHREAD_LDFLAGS})
|
||||||
list(APPEND SDL_CFLAGS ${PTHREAD_CFLAGS})
|
list(APPEND SDL_CFLAGS ${PTHREAD_CFLAGS})
|
||||||
|
|
||||||
|
@ -1014,7 +1014,7 @@ macro(CheckUSBHID)
|
||||||
set(SDL_JOYSTICK_USBHID 1)
|
set(SDL_JOYSTICK_USBHID 1)
|
||||||
file(GLOB BSD_JOYSTICK_SOURCES ${SDL3_SOURCE_DIR}/src/joystick/bsd/*.c)
|
file(GLOB BSD_JOYSTICK_SOURCES ${SDL3_SOURCE_DIR}/src/joystick/bsd/*.c)
|
||||||
list(APPEND SOURCE_FILES ${BSD_JOYSTICK_SOURCES})
|
list(APPEND SOURCE_FILES ${BSD_JOYSTICK_SOURCES})
|
||||||
list(APPEND EXTRA_CFLAGS ${USB_CFLAGS})
|
target_compile_options(sdl-build-options INTERFACE ${USB_CFLAGS})
|
||||||
list(APPEND EXTRA_LIBS ${USB_LIBS})
|
list(APPEND EXTRA_LIBS ${USB_LIBS})
|
||||||
set(HAVE_SDL_JOYSTICK TRUE)
|
set(HAVE_SDL_JOYSTICK TRUE)
|
||||||
|
|
||||||
|
@ -1148,7 +1148,7 @@ macro(CheckKMSDRM)
|
||||||
file(GLOB KMSDRM_SOURCES ${SDL3_SOURCE_DIR}/src/video/kmsdrm/*.c)
|
file(GLOB KMSDRM_SOURCES ${SDL3_SOURCE_DIR}/src/video/kmsdrm/*.c)
|
||||||
list(APPEND SOURCE_FILES ${KMSDRM_SOURCES})
|
list(APPEND SOURCE_FILES ${KMSDRM_SOURCES})
|
||||||
|
|
||||||
list(APPEND EXTRA_CFLAGS ${PKG_KMSDRM_CFLAGS})
|
target_compile_options(sdl-build-options INTERFACE ${PKG_KMSDRM_CFLAGS})
|
||||||
|
|
||||||
set(SDL_VIDEO_DRIVER_KMSDRM 1)
|
set(SDL_VIDEO_DRIVER_KMSDRM 1)
|
||||||
|
|
||||||
|
|
|
@ -94,6 +94,10 @@ macro(add_sdl_test_executable TARGET)
|
||||||
if(OPENGL_FOUND)
|
if(OPENGL_FOUND)
|
||||||
target_compile_definitions(${TARGET} PRIVATE HAVE_OPENGL)
|
target_compile_definitions(${TARGET} PRIVATE HAVE_OPENGL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(TARGET sdl-global-options)
|
||||||
|
target_link_libraries(${TARGET} PRIVATE $<BUILD_INTERFACE:sdl-global-options>)
|
||||||
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
check_include_file(signal.h HAVE_SIGNAL_H)
|
check_include_file(signal.h HAVE_SIGNAL_H)
|
||||||
|
@ -305,7 +309,7 @@ if(N3DS)
|
||||||
foreach(APP ${SDL_TEST_EXECUTABLES})
|
foreach(APP ${SDL_TEST_EXECUTABLES})
|
||||||
get_target_property(TARGET_BINARY_DIR ${APP} BINARY_DIR)
|
get_target_property(TARGET_BINARY_DIR ${APP} BINARY_DIR)
|
||||||
set(SMDH_FILE "${TARGET_BINARY_DIR}/${APP}.smdh")
|
set(SMDH_FILE "${TARGET_BINARY_DIR}/${APP}.smdh")
|
||||||
ctr_generate_smdh("${SMDH_FILE}"
|
ctr_generate_smdh("${SMDH_FILE}"
|
||||||
NAME "SDL-${APP}"
|
NAME "SDL-${APP}"
|
||||||
DESCRIPTION "SDL3 Test suite"
|
DESCRIPTION "SDL3 Test suite"
|
||||||
AUTHOR "SDL3 Contributors"
|
AUTHOR "SDL3 Contributors"
|
||||||
|
|
Loading…
Reference in New Issue