@@ -2,11 +2,10 @@ name: VCMI - vcpkg dependencies
22
33on :
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
1211jobs :
@@ -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