@@ -22,7 +22,8 @@ endif()
22
22
set (EXTRA_LIBS )
23
23
set (EXTRA_LDFLAGS )
24
24
25
- set (CMAKE_DEPENDS )
25
+ set (CMAKE_LIBS )
26
+ set (PKGCONFIG_LDFLAGS )
26
27
set (PKGCONFIG_DEPENDS )
27
28
28
29
# This is a virtual "library" that just exists to collect up compiler and
@@ -2284,73 +2285,96 @@ elseif(APPLE)
2284
2285
endif ()
2285
2286
endif ()
2286
2287
2288
+ # Minimum version for $<LINK_LIBRARY:feature,library-list>
2289
+ cmake_minimum_required (VERSION 3.24 )
2290
+
2287
2291
# Actually load the frameworks at the end so we don't duplicate include.
2288
2292
if (SDL_FRAMEWORK_COREVIDEO )
2289
- list (APPEND EXTRA_LDFLAGS "-Wl,-framework,CoreVideo" )
2293
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreVideo" )
2294
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,CoreVideo>" )
2290
2295
endif ()
2291
2296
if (SDL_FRAMEWORK_COCOA )
2292
- list (APPEND EXTRA_LDFLAGS "-Wl,-framework,Cocoa" )
2297
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,Cocoa" )
2298
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,Cocoa>" )
2293
2299
endif ()
2294
2300
if (SDL_FRAMEWORK_IOKIT )
2295
- list (APPEND EXTRA_LDFLAGS "-Wl,-framework,IOKit" )
2301
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,IOKit" )
2302
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,IOKit>" )
2296
2303
endif ()
2297
2304
if (SDL_FRAMEWORK_FF )
2298
- list (APPEND EXTRA_LDFLAGS "-Wl,-framework,ForceFeedback" )
2305
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,ForceFeedback" )
2306
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,ForceFeedback>" )
2299
2307
endif ()
2300
2308
if (SDL_FRAMEWORK_CARBON )
2301
- list (APPEND EXTRA_LDFLAGS "-Wl,-framework,Carbon" )
2309
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,Carbon" )
2310
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,Carbon>" )
2302
2311
endif ()
2303
2312
if (SDL_FRAMEWORK_COREAUDIO )
2304
- list (APPEND EXTRA_LDFLAGS "-Wl,-framework,CoreAudio" )
2313
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreAudio" )
2314
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,CoreAudio>" )
2305
2315
endif ()
2306
2316
if (SDL_FRAMEWORK_AUDIOTOOLBOX )
2307
- list (APPEND EXTRA_LDFLAGS "-Wl,-framework,AudioToolbox" )
2317
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,AudioToolbox" )
2318
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,AudioToolbox>" )
2308
2319
endif ()
2309
2320
if (SDL_FRAMEWORK_AVFOUNDATION )
2310
- list (APPEND EXTRA_LDFLAGS "-Wl,-framework,AVFoundation" )
2321
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,AVFoundation" )
2322
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,AVFoundation>" )
2311
2323
endif ()
2312
2324
if (SDL_FRAMEWORK_COREBLUETOOTH )
2313
- list (APPEND EXTRA_LDFLAGS "-Wl,-framework,CoreBluetooth" )
2325
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreBluetooth" )
2326
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,CoreBluetooth>" )
2314
2327
endif ()
2315
2328
if (SDL_FRAMEWORK_COREGRAPHICS )
2316
- list (APPEND EXTRA_LDFLAGS "-Wl,-framework,CoreGraphics" )
2329
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreGraphics" )
2330
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,CoreGraphics>" )
2317
2331
endif ()
2318
2332
if (SDL_FRAMEWORK_COREMOTION )
2319
- list (APPEND EXTRA_LDFLAGS "-Wl,-framework,CoreMotion" )
2333
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreMotion" )
2334
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,Coremotion>" )
2320
2335
endif ()
2321
2336
if (SDL_FRAMEWORK_FOUNDATION )
2322
- list (APPEND EXTRA_LDFLAGS "-Wl,-framework,Foundation" )
2337
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,Foundation" )
2338
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,Foundation>" )
2323
2339
endif ()
2324
2340
if (SDL_FRAMEWORK_GAMECONTROLLER )
2325
2341
find_library (GAMECONTROLLER GameController )
2326
2342
if (GAMECONTROLLER )
2327
- list (APPEND EXTRA_LDFLAGS "-Wl,-weak_framework,GameController" )
2343
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-weak_framework,GameController" )
2344
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:WEAK_FRAMEWORK,GameController>" )
2328
2345
endif ()
2329
2346
endif ()
2330
2347
if (SDL_FRAMEWORK_METAL )
2331
2348
if (IOS OR TVOS )
2332
- list (APPEND EXTRA_LDFLAGS "-Wl,-framework,Metal" )
2349
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,Metal" )
2350
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,Metal>" )
2333
2351
else ()
2334
- list (APPEND EXTRA_LDFLAGS "-Wl,-weak_framework,Metal" )
2352
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-weak_framework,Metal" )
2353
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:WEAK_FRAMEWORK,Metal>" )
2335
2354
endif ()
2336
2355
endif ()
2337
2356
if (SDL_FRAMEWORK_OPENGLES )
2338
- list (APPEND EXTRA_LDFLAGS "-Wl,-framework,OpenGLES" )
2357
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,OpenGLES" )
2358
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,OpenGLES>" )
2339
2359
endif ()
2340
2360
if (SDL_FRAMEWORK_QUARTZCORE )
2341
2361
if (IOS OR TVOS )
2342
- list (APPEND EXTRA_LDFLAGS "-Wl,-framework,QuartzCore" )
2362
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,QuartzCore" )
2363
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,QuartzCore>" )
2343
2364
else ()
2344
- list (APPEND EXTRA_LDFLAGS "-Wl,-weak_framework,QuartzCore" )
2365
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-weak_framework,QuartzCore" )
2366
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:WEAK_FRAMEWORK,QuartzCore>" )
2345
2367
endif ()
2346
2368
endif ()
2347
2369
if (SDL_FRAMEWORK_UIKIT )
2348
- list (APPEND EXTRA_LDFLAGS "-Wl,-framework,UIKit" )
2370
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,UIKit" )
2371
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:FRAMEWORK,UIKit>" )
2349
2372
endif ()
2350
2373
if (SDL_FRAMEWORK_COREHAPTICS )
2351
2374
find_library (COREHAPTICS CoreHaptics )
2352
2375
if (COREHAPTICS )
2353
- list (APPEND EXTRA_LDFLAGS "-Wl,-weak_framework,CoreHaptics" )
2376
+ list (APPEND PKGCONFIG_LDFLAGS "-Wl,-weak_framework,CoreHaptics" )
2377
+ list (APPEND CMAKE_LIBS "$<LINK_LIBRARY:WEAK_FRAMEWORK,CoreHaptics>" )
2354
2378
endif ()
2355
2379
endif ()
2356
2380
@@ -3152,7 +3176,7 @@ endif()
3152
3176
3153
3177
# Clean up the different lists
3154
3178
listtostr (EXTRA_LIBS _EXTRA_LIBS "-l" )
3155
- set (SDL_STATIC_LIBS ${EXTRA_LDFLAGS} ${_EXTRA_LIBS} )
3179
+ set (SDL_STATIC_LIBS ${EXTRA_LDFLAGS} ${_EXTRA_LIBS} ${PKGCONFIG_LDFLAGS} )
3156
3180
list (REMOVE_DUPLICATES SDL_STATIC_LIBS )
3157
3181
listtostr (SDL_STATIC_LIBS _SDL_STATIC_LIBS )
3158
3182
set (SDL_STATIC_LIBS ${_SDL_STATIC_LIBS} )
@@ -3442,7 +3466,7 @@ if(SDL_SHARED)
3442
3466
set_property (TARGET SDL2 APPEND_STRING PROPERTY STATIC_LIBRARY_FLAGS " /NODEFAULTLIB" )
3443
3467
endif ()
3444
3468
# FIXME: if CMAKE_VERSION >= 3.13, use target_link_options for EXTRA_LDFLAGS
3445
- target_link_libraries (SDL2 PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS} ${EXTRA_LDFLAGS_BUILD} ${CMAKE_DEPENDS } )
3469
+ target_link_libraries (SDL2 PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS} ${EXTRA_LDFLAGS_BUILD} ${CMAKE_LIBS } )
3446
3470
target_include_directories (SDL2 PUBLIC
3447
3471
"$<BUILD_INTERFACE:${SDL2_BINARY_DIR} /include>"
3448
3472
"$<BUILD_INTERFACE:${SDL2_BINARY_DIR} /include/SDL2>"
@@ -3478,7 +3502,7 @@ if(SDL_STATIC)
3478
3502
target_compile_definitions (SDL2-static PRIVATE SDL_STATIC_LIB )
3479
3503
# TODO: Win32 platforms keep the same suffix .lib for import and static
3480
3504
# libraries - do we need to consider this?
3481
- target_link_libraries (SDL2-static PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS} ${CMAKE_DEPENDS } )
3505
+ target_link_libraries (SDL2-static PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS} ${CMAKE_LIBS } )
3482
3506
target_include_directories (SDL2-static PUBLIC
3483
3507
"$<BUILD_INTERFACE:${SDL2_BINARY_DIR} /include>"
3484
3508
"$<BUILD_INTERFACE:${SDL2_BINARY_DIR} /include/SDL2>"
0 commit comments