Browse Source

move linking to system frameworks to appropriate Find* scripts

Andrey Filipenkov 3 years ago
parent
commit
7631e7ef06

+ 4 - 18
client/CMakeLists.txt

@@ -189,23 +189,14 @@ if(WIN32)
 	target_compile_definitions(vcmiclient PRIVATE WINDOWS_IGNORE_PACKING_MISMATCH)
 elseif(APPLE_IOS)
 	target_link_libraries(vcmiclient PRIVATE
-		"-lbz2"
+		# FFmpeg
+		bz2
+		iconv
+		z
 		"-framework AudioToolbox"
 		"-framework AVFoundation"
-		"-framework CoreGraphics"
 		"-framework CoreMedia"
-		"-framework CoreMotion"
-		"-framework CoreServices"
-		"-framework CoreVideo"
-		"-framework Foundation"
-		"-framework GameController"
-		"-framework ImageIO"
-		"-framework Metal"
-		"-framework OpenGLES"
-		"-framework QuartzCore"
-		"-framework UIKit"
 		"-framework VideoToolbox"
-		"-weak_framework CoreHaptics"
 	)
 
 	set_target_properties(vcmiclient PROPERTIES
@@ -247,11 +238,6 @@ if(ffmpeg_LIBRARIES)
 	target_link_libraries(vcmiclient PRIVATE
 		${ffmpeg_LIBRARIES}
 	)
-	if(APPLE_IOS)
-		target_link_libraries(vcmiclient PRIVATE
-			iconv
-		)
-	endif()
 else()
 	target_compile_definitions(vcmiclient PRIVATE DISABLE_VIDEO)
 endif()

+ 18 - 0
cmake_modules/FindSDL2.cmake

@@ -345,6 +345,24 @@ if(SDL2_FOUND)
       if (APPLE_MACOS)
         set_property(TARGET SDL2::SDL2 APPEND PROPERTY
                      INTERFACE_LINK_OPTIONS -framework Cocoa)
+      elseif (APPLE_IOS)
+        target_link_libraries(SDL2::SDL2 INTERFACE
+          "-framework AudioToolbox"
+          "-framework AVFoundation"
+          "-framework CoreAudio"
+          "-framework CoreBluetooth"
+          "-framework CoreFoundation"
+          "-framework CoreGraphics"
+          "-framework CoreMotion"
+          "-framework CoreVideo"
+          "-framework GameController"
+          "-framework IOKit"
+          "-framework Metal"
+          "-framework OpenGLES"
+          "-framework QuartzCore"
+          "-framework UIKit"
+          "-weak_framework CoreHaptics"
+        )
       endif()
     else()
       # For threads, as mentioned Apple doesn't need this.

+ 9 - 0
cmake_modules/FindSDL2_image.cmake

@@ -227,5 +227,14 @@ if(SDL2_IMAGE_FOUND)
                           IMPORTED_LOCATION "${SDL2_IMAGE_LIBRARY}"
                           INTERFACE_INCLUDE_DIRECTORIES "${SDL2_IMAGE_INCLUDE_DIR}"
                           INTERFACE_LINK_LIBRARIES SDL2::SDL2)
+    if (APPLE_IOS)
+      target_link_libraries(SDL2::Image INTERFACE
+        "-framework CoreGraphics"
+        "-framework Foundation"
+        "-framework ImageIO"
+        "-framework MobileCoreServices"
+        "-framework UIKit"
+      )
+    endif()
   endif()
 endif()

+ 6 - 0
cmake_modules/FindSDL2_mixer.cmake

@@ -216,5 +216,11 @@ if(SDL2_MIXER_FOUND)
                           IMPORTED_LOCATION "${SDL2_MIXER_LIBRARY}"
                           INTERFACE_INCLUDE_DIRECTORIES "${SDL2_MIXER_INCLUDE_DIR}"
                           INTERFACE_LINK_LIBRARIES SDL2::SDL2)
+    if (APPLE_IOS)
+      target_link_libraries(SDL2::Mixer INTERFACE
+        "-framework AudioToolbox"
+        "-framework CoreServices"
+      )
+    endif()
   endif()
 endif()