@@ -2,11 +2,10 @@ name: VCMI - vcpkg dependencies
2
2
3
3
on :
4
4
push :
5
- branches :
6
- - master
5
+ branches : [ master ]
7
6
pull_request :
8
7
schedule :
9
- - cron : ' 0 2 * * 0' # every sunday 02:00
8
+ - cron : ' 0 2 * * 0' # every Sunday 02:00
10
9
workflow_dispatch :
11
10
12
11
jobs :
@@ -17,62 +16,86 @@ jobs:
17
16
include :
18
17
- platform : msvc-x64
19
18
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
20
22
- platform : msvc-x86
21
23
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
22
32
23
- runs-on : windows-latest
33
+ runs-on : ${{ matrix.runner }}
24
34
defaults :
25
35
run :
26
36
shell : bash
27
37
28
38
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 }}
33
44
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
39
52
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
46
58
47
- - name : Initialize vcpkg
48
- run : |
49
- ./bootstrap-vcpkg.bat
59
+ - name : Initialize vcpkg
60
+ run : ./bootstrap-vcpkg.bat
50
61
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 }}"
55
74
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
65
84
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
69
88
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
72
92
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