From 50c5dc2793aa5cb2a73281dd756573b415f3df17 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sun, 18 Aug 2024 13:09:45 +0000 Subject: [PATCH] Add msvc configuration for Conan --- .github/workflows/prebuilts.yml | 97 ++++++++++++++++++--------------- CI/conan/windows-msvc-64 | 12 ++++ conanfile.py | 9 ++- 3 files changed, 69 insertions(+), 49 deletions(-) create mode 100644 CI/conan/windows-msvc-64 diff --git a/.github/workflows/prebuilts.yml b/.github/workflows/prebuilts.yml index 4abc5d55a6b..77b693e68a6 100644 --- a/.github/workflows/prebuilts.yml +++ b/.github/workflows/prebuilts.yml @@ -10,43 +10,47 @@ jobs: fail-fast: false matrix: include: - - platform: mac-intel - os: macos-13 - preset: macos-conan-ninja-release - conan_profile: macos-intel - conan_options: --options with_apple_system_libs=True - artifact_platform: intel - - platform: mac-arm - os: macos-13 - preset: macos-arm-conan-ninja-release - conan_profile: macos-arm - conan_options: --options with_apple_system_libs=True - artifact_platform: arm - - platform: ios - os: macos-13 - preset: ios-release-conan-ccache - conan_profile: ios-arm64 - conan_options: --options with_apple_system_libs=True - - platform: mingw - os: ubuntu-22.04 - preset: windows-mingw-conan-linux - conan_profile: mingw64-linux.jinja - - platform: mingw-32 - os: ubuntu-22.04 - preset: windows-mingw-conan-linux - conan_profile: mingw32-linux.jinja - - platform: android-32 - os: macos-14 - preset: android-conan-ninja-release - conan_profile: android-32-ndk - conan_options: --conf tools.android:ndk_path=$ANDROID_NDK_ROOT - artifact_platform: armeabi-v7a - - platform: android-64 - os: macos-14 - preset: android-conan-ninja-release - conan_profile: android-64-ndk - conan_options: --conf tools.android:ndk_path=$ANDROID_NDK_ROOT - artifact_platform: arm64-v8a +# - platform: mac-intel +# os: macos-13 +# preset: macos-conan-ninja-release +# conan_profile: macos-intel +# conan_options: --options with_apple_system_libs=True +# artifact_platform: intel +# - platform: mac-arm +# os: macos-13 +# preset: macos-arm-conan-ninja-release +# conan_profile: macos-arm +# conan_options: --options with_apple_system_libs=True +# artifact_platform: arm +# - platform: ios +# os: macos-13 +# preset: ios-release-conan-ccache +# conan_profile: ios-arm64 +# conan_options: --options with_apple_system_libs=True + - platform: msvc + os: windows-2019 + conan_profile: windows-msvc-64 + preset: windows-msvc-release +# - platform: mingw +# os: ubuntu-22.04 +# preset: windows-mingw-conan-linux +# conan_profile: mingw64-linux.jinja +# - platform: mingw-32 +# os: ubuntu-22.04 +# preset: windows-mingw-conan-linux +# conan_profile: mingw32-linux.jinja +# - platform: android-32 +# os: macos-14 +# preset: android-conan-ninja-release +# conan_profile: android-32-ndk +# conan_options: --conf tools.android:ndk_path=$ANDROID_NDK_ROOT +# artifact_platform: armeabi-v7a +# - platform: android-64 +# os: macos-14 +# preset: android-conan-ninja-release +# conan_profile: android-64-ndk +# conan_options: --conf tools.android:ndk_path=$ANDROID_NDK_ROOT +# artifact_platform: arm64-v8a runs-on: ${{ matrix.os }} defaults: run: @@ -66,17 +70,13 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 - if: "${{ matrix.conan_profile != '' }}" with: python-version: '3.10' - name: Setup Conan - if: "${{ matrix.conan_profile != '' }}" run: pip3 install 'conan<2.0' - - name: Generate conan profile - if: "${{ matrix.conan_profile != '' }}" run: | conan profile new default --detect conan install . \ @@ -90,15 +90,12 @@ jobs: GENERATE_ONLY_BUILT_CONFIG: 1 - name: Remove builds and source code - if: "${{ matrix.conan_profile != '' }}" run: "conan remove --builds --src --force '*'" - name: Remove Android SDK - if: "${{ matrix.conan_profile != '' }}" run: rm -rf ~/.conan/data/android-ndk - name: Create dependencies archive - if: "${{ matrix.conan_profile != '' }}" run: "tar -czvf dependencies.tgz -C ~/.conan data" - name: Upload artifacts @@ -107,3 +104,15 @@ jobs: name: ${{ matrix.platform }} compression-level: 0 path: 'dependencies.tgz' + + - name: Create additional dependencies archive + if: "${{ matrix.platform == 'msvc' }}" + run: "tar -czvf dependencies-2.tgz -C C:/.conan data" + + - name: Upload additional artifacts + if: "${{ matrix.platform == 'msvc' }}" + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.platform }}-2 + compression-level: 0 + path: 'dependencies-2.tgz' diff --git a/CI/conan/windows-msvc-64 b/CI/conan/windows-msvc-64 new file mode 100644 index 00000000000..7b64fbec9ef --- /dev/null +++ b/CI/conan/windows-msvc-64 @@ -0,0 +1,12 @@ +[settings] +arch=x86_64 +os=Windows +compiler=msvc +compiler.cppstd=14 +compiler.runtime=dynamic +compiler.version=192 +build_type=Release + +[conf] +tools.build:defines = ["WINVER=0x0601", "_WIN32_WINNT=0x0601"] +tools.env.virtualenv:powershell=False \ No newline at end of file diff --git a/conanfile.py b/conanfile.py index 3d53fbe07ba..204a5370ac3 100644 --- a/conanfile.py +++ b/conanfile.py @@ -38,7 +38,6 @@ class VCMI(ConanFile): "boost/*:shared": True, "minizip/*:shared": True, - "onetbb/*:shared": True, } def configure(self): @@ -231,14 +230,14 @@ def requirements(self): self.requires("libpng/[~1.6.39]", override=True) # freetype / qt / sdl_image # client - if self.options.with_ffmpeg: - self.requires("ffmpeg/[^4.4]") + # if self.options.with_ffmpeg: + # self.requires("ffmpeg/[^4.4]") # launcher if self.settings.os == "Android": self.requires("qt/[~5.15.14]") - else: - self.requires("qt/[~5.15.2]") + # else: + # self.requires("qt/[~5.15.2]") # TODO: version range doesn't work in Conan v1 if self.options["qt"].openssl: self.requires("openssl/1.1.1s")