vcpkg/ports/sdl2/0004-sdl2-alias-on-static-build.patch

21 lines
902 B
Diff
Raw Normal View History

--- 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