mirror of
https://github.com/love2d/megasource.git
synced 2026-08-20 04:30:45 +02:00
Update SDL2 to latest source (1a50334)
This commit is contained in:
+234
-43
@@ -23,6 +23,11 @@ if(WINDOWS_STORE)
|
||||
target_compile_options(sdl-build-options INTERFACE "-ZW")
|
||||
endif()
|
||||
|
||||
# Build in parallel under Visual Studio. Not enabled by default.
|
||||
if(MSVC)
|
||||
target_compile_options(sdl-build-options INTERFACE "/MP")
|
||||
endif(MSVC)
|
||||
|
||||
|
||||
# !!! FIXME: this should probably do "MACOSX_RPATH ON" as a target property
|
||||
# !!! FIXME: for the SDL2 shared library (so you get an
|
||||
@@ -61,12 +66,12 @@ include(${SDL2_SOURCE_DIR}/cmake/sdlchecks.cmake)
|
||||
# set SDL_BINARY_AGE and SDL_INTERFACE_AGE to 0.
|
||||
set(SDL_MAJOR_VERSION 2)
|
||||
set(SDL_MINOR_VERSION 0)
|
||||
set(SDL_MICRO_VERSION 18)
|
||||
set(SDL_INTERFACE_AGE 0)
|
||||
set(SDL_BINARY_AGE 18)
|
||||
set(SDL_MICRO_VERSION 20)
|
||||
set(SDL_INTERFACE_AGE 2)
|
||||
set(SDL_BINARY_AGE 20)
|
||||
set(SDL_VERSION "${SDL_MAJOR_VERSION}.${SDL_MINOR_VERSION}.${SDL_MICRO_VERSION}")
|
||||
# the following should match the versions in Xcode project file:
|
||||
set(DYLIB_CURRENT_VERSION 19.0.0)
|
||||
set(DYLIB_CURRENT_VERSION 19.2.0)
|
||||
set(DYLIB_COMPATIBILITY_VERSION 1.0.0)
|
||||
|
||||
# Set defaults preventing destination file conflicts
|
||||
@@ -224,7 +229,7 @@ if(APPLE OR ARCH_64 OR MSVC_CLANG)
|
||||
set(OPT_DEF_SSEMATH ON)
|
||||
endif()
|
||||
endif()
|
||||
if(UNIX OR MINGW OR MSYS OR (USE_CLANG AND NOT WINDOWS) OR VITA)
|
||||
if(UNIX OR MINGW OR MSYS OR (USE_CLANG AND NOT WINDOWS) OR VITA OR PSP)
|
||||
set(OPT_DEF_LIBC ON)
|
||||
endif()
|
||||
|
||||
@@ -328,7 +333,7 @@ if(EMSCRIPTEN)
|
||||
set(SDL_CPUINFO_ENABLED_BY_DEFAULT OFF)
|
||||
endif()
|
||||
|
||||
if(VITA)
|
||||
if(VITA OR PSP)
|
||||
set(SDL_SHARED_ENABLED_BY_DEFAULT OFF)
|
||||
set(SDL_LOADSO_ENABLED_BY_DEFAULT OFF)
|
||||
endif()
|
||||
@@ -367,6 +372,10 @@ foreach(_SUB ${SDL_SUBSYSTEMS})
|
||||
option(SDL_${_OPT} "Enable the ${_SUB} subsystem" ${SDL_${_OPT}_ENABLED_BY_DEFAULT})
|
||||
endforeach()
|
||||
|
||||
# Allow some projects to be built conditionally.
|
||||
set_option(SDL2_DISABLE_SDL2MAIN "Disable building/installation of SDL2main" OFF)
|
||||
set_option(SDL2_DISABLE_UNINSTALL "Disable uninstallation of SDL2" OFF)
|
||||
|
||||
option_string(SDL_ASSERTIONS "Enable internal sanity checks (auto/disabled/release/enabled/paranoid)" "auto")
|
||||
#set_option(SDL_DEPENDENCY_TRACKING "Use gcc -MMD -MT dependency tracking" ON)
|
||||
set_option(SDL_LIBC "Use the system C library" ${OPT_DEF_LIBC})
|
||||
@@ -916,12 +925,14 @@ if(SDL_LIBC)
|
||||
endif()
|
||||
|
||||
check_library_exists(iconv iconv_open "" HAVE_LIBICONV)
|
||||
check_library_exists(c iconv_open "" HAVE_BUILTIN_ICONV)
|
||||
if(HAVE_BUILTIN_ICONV)
|
||||
set(HAVE_ICONV 1)
|
||||
elseif(HAVE_LIBICONV)
|
||||
if(HAVE_LIBICONV)
|
||||
list(APPEND EXTRA_LIBS iconv)
|
||||
set(HAVE_ICONV 1)
|
||||
else()
|
||||
check_library_exists(c iconv_open "" HAVE_BUILTIN_ICONV)
|
||||
if(HAVE_BUILTIN_ICONV)
|
||||
set(HAVE_ICONV 1)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT APPLE)
|
||||
@@ -1360,7 +1371,7 @@ elseif(UNIX AND NOT APPLE AND NOT ANDROID AND NOT RISCOS AND NOT HAIKU)
|
||||
if(HAVE_LIBUNWIND_H)
|
||||
# We've already found the header, so REQUIRE the lib to be present
|
||||
pkg_search_module(UNWIND REQUIRED libunwind)
|
||||
pkg_search_module(UNWIND_GENERIC REQUIRED libunwind-generic)
|
||||
pkg_search_module(UNWIND_GENERIC libunwind-generic)
|
||||
list(APPEND EXTRA_LIBS ${UNWIND_LIBRARIES} ${UNWIND_GENERIC_LIBRARIES})
|
||||
endif()
|
||||
endif()
|
||||
@@ -1572,10 +1583,15 @@ elseif(WINDOWS)
|
||||
#include <xinput.h>
|
||||
XINPUT_STATE_EX s1;
|
||||
int main(int argc, char **argv) { }" HAVE_XINPUT_STATE_EX)
|
||||
check_include_file(windows.gaming.input.h HAVE_WINDOWS_GAMING_INPUT_H)
|
||||
check_c_source_compiles("
|
||||
#define COBJMACROS
|
||||
#include <windows.gaming.input.h>
|
||||
__x_ABI_CWindows_CGaming_CInput_CIGamepadStatics2 *s2;
|
||||
int main(int argc, char **argv) { }" HAVE_WINDOWS_GAMING_INPUT_H)
|
||||
endif()
|
||||
|
||||
# headers needed elsewhere
|
||||
check_include_file(tpcshrd.h HAVE_TPCSHRD_H)
|
||||
check_include_file(mmdeviceapi.h HAVE_MMDEVICEAPI_H)
|
||||
check_include_file(audioclient.h HAVE_AUDIOCLIENT_H)
|
||||
check_include_file(sensorsapi.h HAVE_SENSORSAPI_H)
|
||||
@@ -1780,8 +1796,11 @@ elseif(WINDOWS)
|
||||
if(MINGW OR CYGWIN)
|
||||
list(APPEND EXTRA_LIBS mingw32)
|
||||
list(APPEND EXTRA_LDFLAGS "-mwindows")
|
||||
set(SDL_CFLAGS "${SDL_CFLAGS} -Dmain=SDL_main")
|
||||
list(APPEND SDL_LIBS "-lmingw32" "-lSDL2main" "-mwindows")
|
||||
list(APPEND SDL_LIBS "-lmingw32" "-mwindows")
|
||||
if(NOT SDL2_DISABLE_SDL2MAIN)
|
||||
set(SDL_CFLAGS "${SDL_CFLAGS} -Dmain=SDL_main")
|
||||
list(APPEND SDL_LIBS "-lSDL2main")
|
||||
endif(NOT SDL2_DISABLE_SDL2MAIN)
|
||||
endif()
|
||||
|
||||
elseif(APPLE)
|
||||
@@ -2205,6 +2224,7 @@ elseif(RISCOS)
|
||||
if(SDL_AUDIO)
|
||||
CheckOSS()
|
||||
endif()
|
||||
|
||||
elseif(VITA)
|
||||
# SDL_spinlock.c Needs to be compiled in ARM mode.
|
||||
check_c_compiler_flag(-marm HAVE_ARM_MODE)
|
||||
@@ -2285,7 +2305,6 @@ elseif(VITA)
|
||||
|
||||
if(VIDEO_VITA_PVR)
|
||||
check_include_file(gpu_es4/psp2_pvr_hint.h HAVE_PVR_H)
|
||||
|
||||
if(HAVE_PVR_H)
|
||||
target_compile_definitions(sdl-build-options INTERFACE "-D__psp2__")
|
||||
set(SDL_VIDEO_OPENGL_EGL 1)
|
||||
@@ -2334,21 +2353,25 @@ elseif(VITA)
|
||||
taihen_stub
|
||||
)
|
||||
endif()
|
||||
|
||||
if(HAVE_VITA_PVR)
|
||||
list(PREPEND EXTRA_LIBS
|
||||
SceIme_stub
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(HAVE_ARMSIMD TRUE)
|
||||
set(SDL_ARM_SIMD_BLITTERS 1)
|
||||
file(GLOB ARMSIMD_SOURCES ${SDL2_SOURCE_DIR}/src/video/arm/pixman-arm-simd*.S)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${ARMSIMD_SOURCES})
|
||||
# set(HAVE_ARMSIMD TRUE)
|
||||
# set(SDL_ARM_SIMD_BLITTERS 1)
|
||||
# file(GLOB ARMSIMD_SOURCES ${SDL2_SOURCE_DIR}/src/video/arm/pixman-arm-simd*.S)
|
||||
# set(SOURCE_FILES ${SOURCE_FILES} ${ARMSIMD_SOURCES})
|
||||
|
||||
set(HAVE_ARMNEON TRUE)
|
||||
set(SDL_ARM_NEON_BLITTERS 1)
|
||||
file(GLOB ARMNEON_SOURCES ${SDL2_SOURCE_DIR}/src/video/arm/pixman-arm-neon*.S)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${ARMNEON_SOURCES})
|
||||
# set(HAVE_ARMNEON TRUE)
|
||||
# set(SDL_ARM_NEON_BLITTERS 1)
|
||||
# file(GLOB ARMNEON_SOURCES ${SDL2_SOURCE_DIR}/src/video/arm/pixman-arm-neon*.S)
|
||||
# set(SOURCE_FILES ${SOURCE_FILES} ${ARMNEON_SOURCES})
|
||||
|
||||
set_property(SOURCE ${SDL2_SOURCE_DIR}/src/video/arm/pixman-arm-simd-asm.S PROPERTY LANGUAGE C)
|
||||
set_property(SOURCE ${SDL2_SOURCE_DIR}/src/video/arm/pixman-arm-neon-asm.S PROPERTY LANGUAGE C)
|
||||
# set_property(SOURCE ${SDL2_SOURCE_DIR}/src/video/arm/pixman-arm-simd-asm.S PROPERTY LANGUAGE C)
|
||||
# set_property(SOURCE ${SDL2_SOURCE_DIR}/src/video/arm/pixman-arm-neon-asm.S PROPERTY LANGUAGE C)
|
||||
|
||||
target_compile_definitions(sdl-build-options INTERFACE "-D__VITA__")
|
||||
target_compile_definitions(sdl-build-options INTERFACE "-Dmemcpy=sceClibMemcpy")
|
||||
@@ -2358,6 +2381,137 @@ elseif(VITA)
|
||||
|
||||
# CheckPTHREAD()
|
||||
|
||||
elseif(PSP)
|
||||
file(GLOB PSP_MAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/psp/*.c)
|
||||
set(SDLMAIN_SOURCES ${SDLMAIN_SOURCES} ${PSP_MAIN_SOURCES})
|
||||
|
||||
if(SDL_AUDIO)
|
||||
set(SDL_AUDIO_DRIVER_PSP 1)
|
||||
file(GLOB PSP_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/psp/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${PSP_AUDIO_SOURCES})
|
||||
set(HAVE_SDL_AUDIO TRUE)
|
||||
endif()
|
||||
if(SDL_FILESYSTEM)
|
||||
set(SDL_FILESYSTEM_PSP 1)
|
||||
file(GLOB PSP_FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/psp/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${PSP_FILESYSTEM_SOURCES})
|
||||
set(HAVE_SDL_FILESYSTEM TRUE)
|
||||
endif()
|
||||
if(SDL_JOYSTICK)
|
||||
set(SDL_JOYSTICK_PSP 1)
|
||||
file(GLOB PSP_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/psp/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${PSP_JOYSTICK_SOURCES})
|
||||
set(HAVE_SDL_JOYSTICK TRUE)
|
||||
endif()
|
||||
if(SDL_POWER)
|
||||
set(SDL_POWER_PSP 1)
|
||||
file(GLOB PSP_POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/psp/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${PSP_POWER_SOURCES})
|
||||
set(HAVE_SDL_POWER TRUE)
|
||||
endif()
|
||||
if(SDL_THREADS)
|
||||
set(SDL_THREAD_PSP 1)
|
||||
file(GLOB PSP_THREAD_SOURCES ${SDL2_SOURCE_DIR}/src/thread/generic/SDL_systls.c ${SDL2_SOURCE_DIR}/src/thread/psp/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${PSP_THREAD_SOURCES})
|
||||
set(HAVE_SDL_THREADS TRUE)
|
||||
endif()
|
||||
if(SDL_TIMERS)
|
||||
set(SDL_TIMER_PSP 1)
|
||||
file(GLOB PSP_TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/psp/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${PSP_TIMER_SOURCES})
|
||||
set(HAVE_SDL_TIMERS TRUE)
|
||||
endif()
|
||||
if(SDL_VIDEO)
|
||||
set(SDL_VIDEO_DRIVER_PSP 1)
|
||||
set(SDL_VIDEO_RENDER_PSP 1)
|
||||
file(GLOB PSP_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/psp/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${PSP_VIDEO_SOURCES})
|
||||
set(SDL_VIDEO_OPENGL 1)
|
||||
set(HAVE_SDL_VIDEO TRUE)
|
||||
endif()
|
||||
|
||||
list(APPEND EXTRA_LIBS
|
||||
psppower
|
||||
pspctrl
|
||||
psphprm
|
||||
pspge
|
||||
pspgu
|
||||
pspdisplay
|
||||
pspvfpu
|
||||
pspaudio
|
||||
pspvram
|
||||
GL
|
||||
)
|
||||
|
||||
elseif(OS2)
|
||||
list(APPEND EXTRA_CFLAGS "-DOS2EMX_PLAIN_CHAR")
|
||||
|
||||
file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/os2/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${CORE_SOURCES})
|
||||
if(NOT (HAVE_ICONV AND HAVE_ICONV_H))
|
||||
file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/os2/geniconv/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${CORE_SOURCES})
|
||||
endif()
|
||||
|
||||
if(SDL_THREADS)
|
||||
set(SDL_THREAD_OS2 1)
|
||||
file(GLOB OS2_THREAD_SOURCES ${SDL2_SOURCE_DIR}/src/thread/os2/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${OS2_THREAD_SOURCES})
|
||||
set(HAVE_SDL_THREADS TRUE)
|
||||
endif()
|
||||
|
||||
if(SDL_TIMERS)
|
||||
set(SDL_TIMER_UNIX 1)
|
||||
file(GLOB OS2_TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/os2/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${OS2_TIMER_SOURCES})
|
||||
set(HAVE_SDL_TIMERS TRUE)
|
||||
endif()
|
||||
|
||||
if(SDL_LOADSO)
|
||||
set(SDL_LOADSO_OS2 1)
|
||||
file(GLOB OS2_LOADSO_SOURCES ${SDL2_SOURCE_DIR}/src/loadso/os2/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${OS2_LOADSO_SOURCES})
|
||||
set(HAVE_SDL_LOADSO TRUE)
|
||||
endif()
|
||||
|
||||
if(SDL_FILESYSTEM)
|
||||
set(SDL_FILESYSTEM_OS2 1)
|
||||
file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/os2/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${FILESYSTEM_SOURCES})
|
||||
set(HAVE_SDL_FILESYSTEM TRUE)
|
||||
endif()
|
||||
|
||||
if(SDL_LOCALE)
|
||||
file(GLOB LOCALE_SOURCES ${SDL2_SOURCE_DIR}/src/locale/unix/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${LOCALE_SOURCES})
|
||||
set(HAVE_SDL_LOCALE TRUE)
|
||||
endif()
|
||||
|
||||
if(SDL_VIDEO)
|
||||
set(SDL_VIDEO_DRIVER_OS2 1)
|
||||
file(GLOB OS2_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/os2/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${OS2_VIDEO_SOURCES})
|
||||
set(HAVE_SDL_VIDEO TRUE)
|
||||
endif()
|
||||
|
||||
if(SDL_AUDIO)
|
||||
set(SDL_AUDIO_DRIVER_OS2 1)
|
||||
file(GLOB OS2_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/os2/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${OS2_AUDIO_SOURCES})
|
||||
set(HAVE_SDL_AUDIO TRUE)
|
||||
list(APPEND EXTRA_LIBS mmpm2)
|
||||
endif()
|
||||
|
||||
if(SDL_JOYSTICK)
|
||||
set(SDL_JOYSTICK_OS2 1)
|
||||
file(GLOB OS2_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/os2/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${OS2_JOYSTICK_SOURCES})
|
||||
set(HAVE_SDL_JOYSTICK TRUE)
|
||||
endif()
|
||||
|
||||
if(SDL_HIDAPI)
|
||||
CheckHIDAPI()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(SDL_VULKAN AND NOT SDL_LOADSO)
|
||||
@@ -2602,7 +2756,7 @@ if (SDL_ASAN)
|
||||
asan_check_add_debug_flag("leak")
|
||||
# The object size sanitizer has no effect on unoptimized builds on Clang,
|
||||
# but causes warnings.
|
||||
if((NOT USE_CLANG) OR (CMAKE_BUILD_TYPE STREQUAL ""))
|
||||
if((NOT USE_CLANG) OR ("${CMAKE_BUILD_TYPE}" STREQUAL ""))
|
||||
asan_check_add_debug_flag("object-size")
|
||||
endif()
|
||||
endif()
|
||||
@@ -2631,7 +2785,7 @@ foreach(_OPT ${ALLOPTIONS})
|
||||
string(RANDOM LENGTH ${_PADLEN} ALPHABET " " _PADDING)
|
||||
message_tested_option(${_OPT} ${_PADDING})
|
||||
endforeach()
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
|
||||
message(STATUS "")
|
||||
message(STATUS " CMAKE_C_FLAGS_DEBUG: ${CMAKE_C_FLAGS_DEBUG}")
|
||||
message(STATUS " CMAKE_CXX_FLAGS_DEBUG: ${CMAKE_CXX_FLAGS_DEBUG}")
|
||||
@@ -2676,14 +2830,13 @@ endif()
|
||||
# Ensure that the extra cflags are used at compile time
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
|
||||
|
||||
# Always build SDLmain
|
||||
if(NOT WINDOWS_STORE)
|
||||
if(NOT WINDOWS_STORE AND NOT SDL2_DISABLE_SDL2MAIN)
|
||||
# Build SDLmain
|
||||
add_library(SDL2main STATIC ${SDLMAIN_SOURCES})
|
||||
# alias target for in-tree builds
|
||||
add_library(SDL2::SDL2main ALIAS SDL2main)
|
||||
target_include_directories(SDL2main BEFORE PRIVATE "${SDL2_BINARY_DIR}/include")
|
||||
target_include_directories(SDL2main PUBLIC "$<BUILD_INTERFACE:${SDL2_SOURCE_DIR}/include>" $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/SDL2>)
|
||||
set(_INSTALL_LIBS "SDL2main")
|
||||
if (NOT ANDROID)
|
||||
set_target_properties(SDL2main PROPERTIES DEBUG_POSTFIX "${SDL_CMAKE_DEBUG_POSTFIX}")
|
||||
endif()
|
||||
@@ -2714,6 +2867,9 @@ if(SDL_SHARED)
|
||||
if(WINDOWS OR CYGWIN)
|
||||
set_target_properties(SDL2 PROPERTIES
|
||||
DEFINE_SYMBOL DLL_EXPORT)
|
||||
elseif(OS2)
|
||||
set_target_properties(SDL2 PROPERTIES
|
||||
DEFINE_SYMBOL BUILD_SDL)
|
||||
endif()
|
||||
set_target_properties(SDL2 PROPERTIES
|
||||
VERSION ${SDL_VERSION}
|
||||
@@ -2729,7 +2885,6 @@ if(SDL_SHARED)
|
||||
endif()
|
||||
set_target_properties(SDL2 PROPERTIES STATIC_LIBRARY_FLAGS "/NODEFAULTLIB")
|
||||
endif()
|
||||
set(_INSTALL_LIBS "SDL2" ${_INSTALL_LIBS})
|
||||
target_link_libraries(SDL2 PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS})
|
||||
target_include_directories(SDL2 BEFORE PRIVATE "${SDL2_BINARY_DIR}/include")
|
||||
target_include_directories(SDL2 PUBLIC "$<BUILD_INTERFACE:${SDL2_SOURCE_DIR}/include>;$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>;$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/SDL2>")
|
||||
@@ -2761,7 +2916,6 @@ if(SDL_STATIC)
|
||||
endif()
|
||||
# TODO: Win32 platforms keep the same suffix .lib for import and static
|
||||
# libraries - do we need to consider this?
|
||||
set(_INSTALL_LIBS "SDL2-static" ${_INSTALL_LIBS})
|
||||
target_link_libraries(SDL2-static PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS})
|
||||
target_include_directories(SDL2-static BEFORE PRIVATE "${SDL2_BINARY_DIR}/include")
|
||||
target_include_directories(SDL2-static PUBLIC "$<BUILD_INTERFACE:${SDL2_SOURCE_DIR}/include>" $<INSTALL_INTERFACE:include> $<INSTALL_INTERFACE:include/SDL2>)
|
||||
@@ -2790,10 +2944,26 @@ if(SDL_TEST)
|
||||
endif()
|
||||
|
||||
##### Installation targets #####
|
||||
install(TARGETS ${_INSTALL_LIBS} EXPORT SDL2Targets
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
if(SDL_SHARED)
|
||||
install(TARGETS SDL2 EXPORT SDL2Targets
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
|
||||
if(NOT WINDOWS_STORE AND NOT SDL2_DISABLE_SDL2MAIN)
|
||||
install(TARGETS SDL2main EXPORT SDL2mainTargets
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
|
||||
if(SDL_STATIC)
|
||||
install(TARGETS SDL2-static EXPORT SDL2staticTargets
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
|
||||
##### Export files #####
|
||||
if (WINDOWS AND NOT MINGW)
|
||||
@@ -2808,11 +2978,30 @@ write_basic_package_version_file("${CMAKE_BINARY_DIR}/SDL2ConfigVersion.cmake"
|
||||
COMPATIBILITY AnyNewerVersion
|
||||
)
|
||||
|
||||
install(EXPORT SDL2Targets
|
||||
FILE SDL2Targets.cmake
|
||||
NAMESPACE SDL2::
|
||||
DESTINATION ${PKG_PREFIX}
|
||||
)
|
||||
if(SDL_SHARED)
|
||||
install(EXPORT SDL2Targets
|
||||
FILE SDL2Targets.cmake
|
||||
NAMESPACE SDL2::
|
||||
DESTINATION ${PKG_PREFIX}
|
||||
)
|
||||
endif()
|
||||
|
||||
if(NOT WINDOWS_STORE AND NOT SDL2_DISABLE_SDL2MAIN)
|
||||
install(EXPORT SDL2mainTargets
|
||||
FILE SDL2mainTargets.cmake
|
||||
NAMESPACE SDL2::
|
||||
DESTINATION ${PKG_PREFIX}
|
||||
)
|
||||
endif()
|
||||
|
||||
if(SDL_STATIC)
|
||||
install(EXPORT SDL2staticTargets
|
||||
FILE SDL2staticTargets.cmake
|
||||
NAMESPACE SDL2::
|
||||
DESTINATION ${PKG_PREFIX}
|
||||
)
|
||||
endif()
|
||||
|
||||
install(
|
||||
FILES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/SDL2Config.cmake
|
||||
@@ -2841,7 +3030,7 @@ if(NOT (WINDOWS OR CYGWIN) OR MINGW)
|
||||
if(SDL_SHARED)
|
||||
set(SOEXT ${CMAKE_SHARED_LIBRARY_SUFFIX}) # ".so", ".dylib", etc.
|
||||
get_target_property(SONAME SDL2 OUTPUT_NAME)
|
||||
if(NOT ANDROID AND NOT MINGW)
|
||||
if(NOT ANDROID AND NOT MINGW AND NOT OS2)
|
||||
install(CODE "
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||
\"lib${SONAME}${SOPOSTFIX}${SOEXT}\" \"libSDL2${SOPOSTFIX}${SOEXT}\"
|
||||
@@ -2863,6 +3052,7 @@ endif()
|
||||
|
||||
##### Uninstall target #####
|
||||
|
||||
if(NOT SDL2_DISABLE_UNINSTALL)
|
||||
if(NOT TARGET uninstall)
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
|
||||
@@ -2872,3 +3062,4 @@ if(NOT TARGET uninstall)
|
||||
add_custom_target(uninstall
|
||||
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
|
||||
endif()
|
||||
endif(NOT SDL2_DISABLE_UNINSTALL)
|
||||
|
||||
Reference in New Issue
Block a user