|
@@ -22,7 +22,8 @@ endif()
|
|
|
set(EXTRA_LIBS)
|
|
|
set(EXTRA_LDFLAGS)
|
|
|
|
|
|
-set(CMAKE_DEPENDS)
|
|
|
+set(CMAKE_LIBS)
|
|
|
+set(PKGCONFIG_LDFLAGS)
|
|
|
set(PKGCONFIG_DEPENDS)
|
|
|
|
|
|
# This is a virtual "library" that just exists to collect up compiler and
|
|
@@ -2284,73 +2285,96 @@ elseif(APPLE)
|
|
|
endif()
|
|
|
endif()
|
|
|
|
|
|
+ # Minimum version for $<LINK_LIBRARY:feature,library-list>
|
|
|
+ cmake_minimum_required(VERSION 3.24)
|
|
|
+
|
|
|
# Actually load the frameworks at the end so we don't duplicate include.
|
|
|
if(SDL_FRAMEWORK_COREVIDEO)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-framework,CoreVideo")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreVideo")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,CoreVideo>")
|
|
|
endif()
|
|
|
if(SDL_FRAMEWORK_COCOA)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-framework,Cocoa")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,Cocoa")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,Cocoa>")
|
|
|
endif()
|
|
|
if(SDL_FRAMEWORK_IOKIT)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-framework,IOKit")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,IOKit")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,IOKit>")
|
|
|
endif()
|
|
|
if(SDL_FRAMEWORK_FF)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-framework,ForceFeedback")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,ForceFeedback")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,ForceFeedback>")
|
|
|
endif()
|
|
|
if(SDL_FRAMEWORK_CARBON)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-framework,Carbon")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,Carbon")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,Carbon>")
|
|
|
endif()
|
|
|
if(SDL_FRAMEWORK_COREAUDIO)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-framework,CoreAudio")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreAudio")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,CoreAudio>")
|
|
|
endif()
|
|
|
if(SDL_FRAMEWORK_AUDIOTOOLBOX)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-framework,AudioToolbox")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,AudioToolbox")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,AudioToolbox>")
|
|
|
endif()
|
|
|
if(SDL_FRAMEWORK_AVFOUNDATION)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-framework,AVFoundation")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,AVFoundation")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,AVFoundation>")
|
|
|
endif()
|
|
|
if(SDL_FRAMEWORK_COREBLUETOOTH)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-framework,CoreBluetooth")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreBluetooth")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,CoreBluetooth>")
|
|
|
endif()
|
|
|
if(SDL_FRAMEWORK_COREGRAPHICS)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-framework,CoreGraphics")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreGraphics")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,CoreGraphics>")
|
|
|
endif()
|
|
|
if(SDL_FRAMEWORK_COREMOTION)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-framework,CoreMotion")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreMotion")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,Coremotion>")
|
|
|
endif()
|
|
|
if(SDL_FRAMEWORK_FOUNDATION)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-framework,Foundation")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,Foundation")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,Foundation>")
|
|
|
endif()
|
|
|
if(SDL_FRAMEWORK_GAMECONTROLLER)
|
|
|
find_library(GAMECONTROLLER GameController)
|
|
|
if(GAMECONTROLLER)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-weak_framework,GameController")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-weak_framework,GameController")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:WEAK_FRAMEWORK,GameController>")
|
|
|
endif()
|
|
|
endif()
|
|
|
if(SDL_FRAMEWORK_METAL)
|
|
|
if(IOS OR TVOS)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-framework,Metal")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,Metal")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,Metal>")
|
|
|
else()
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-weak_framework,Metal")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-weak_framework,Metal")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:WEAK_FRAMEWORK,Metal>")
|
|
|
endif()
|
|
|
endif()
|
|
|
if(SDL_FRAMEWORK_OPENGLES)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-framework,OpenGLES")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,OpenGLES")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,OpenGLES>")
|
|
|
endif()
|
|
|
if(SDL_FRAMEWORK_QUARTZCORE)
|
|
|
if(IOS OR TVOS)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-framework,QuartzCore")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,QuartzCore")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,QuartzCore>")
|
|
|
else()
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-weak_framework,QuartzCore")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-weak_framework,QuartzCore")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:WEAK_FRAMEWORK,QuartzCore>")
|
|
|
endif()
|
|
|
endif()
|
|
|
if(SDL_FRAMEWORK_UIKIT)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-framework,UIKit")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,UIKit")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,UIKit>")
|
|
|
endif()
|
|
|
if(SDL_FRAMEWORK_COREHAPTICS)
|
|
|
find_library(COREHAPTICS CoreHaptics)
|
|
|
if(COREHAPTICS)
|
|
|
- list(APPEND EXTRA_LDFLAGS "-Wl,-weak_framework,CoreHaptics")
|
|
|
+ list(APPEND PKGCONFIG_LDFLAGS "-Wl,-weak_framework,CoreHaptics")
|
|
|
+ list(APPEND CMAKE_LIBS "$<LINK_LIBRARY:WEAK_FRAMEWORK,CoreHaptics>")
|
|
|
endif()
|
|
|
endif()
|
|
|
|
|
@@ -3152,7 +3176,7 @@ endif()
|
|
|
|
|
|
# Clean up the different lists
|
|
|
listtostr(EXTRA_LIBS _EXTRA_LIBS "-l")
|
|
|
-set(SDL_STATIC_LIBS ${EXTRA_LDFLAGS} ${_EXTRA_LIBS})
|
|
|
+set(SDL_STATIC_LIBS ${EXTRA_LDFLAGS} ${_EXTRA_LIBS} ${PKGCONFIG_LDFLAGS})
|
|
|
list(REMOVE_DUPLICATES SDL_STATIC_LIBS)
|
|
|
listtostr(SDL_STATIC_LIBS _SDL_STATIC_LIBS)
|
|
|
set(SDL_STATIC_LIBS ${_SDL_STATIC_LIBS})
|
|
@@ -3442,7 +3466,7 @@ if(SDL_SHARED)
|
|
|
set_property(TARGET SDL2 APPEND_STRING PROPERTY STATIC_LIBRARY_FLAGS " /NODEFAULTLIB")
|
|
|
endif()
|
|
|
# FIXME: if CMAKE_VERSION >= 3.13, use target_link_options for EXTRA_LDFLAGS
|
|
|
- target_link_libraries(SDL2 PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS} ${EXTRA_LDFLAGS_BUILD} ${CMAKE_DEPENDS})
|
|
|
+ target_link_libraries(SDL2 PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS} ${EXTRA_LDFLAGS_BUILD} ${CMAKE_LIBS})
|
|
|
target_include_directories(SDL2 PUBLIC
|
|
|
"$<BUILD_INTERFACE:${SDL2_BINARY_DIR}/include>"
|
|
|
"$<BUILD_INTERFACE:${SDL2_BINARY_DIR}/include/SDL2>"
|
|
@@ -3478,7 +3502,7 @@ if(SDL_STATIC)
|
|
|
target_compile_definitions(SDL2-static PRIVATE SDL_STATIC_LIB)
|
|
|
# TODO: Win32 platforms keep the same suffix .lib for import and static
|
|
|
# libraries - do we need to consider this?
|
|
|
- target_link_libraries(SDL2-static PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS} ${CMAKE_DEPENDS})
|
|
|
+ target_link_libraries(SDL2-static PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS} ${CMAKE_LIBS})
|
|
|
target_include_directories(SDL2-static PUBLIC
|
|
|
"$<BUILD_INTERFACE:${SDL2_BINARY_DIR}/include>"
|
|
|
"$<BUILD_INTERFACE:${SDL2_BINARY_DIR}/include/SDL2>"
|