Add MSVC binaries for Windows on releases (#6190)
* Improve directory creation in WindowsCopyFiles.cmake * Release msvc compiled binaries as an alternative to mingw releases * msvc: do not ship .pdb files * msvc: Copy necessary files to the release * windows-msvc: enable compatibility reporting translation was disabled because the bundled qt doesn't have the necessary component Co-authored-by: Michał Janiszewski <janisozaur@users.noreply.github.com>
This commit is contained in:
		| @@ -1,7 +1,18 @@ | ||||
| #!/bin/sh -ex | ||||
|  | ||||
| mkdir build && cd build | ||||
| cmake .. -DCMAKE_BUILD_TYPE=Release -G Ninja -DCMAKE_TOOLCHAIN_FILE="$(pwd)/../CMakeModules/MSVCCache.cmake" -DCITRA_USE_CCACHE=ON -DCITRA_USE_BUNDLED_QT=1 -DCITRA_USE_BUNDLED_SDL2=1 -DCITRA_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_MF=ON -DENABLE_FFMPEG_VIDEO_DUMPER=ON | ||||
| cmake .. \ | ||||
|     -DCMAKE_BUILD_TYPE=Release \ | ||||
|     -G Ninja \ | ||||
|     -DCMAKE_TOOLCHAIN_FILE="$(pwd)/../CMakeModules/MSVCCache.cmake" \ | ||||
|     -DCITRA_USE_CCACHE=ON \ | ||||
|     -DCITRA_USE_BUNDLED_QT=1 \ | ||||
|     -DENABLE_QT_TRANSLATION=OFF \ | ||||
|     -DCITRA_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \ | ||||
|     -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \ | ||||
|     -DUSE_DISCORD_PRESENCE=ON \ | ||||
|     -DENABLE_MF=ON \ | ||||
|     -DENABLE_FFMPEG_VIDEO_DUMPER=ON | ||||
|  | ||||
| ninja | ||||
| # show the caching efficiency | ||||
|   | ||||
							
								
								
									
										41
									
								
								.ci/windows-msvc/upload.ps1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								.ci/windows-msvc/upload.ps1
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | ||||
|  | ||||
| $GITDATE = $(git show -s --date=short --format='%ad') -replace "-", "" | ||||
| $GITREV = $(git show -s --format='%h') | ||||
|  | ||||
| # Find out what release we are building | ||||
| if ( $GIT_TAG_NAME ) { | ||||
|     $RELEASE_NAME = ${GIT_TAG_NAME}.split("-")[0] | ||||
|     $RELEASE_NAME = "${RELEASE_NAME}-msvc" | ||||
| } | ||||
| else { | ||||
|     $RELEASE_NAME = "head" | ||||
| } | ||||
|  | ||||
| $MSVC_BUILD_ZIP = "citra-windows-msvc-$GITDATE-$GITREV.zip" -replace " ", "" | ||||
| $MSVC_SEVENZIP = "citra-windows-msvc-$GITDATE-$GITREV.7z" -replace " ", "" | ||||
|  | ||||
| $BUILD_DIR = ".\build\bin\Release" | ||||
|  | ||||
| # Create artifact directories | ||||
| mkdir $RELEASE_NAME | ||||
| mkdir "artifacts" | ||||
|  | ||||
| echo "Starting to pack ${RELEASE_NAME}" | ||||
|  | ||||
| Copy-Item $BUILD_DIR\* -Destination $RELEASE_NAME -Recurse | ||||
| Remove-Item $RELEASE_NAME\tests.* -ErrorAction ignore | ||||
| Remove-Item $RELEASE_NAME\*.pdb -ErrorAction ignore | ||||
|  | ||||
| # Copy documentation | ||||
| Copy-Item license.txt -Destination $RELEASE_NAME | ||||
| Copy-Item README.md -Destination $RELEASE_NAME | ||||
|  | ||||
| # Copy cross-platform scripting support | ||||
| Copy-Item dist\scripting -Destination $RELEASE_NAME -Recurse | ||||
|  | ||||
| # Build the final release artifacts | ||||
| 7z a -tzip $MSVC_BUILD_ZIP $RELEASE_NAME\* | ||||
| 7z a $MSVC_SEVENZIP $RELEASE_NAME | ||||
|  | ||||
| Copy-Item $MSVC_BUILD_ZIP -Destination "artifacts" | ||||
| Copy-Item $MSVC_SEVENZIP -Destination "artifacts" | ||||
							
								
								
									
										12
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @@ -108,6 +108,9 @@ jobs: | ||||
|           key: ${{ runner.os }}-win-${{ github.sha }} | ||||
|           restore-keys: | | ||||
|             ${{ runner.os }}-win- | ||||
|       - name: Query tag name | ||||
|         uses: little-core-labs/get-git-tag@v3.0.2 | ||||
|         id: tagName | ||||
|       - name: Install dependencies | ||||
|         run: ./.ci/windows-msvc/deps.sh | ||||
|         shell: bash | ||||
| @@ -118,6 +121,13 @@ jobs: | ||||
|         shell: bash | ||||
|         env: | ||||
|           ENABLE_COMPATIBILITY_REPORTING: "ON" | ||||
|       - name: Pack | ||||
|         run: ./.ci/windows-msvc/upload.ps1 | ||||
|       - name: Upload | ||||
|         uses: actions/upload-artifact@v3 | ||||
|         with: | ||||
|           name: msvc | ||||
|           path: artifacts/ | ||||
|   android: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
| @@ -168,7 +178,7 @@ jobs: | ||||
|           TRANSIFEX_API_TOKEN: ${{ secrets.TRANSIFEX_API_TOKEN }} | ||||
|   release: | ||||
|     runs-on: ubuntu-latest | ||||
|     needs: [build, android, macos, source] | ||||
|     needs: [build, android, macos, source, windows] | ||||
|     if: ${{ startsWith(github.ref, 'refs/tags/') }} | ||||
|     steps: | ||||
|       - uses: actions/download-artifact@v3 | ||||
|   | ||||
| @@ -22,7 +22,7 @@ function(windows_copy_files TARGET SOURCE_DIR DEST_DIR) | ||||
|     # cmake adds an extra check for command success which doesn't work too well with robocopy | ||||
|     # so trick it into thinking the command was successful with the || cmd /c "exit /b 0" | ||||
|     add_custom_command(TARGET ${TARGET} POST_BUILD | ||||
|         COMMAND if not exist ${DEST_DIR} mkdir ${DEST_DIR} 2> nul | ||||
|         COMMAND ${CMAKE_COMMAND} -E make_directory ${DEST_DIR} | ||||
|         COMMAND robocopy ${SOURCE_DIR} ${DEST_DIR} ${ARGN} /NJH /NJS /NDL /NFL /NC /NS /NP || cmd /c "exit /b 0" | ||||
|     ) | ||||
| endfunction() | ||||
| endfunction() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user