mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	Add support for Win7 and 32-bit msvc+vcpkg builds
This commit is contained in:
		
							
								
								
									
										24
									
								
								.github/workflows/github.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								.github/workflows/github.yml
									
									
									
									
										vendored
									
									
								
							| @@ -69,7 +69,7 @@ jobs: | ||||
|             conan_profile: ios-arm64 | ||||
|             conan_prebuilts: dependencies-ios | ||||
|             conan_options: --options with_apple_system_libs=True | ||||
|           - platform: msvc | ||||
|           - platform: msvc-x64 | ||||
|             os: windows-latest | ||||
|             test: 0 | ||||
|             pack: 1 | ||||
| @@ -77,6 +77,14 @@ jobs: | ||||
|             extension: exe | ||||
|             before_install: msvc.sh | ||||
|             preset: windows-msvc-release | ||||
|           - platform: msvc-x86 | ||||
|             os: windows-latest | ||||
|             test: 0 | ||||
|             pack: 1 | ||||
|             pack_type: RelWithDebInfo | ||||
|             extension: exe | ||||
|             before_install: msvc.sh | ||||
|             preset: windows-msvc-release-x86 | ||||
|           - platform: mingw_x86_64 | ||||
|             os: ubuntu-24.04 | ||||
|             test: 0 | ||||
| @@ -136,6 +144,10 @@ jobs: | ||||
|       if: "${{ matrix.conan_prebuilts != '' }}" | ||||
|       run: source '${{github.workspace}}/CI/install_conan_dependencies.sh' '${{matrix.conan_prebuilts}}' | ||||
|  | ||||
|     - name: Install vcpkg Dependencies | ||||
|       if: ${{ startsWith(matrix.platform, 'msvc') }} | ||||
|       run: source '${{github.workspace}}/CI/install_vcpkg_dependencies.sh' '${{matrix.platform}}' | ||||
|  | ||||
|     # ensure the ccache for each PR is separate so they don't interfere with each other | ||||
|     # fall back to ccache of the vcmi/vcmi repo if no PR-specific ccache is found | ||||
|     - name: ccache for PRs | ||||
| @@ -232,7 +244,7 @@ jobs: | ||||
|         elif [[ (${{matrix.preset}} == android-conan-ninja-release) && (${{github.ref}} != 'refs/heads/master') ]] | ||||
|         then | ||||
|             cmake -DENABLE_CCACHE:BOOL=ON -DANDROID_GRADLE_PROPERTIES="applicationIdSuffix=.daily;signingConfig=dailySigning;applicationLabel=VCMI daily" --preset ${{ matrix.preset }} | ||||
|         elif [[ ${{matrix.platform}} != msvc ]] | ||||
|         elif [[ (${{matrix.platform}} != msvc-x64) && (${{matrix.platform}} != msvc-x86) ]] | ||||
|         then | ||||
|             cmake -DENABLE_CCACHE:BOOL=ON --preset ${{ matrix.preset }} | ||||
|         else | ||||
| @@ -279,6 +291,7 @@ jobs: | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: ${{ env.VCMI_PACKAGE_FILE_NAME }} - ${{ matrix.platform }} | ||||
|         compression-level: 0 | ||||
|         path: | | ||||
|           ${{github.workspace}}/out/build/${{matrix.preset}}/${{ env.VCMI_PACKAGE_FILE_NAME }}.${{ matrix.extension }} | ||||
|  | ||||
| @@ -299,6 +312,7 @@ jobs: | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: ${{ env.VCMI_PACKAGE_FILE_NAME }} - ${{ matrix.platform }} | ||||
|         compression-level: 0 | ||||
|         path: | | ||||
|           ${{ env.ANDROID_APK_PATH }} | ||||
|  | ||||
| @@ -307,19 +321,21 @@ jobs: | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: ${{ env.VCMI_PACKAGE_FILE_NAME }} - ${{ matrix.platform }} - aab | ||||
|         compression-level: 0 | ||||
|         path: | | ||||
|           ${{ env.ANDROID_AAB_PATH }} | ||||
|  | ||||
|     - name: Upload debug symbols | ||||
|       if: ${{ matrix.platform == 'msvc' }} | ||||
|       if: ${{ startsWith(matrix.platform, 'msvc') }} | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: ${{ env.VCMI_PACKAGE_FILE_NAME }} - ${{ matrix.platform }} - symbols | ||||
|         compression-level: 9 | ||||
|         path: | | ||||
|             ${{github.workspace}}/**/*.pdb | ||||
|  | ||||
|     - name: Upload build | ||||
|       if: ${{ (matrix.pack == 1 || startsWith(matrix.platform, 'android')) && (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/beta' || github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/features/')) && matrix.platform != 'msvc' && matrix.platform != 'mingw-32' }} | ||||
|       if: ${{ (matrix.pack == 1 || startsWith(matrix.platform, 'android')) && (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/beta' || github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/features/')) && matrix.platform != 'msvc-x64' && matrix.platform != 'msvc-x86' && matrix.platform != 'mingw-32' }} | ||||
|       continue-on-error: true | ||||
|       run: | | ||||
|         if [ -z '${{ env.ANDROID_APK_PATH }}' ] ; then | ||||
|   | ||||
| @@ -1,10 +1,4 @@ | ||||
| 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 | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| DUMPBIN_DIR=$(vswhere -latest -find **/dumpbin.exe | head -n 1) | ||||
| dirname "$DUMPBIN_DIR" > $GITHUB_PATH | ||||
|   | ||||
							
								
								
									
										7
									
								
								CI/install_vcpkg_dependencies.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								CI/install_vcpkg_dependencies.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| RELEASE_TAG="v1.8" | ||||
| FILENAME="dependencies-$1" | ||||
| DOWNLOAD_URL="https://github.com/vcmi/vcmi-deps-windows/releases/download/$RELEASE_TAG/$FILENAME.txz" | ||||
|  | ||||
| curl -L "$DOWNLOAD_URL" | tar -xf - --xz | ||||
| @@ -154,6 +154,19 @@ | ||||
|  | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "windows-msvc-release-x86", | ||||
|             "displayName": "Windows x86 RelWithDebInfo", | ||||
|             "description": "VCMI RelWithDebInfo build", | ||||
|             "inherits": "default-release", | ||||
|             "generator": "Visual Studio 17 2022", | ||||
|             "cacheVariables": { | ||||
|                 "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake", | ||||
|                 "CMAKE_POLICY_DEFAULT_CMP0091": "NEW", | ||||
|                 "FORCE_BUNDLED_MINIZIP": "ON", | ||||
|                 "CMAKE_GENERATOR_PLATFORM": "WIN32" | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "windows-msvc-release-ccache", | ||||
|             "displayName": "Windows x64 RelWithDebInfo with ccache", | ||||
| @@ -382,6 +395,11 @@ | ||||
|             "configurePreset": "windows-msvc-release", | ||||
|             "inherits": "default-release" | ||||
|         }, | ||||
|         { | ||||
|             "name": "windows-msvc-release-x86", | ||||
|             "configurePreset": "windows-msvc-release-x86", | ||||
|             "inherits": "default-release" | ||||
|         }, | ||||
|         { | ||||
|             "name": "windows-msvc-release-ccache", | ||||
|             "configurePreset": "windows-msvc-release-ccache", | ||||
|   | ||||
							
								
								
									
										5
									
								
								Global.h
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								Global.h
									
									
									
									
									
								
							| @@ -154,7 +154,10 @@ static_assert(sizeof(bool) == 1, "Bool needs to be 1 byte in size."); | ||||
| #endif | ||||
| #define BOOST_THREAD_DONT_PROVIDE_THREAD_DESTRUCTOR_CALLS_TERMINATE_IF_JOINABLE 1 | ||||
| //need to link boost thread dynamically to avoid https://stackoverflow.com/questions/35978572/boost-thread-interupt-does-not-work-when-crossing-a-dll-boundary | ||||
| #define BOOST_THREAD_USE_DLL //for example VCAI::finish() may freeze on thread join after interrupt when linking this statically | ||||
| //for example VCAI::finish() may freeze on thread join after interrupt when linking this statically | ||||
| #ifndef BOOST_THREAD_USE_DLL | ||||
| #  define BOOST_THREAD_USE_DLL | ||||
| #endif | ||||
| #define BOOST_BIND_NO_PLACEHOLDERS | ||||
|  | ||||
| #if BOOST_VERSION >= 106600 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user