Skip to content

Commit

Permalink
Add msvc configuration for Conan
Browse files Browse the repository at this point in the history
  • Loading branch information
IvanSavenko committed Aug 18, 2024
1 parent 4c52268 commit 5cb091d
Show file tree
Hide file tree
Showing 6 changed files with 97 additions and 47 deletions.
101 changes: 57 additions & 44 deletions .github/workflows/prebuilts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,43 +10,51 @@ 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-conan-64
os: windows-2019
conan_profile: windows-msvc-64
preset: windows-msvc-release
- platform: msvc-conan-32
os: windows-2019
conan_profile: windows-msvc-32
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:
Expand All @@ -66,17 +74,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 . \
Expand All @@ -90,15 +94,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
Expand All @@ -107,3 +108,15 @@ jobs:
name: ${{ matrix.platform }}
compression-level: 0
path: 'dependencies.tgz'

- name: Create additional dependencies archive
if: ${{ startsWith(matrix.platform, 'msvc') }}
run: "tar -czvf dependencies-2.tgz /c/.conan"

- name: Upload additional artifacts
if: ${{ startsWith(matrix.platform, 'msvc') }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.platform }}-2
compression-level: 0
path: 'dependencies-2.tgz'
12 changes: 12 additions & 0 deletions CI/conan/windows-msvc-32
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[settings]
arch=x86
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"]
ffmpeg/*:tools.env.virtualenv:powershell=False
12 changes: 12 additions & 0 deletions CI/conan/windows-msvc-64
Original file line number Diff line number Diff line change
@@ -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"]
ffmpeg/*:tools.env.virtualenv:powershell=False
7 changes: 7 additions & 0 deletions CI/msvc-conan-32/before_install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#curl -LfsS -o "vcpkg-export-${VCMI_BUILD_PLATFORM}-windows-v143.7z" \
# "https://github.com/vcmi/vcmi-deps-windows/releases/download/v1.7/vcpkg-export-${VCMI_BUILD_PLATFORM}-windows-v143.7z"
#7z x "vcpkg-export-${VCMI_BUILD_PLATFORM}-windows-v143.7z"

#rm -r -f vcpkg/installed/${VCMI_BUILD_PLATFORM}-windows/debug
#mkdir -p vcpkg/installed/${VCMI_BUILD_PLATFORM}-windows/debug/bin
#cp vcpkg/installed/${VCMI_BUILD_PLATFORM}-windows/bin/* vcpkg/installed/${VCMI_BUILD_PLATFORM}-windows/debug/bin
7 changes: 7 additions & 0 deletions CI/msvc-conan-64/before_install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#curl -LfsS -o "vcpkg-export-${VCMI_BUILD_PLATFORM}-windows-v143.7z" \
# "https://github.com/vcmi/vcmi-deps-windows/releases/download/v1.7/vcpkg-export-${VCMI_BUILD_PLATFORM}-windows-v143.7z"
#7z x "vcpkg-export-${VCMI_BUILD_PLATFORM}-windows-v143.7z"

#rm -r -f vcpkg/installed/${VCMI_BUILD_PLATFORM}-windows/debug
#mkdir -p vcpkg/installed/${VCMI_BUILD_PLATFORM}-windows/debug/bin
#cp vcpkg/installed/${VCMI_BUILD_PLATFORM}-windows/bin/* vcpkg/installed/${VCMI_BUILD_PLATFORM}-windows/debug/bin
5 changes: 2 additions & 3 deletions conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ class VCMI(ConanFile):

"boost/*:shared": True,
"minizip/*:shared": True,
"onetbb/*:shared": True,
}

def configure(self):
Expand Down Expand Up @@ -237,8 +236,8 @@ def requirements(self):
# 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")
Expand Down

0 comments on commit 5cb091d

Please sign in to comment.