Przeglądaj źródła

[CI] build iOS with Conan

Andrey Filipenkov 3 lat temu
rodzic
commit
524ad5ab76
3 zmienionych plików z 56 dodań i 14 usunięć
  1. 2 1
      .github/workflows/github.yml
  2. 2 2
      CI/ios/before_install.sh
  3. 52 11
      CMakePresets.json

+ 2 - 1
.github/workflows/github.yml

@@ -95,7 +95,8 @@ jobs:
             test: 0
             pack: 1
             extension: ipa
-            preset: ios-release
+            preset: ios-release-conan
+            conan_profile: ios-arm64
           - platform: mxe
             os: ubuntu-20.04
             mxe: i686-w64-mingw32.shared

+ 2 - 2
CI/ios/before_install.sh

@@ -2,6 +2,6 @@
 
 echo DEVELOPER_DIR=/Applications/Xcode_13.4.1.app >> $GITHUB_ENV
 
-curl -L 'https://github.com/vcmi/vcmi-ios-deps/releases/latest/download/vcmi-ios-depends-xc13.2.1.txz' \
+mkdir ~/.conan ; cd ~/.conan
+curl -L 'https://github.com/vcmi/vcmi-ios-deps/releases/download/1.1/ios-arm64.xz' \
 	| tar -xf -
-build/fix_install_paths.command

+ 52 - 11
CMakePresets.json

@@ -6,6 +6,14 @@
             "hidden": true,
             "binaryDir": "${sourceDir}/out/build/${presetName}"
         },
+        {
+            "name": "build-with-conan",
+            "hidden": true,
+            "cacheVariables": {
+                "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/conan-generated/conan_toolchain.cmake",
+                "FORCE_BUNDLED_MINIZIP": "OFF"
+            }
+        },
         {
             "name": "base-release",
             "inherits": "release-binary-dir",
@@ -81,9 +89,11 @@
             "name": "macos-conan-ninja-release",
             "displayName": "Ninja+Conan release",
             "description": "VCMI MacOS Ninja using Conan",
-            "inherits": "default-release",
+            "inherits": [
+                "build-with-conan",
+                "default-release"
+            ],
             "cacheVariables": {
-                "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/conan-generated/conan_toolchain.cmake",
                 "CMAKE_BUILD_TYPE": "Release"
             }
         },
@@ -122,16 +132,42 @@
             }
         },
         {
-            "name": "ios-release",
-            "displayName": "iOS release",
-            "description": "VCMI iOS release",
+            "name": "ios-device-conan",
+            "displayName": "Base iOS device using Conan",
+            "description": "Base VCMI preset for iOS device using Conan",
+            "inherits": [
+                "build-with-conan",
+                "ios-device"
+            ]
+        },
+        {
+            "name": "base-ios-release",
+            "displayName": "Base iOS release",
+            "description": "Base VCMI preset for iOS release",
+            "inherits": "base-release",
+            "hidden": true,
+            "cacheVariables": {
+                "BUNDLE_IDENTIFIER_PREFIX": "eu.vcmi"
+            }
+        },
+        {
+            "name": "ios-release-conan",
+            "displayName": "iOS+Conan release",
+            "description": "VCMI iOS release using Conan",
             "inherits": [
-                "base-release",
-                "ios-device",
-                "release-binary-dir"
+                "base-ios-release",
+                "ios-device-conan"
+            ]
+        },
+        {
+            "name": "ios-release-legacy",
+            "displayName": "iOS release using legacy dependencies",
+            "description": "VCMI iOS release using legacy dependencies",
+            "inherits": [
+                "base-ios-release",
+                "ios-device"
             ],
             "cacheVariables": {
-                "BUNDLE_IDENTIFIER_PREFIX": "eu.vcmi",
                 "CMAKE_PREFIX_PATH": "${sourceDir}/build/iphoneos"
             }
         }
@@ -184,14 +220,19 @@
             "inherits": "default-release"
         },
         {
-            "name": "ios-release",
-            "configurePreset": "ios-release",
+            "name": "ios-release-conan",
+            "configurePreset": "ios-release-conan",
             "inherits": "default-release",
             "configuration": "Release",
             "targets": ["vcmiclient"],
             "nativeToolOptions": [
                 "CODE_SIGNING_ALLOWED_FOR_APPS=NO"
             ]
+        },
+        {
+            "name": "ios-release-legacy",
+            "configurePreset": "ios-release-legacy",
+            "inherits": "ios-release-conan"
         }
     ],
     "testPresets": [