Skip to content

Commit 92666eb

Browse files
authored
Add arm64 configuration, bump 32/64 bit builds to newer vcpkg (#7)
1 parent 2ff25a7 commit 92666eb

File tree

1 file changed

+69
-46
lines changed

1 file changed

+69
-46
lines changed

.github/workflows/rebuildDependencies.yml

Lines changed: 69 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@ name: VCMI - vcpkg dependencies
22

33
on:
44
push:
5-
branches:
6-
- master
5+
branches: [ master ]
76
pull_request:
87
schedule:
9-
- cron: '0 2 * * 0' #every sunday 02:00
8+
- cron: '0 2 * * 0' # every Sunday 02:00
109
workflow_dispatch:
1110

1211
jobs:
@@ -17,62 +16,86 @@ jobs:
1716
include:
1817
- platform: msvc-x64
1918
triplet: x64-windows
19+
runner: windows-latest
20+
# commit before addition of boost filesystem 1.87 that removes Win7 support https://github.com/microsoft/vcpkg/pull/42678
21+
commit: ec12d917a85839741f8345905f71b3e7f56d9ddc
2022
- platform: msvc-x86
2123
triplet: x86-windows
24+
runner: windows-latest
25+
# commit before addition of boost filesystem 1.87 that removes Win7 support https://github.com/microsoft/vcpkg/pull/42678
26+
commit: ec12d917a85839741f8345905f71b3e7f56d9ddc
27+
- platform: msvc-arm64
28+
triplet: arm64-windows
29+
runner: windows-11-arm
30+
# commit before changes to yasm package which seems to break ARM builds https://github.com/microsoft/vcpkg/pull/45856
31+
commit: 94a9df6990e426ec3fff1a4ba20016da4aafea70
2232

23-
runs-on: windows-latest
33+
runs-on: ${{ matrix.runner }}
2434
defaults:
2535
run:
2636
shell: bash
2737

2838
steps:
29-
- name: Checkout vcpkg repository
30-
uses: actions/checkout@v4
31-
with:
32-
repository: 'microsoft/vcpkg'
39+
- name: Checkout vcpkg repository
40+
uses: actions/checkout@v4
41+
with:
42+
repository: 'microsoft/vcpkg'
43+
ref: ${{ matrix.commit }}
3344

34-
# NOTE: disabling debug for both 32 and 64 bit triplets, so 64 host / 32 guest won't build debug version of 64-bit tools
35-
- name: Disable debug builds
36-
run: |
37-
echo 'set(VCPKG_BUILD_TYPE release)' >>triplets/x64-windows.cmake
38-
echo 'set(VCPKG_BUILD_TYPE release)' >>triplets/x86-windows.cmake
45+
# NOTE: disabling debug for all triplets, so 64 host / 32 guest won't build debug version of 64-bit tools
46+
# Othervice, x86 package size is way larger than needed
47+
- name: Disable debug builds
48+
run: |
49+
echo 'set(VCPKG_BUILD_TYPE release)' >>triplets/x64-windows.cmake
50+
echo 'set(VCPKG_BUILD_TYPE release)' >>triplets/x86-windows.cmake
51+
echo 'set(VCPKG_BUILD_TYPE release)' >>triplets/arm64-windows.cmake
3952
40-
- name: Enable Windows 7 targeting
41-
run: |
42-
echo 'set(VCPKG_CXX_FLAGS "-D_WIN32_WINNT=0x0601 -DWINVER=0x0601")' >>triplets/x64-windows.cmake
43-
echo 'set(VCPKG_CXX_FLAGS "-D_WIN32_WINNT=0x0601 -DWINVER=0x0601")' >>triplets/x86-windows.cmake
44-
echo 'set(VCPKG_C_FLAGS "-D_WIN32_WINNT=0x0601 -DWINVER=0x0601")' >>triplets/x64-windows.cmake
45-
echo 'set(VCPKG_C_FLAGS "-D_WIN32_WINNT=0x0601 -DWINVER=0x0601")' >>triplets/x86-windows.cmake
53+
- name: Enable Windows 7 targeting (only for x86/x64)
54+
if: matrix.triplet == 'x64-windows' || matrix.triplet == 'x86-windows'
55+
run: |
56+
echo 'set(VCPKG_CXX_FLAGS "-D_WIN32_WINNT=0x0601 -DWINVER=0x0601")' >>triplets/${{ matrix.triplet }}.cmake
57+
echo 'set(VCPKG_C_FLAGS "-D_WIN32_WINNT=0x0601 -DWINVER=0x0601")' >>triplets/${{ matrix.triplet }}.cmake
4658
47-
- name: Initialize vcpkg
48-
run: |
49-
./bootstrap-vcpkg.bat
59+
- name: Initialize vcpkg
60+
run: ./bootstrap-vcpkg.bat
5061

51-
# NOTE: listing all boost components required by VCMI. Full boost is not suitable due to python being broken on 32-bit Win7
52-
- name: Build packages
53-
run: |
54-
./vcpkg.exe install tbb fuzzylite sdl2 sdl2-image sdl2-ttf sdl2-mixer[core,mpg123] qt5-base ffmpeg[core,avcodec,avformat,swresample,swscale] qt5-tools boost-filesystem boost-system boost-thread boost-program-options boost-locale boost-iostreams boost-headers boost-foreach boost-format boost-crc boost-logic boost-multi-array boost-ptr-container boost-heap boost-bimap boost-asio boost-stacktrace boost-assign boost-geometry boost-uuid boost-uuid boost-process --triplet '${{matrix.triplet}}'
62+
- name: Install dependencies
63+
run: |
64+
./vcpkg.exe install yasm --triplet "${{ matrix.triplet }}"
65+
./vcpkg.exe install \
66+
tbb fuzzylite sdl2 sdl2-image sdl2-ttf sdl2-mixer[core,mpg123] \
67+
qt5-base qt5-tools \
68+
ffmpeg[core,avcodec,avformat,swresample,swscale] \
69+
boost-filesystem boost-system boost-thread boost-program-options boost-locale \
70+
boost-iostreams boost-headers boost-foreach boost-format boost-crc boost-logic \
71+
boost-multi-array boost-ptr-container boost-heap boost-bimap boost-asio \
72+
boost-stacktrace boost-assign boost-geometry boost-uuid boost-process \
73+
--triplet "${{ matrix.triplet }}"
5574
56-
- name: Export packages
57-
run: |
58-
./vcpkg.exe export tbb fuzzylite sdl2 sdl2-image sdl2-ttf sdl2-mixer qt5-base ffmpeg qt5-tools boost-filesystem boost-system boost-thread boost-program-options boost-locale boost-iostreams boost-headers boost-foreach boost-format boost-crc boost-logic boost-multi-array boost-ptr-container boost-heap boost-bimap boost-asio boost-stacktrace boost-assign boost-geometry boost-uuid boost-process --raw --triplet '${{matrix.triplet}}' --output=result/vcpkg
59-
60-
# We don't really need pdb's for tools and they eat A LOT of space
61-
# even pdb's for dependencies are extremely situational so we can consider removing pdb's entirely to reduce prebuilds size / install time
62-
- name: Trim pdb files from packages
63-
run: |
64-
find result/vcpkg/installed/*/tools -type f -name "*.pdb" -delete
75+
- name: Export packages
76+
run: |
77+
./vcpkg.exe export \
78+
tbb fuzzylite sdl2 sdl2-image sdl2-ttf sdl2-mixer qt5-base qt5-tools ffmpeg \
79+
boost-filesystem boost-system boost-thread boost-program-options boost-locale \
80+
boost-iostreams boost-headers boost-foreach boost-format boost-crc boost-logic \
81+
boost-multi-array boost-ptr-container boost-heap boost-bimap boost-asio \
82+
boost-stacktrace boost-assign boost-geometry boost-uuid boost-process \
83+
--raw --triplet "${{ matrix.triplet }}" --output=result/vcpkg
6584
66-
- name: Created prebuilts package
67-
run: |
68-
tar --create --xz --file dependencies-${{matrix.platform}}.txz -C result vcpkg
85+
- name: Trim pdb files
86+
run: |
87+
find result/vcpkg/installed/*/tools -type f -name "*.pdb" -delete
6988
70-
- name: Log resulting packages
71-
run: ./vcpkg.exe list
89+
- name: Create archive
90+
run: |
91+
tar --create --xz --file dependencies-${{ matrix.platform }}.txz -C result vcpkg
7292
73-
- name: Upload prebuilts package
74-
uses: actions/upload-artifact@v4
75-
with:
76-
name: dependencies-${{matrix.platform}}
77-
path: ${{github.workspace}}/dependencies-${{matrix.platform}}.txz
78-
compression-level: 0
93+
- name: Log resulting packages
94+
run: ./vcpkg.exe list
95+
96+
- name: Upload artifact
97+
uses: actions/upload-artifact@v4
98+
with:
99+
name: dependencies-${{ matrix.platform }}
100+
path: ${{ github.workspace }}/dependencies-${{ matrix.platform }}.txz
101+
compression-level: 0

0 commit comments

Comments
 (0)