aboutsummaryrefslogtreecommitdiff
path: root/ports/sdl2/0004-sdl2-alias-on-static-build.patch
blob: 6bb4eb061eb420ec5646591662d27c7cdc8fcdc0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
--- a/SDL2Config.cmake
+++ b/SDL2Config.cmake
@@ -1,5 +1,17 @@
 include("${CMAKE_CURRENT_LIST_DIR}/SDL2Targets.cmake")
 
+# on static-only builds create an alias
+if(NOT TARGET SDL2::SDL2 AND TARGET SDL2::SDL2-static)
+  if(CMAKE_VERSION VERSION_LESS "3.11")
+      message(FATAL_ERROR "At least CMake 3.11 is required for this configuration.")
+  elseif(CMAKE_VERSION VERSION_LESS "3.18")
+      # Aliasing local targets is not supported on CMake < 3.18, so make all targets global.
+      set_target_properties(SDL2::SDL2-static PROPERTIES IMPORTED_GLOBAL TRUE)
+      set_target_properties(SDL2::SDL2main PROPERTIES IMPORTED_GLOBAL TRUE)
+  endif()
+  add_library(SDL2::SDL2 ALIAS SDL2::SDL2-static)
+endif()
+
 # provide ${SDL2_LIBRARIES}, ${SDL2_INCLUDE_DIRS} etc, like sdl2-config.cmake does,
 # for compatibility between SDL2 built with autotools and SDL2 built with CMake