@@ -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