mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	
						commit
						c053269017
					
				@ -1,39 +0,0 @@
 | 
				
			|||||||
# Set-up Visual Studio Command Prompt environment for PowerShell
 | 
					 | 
				
			||||||
pushd "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\"
 | 
					 | 
				
			||||||
cmd /c "VsDevCmd.bat -arch=x64 & set" | foreach {
 | 
					 | 
				
			||||||
    if ($_ -match "=") {
 | 
					 | 
				
			||||||
        $v = $_.split("="); Set-Item -Force -Path "ENV:\$($v[0])" -Value "$($v[1])"
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
popd
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function Which ($search_path, $name) {
 | 
					 | 
				
			||||||
    ($search_path).Split(";") | Get-ChildItem -Filter $name | Select -First 1 -Exp FullName
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function GetDeps ($search_path, $binary) {
 | 
					 | 
				
			||||||
    ((dumpbin /dependents $binary).Where({ $_ -match "dependencies:"}, "SkipUntil") | Select-String "[^ ]*\.dll").Matches | foreach {
 | 
					 | 
				
			||||||
        Which $search_path $_.Value
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function RecursivelyGetDeps ($search_path, $binary) {
 | 
					 | 
				
			||||||
    $final_deps = @()
 | 
					 | 
				
			||||||
    $deps_to_process = GetDeps $search_path $binary
 | 
					 | 
				
			||||||
    while ($deps_to_process.Count -gt 0) {
 | 
					 | 
				
			||||||
        $current, $deps_to_process = $deps_to_process
 | 
					 | 
				
			||||||
        if ($final_deps -contains $current) { continue }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Is this a system dll file?
 | 
					 | 
				
			||||||
        # We use the same algorithm that cmake uses to determine this.
 | 
					 | 
				
			||||||
        if ($current -match "$([regex]::Escape($env:SystemRoot))\\sys") { continue }
 | 
					 | 
				
			||||||
        if ($current -match "$([regex]::Escape($env:WinDir))\\sys") { continue }
 | 
					 | 
				
			||||||
        if ($current -match "\\msvc[^\\]+dll") { continue }
 | 
					 | 
				
			||||||
        if ($current -match "\\api-ms-win-[^\\]+dll") { continue }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $final_deps += $current
 | 
					 | 
				
			||||||
        $new_deps = GetDeps $search_path $current
 | 
					 | 
				
			||||||
        $deps_to_process += ($new_deps | ?{-not ($final_deps -contains $_)})
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return $final_deps
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										178
									
								
								appveyor.yml
									
									
									
									
									
								
							
							
						
						
									
										178
									
								
								appveyor.yml
									
									
									
									
									
								
							@ -1,178 +0,0 @@
 | 
				
			|||||||
# shallow clone
 | 
					 | 
				
			||||||
clone_depth: 10
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cache:
 | 
					 | 
				
			||||||
  - C:\ProgramData\chocolatey\bin -> appveyor.yml
 | 
					 | 
				
			||||||
  - C:\ProgramData\chocolatey\lib -> appveyor.yml
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
os: Visual Studio 2017
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
environment:
 | 
					 | 
				
			||||||
  # Tell msys2 to add mingw64 to the path
 | 
					 | 
				
			||||||
  MSYSTEM: MINGW64
 | 
					 | 
				
			||||||
  # Tell msys2 to inherit the current directory when starting the shell
 | 
					 | 
				
			||||||
  CHERE_INVOKING: 1
 | 
					 | 
				
			||||||
  matrix:
 | 
					 | 
				
			||||||
    - BUILD_TYPE: msvc
 | 
					 | 
				
			||||||
    - BUILD_TYPE: mingw
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
platform:
 | 
					 | 
				
			||||||
  - x64
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
configuration:
 | 
					 | 
				
			||||||
  - Release
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
install:
 | 
					 | 
				
			||||||
  - git submodule update --init --recursive
 | 
					 | 
				
			||||||
  - ps: |
 | 
					 | 
				
			||||||
        if ($env:BUILD_TYPE -eq 'mingw') {
 | 
					 | 
				
			||||||
          $dependencies = "mingw64/mingw-w64-x86_64-cmake",
 | 
					 | 
				
			||||||
                          "mingw64/mingw-w64-x86_64-qt5",
 | 
					 | 
				
			||||||
                          "mingw64/mingw-w64-x86_64-SDL2"
 | 
					 | 
				
			||||||
          # redirect err to null to prevent warnings from becoming errors
 | 
					 | 
				
			||||||
          # workaround to prevent pacman from failing due to cyclical dependencies
 | 
					 | 
				
			||||||
          C:\msys64\usr\bin\bash -lc "pacman --noconfirm -S mingw64/mingw-w64-x86_64-freetype mingw64/mingw-w64-x86_64-fontconfig" 2> $null
 | 
					 | 
				
			||||||
          C:\msys64\usr\bin\bash -lc "pacman --noconfirm -S $dependencies" 2> $null
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
before_build:
 | 
					 | 
				
			||||||
  - mkdir %BUILD_TYPE%_build
 | 
					 | 
				
			||||||
  - cd %BUILD_TYPE%_build
 | 
					 | 
				
			||||||
  - ps: |
 | 
					 | 
				
			||||||
        $COMPAT = if ($env:ENABLE_COMPATIBILITY_REPORTING -eq $null) {0} else {$env:ENABLE_COMPATIBILITY_REPORTING}
 | 
					 | 
				
			||||||
        if ($env:BUILD_TYPE -eq 'msvc') {
 | 
					 | 
				
			||||||
          # redirect stderr and change the exit code to prevent powershell from cancelling the build if cmake prints a warning
 | 
					 | 
				
			||||||
          cmd /C 'cmake -G "Visual Studio 15 2017 Win64" -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_BUNDLED_UNICORN=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DUSE_DISCORD_PRESENCE=ON .. 2>&1 && exit 0'
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
          C:\msys64\usr\bin\bash.exe -lc "cmake -G 'MSYS Makefiles' -DYUZU_BUILD_UNICORN=1 -DCMAKE_BUILD_TYPE=Release -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DUSE_DISCORD_PRESENCE=ON .. 2>&1"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
  - cd ..
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
build_script:
 | 
					 | 
				
			||||||
  - ps: |
 | 
					 | 
				
			||||||
        if ($env:BUILD_TYPE -eq 'msvc') {
 | 
					 | 
				
			||||||
          # https://www.appveyor.com/docs/build-phase
 | 
					 | 
				
			||||||
          msbuild msvc_build/yuzu.sln /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
          C:\msys64\usr\bin\bash.exe -lc 'mingw32-make -C mingw_build/ 2>&1'
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
after_build:
 | 
					 | 
				
			||||||
  - ps: |
 | 
					 | 
				
			||||||
        $GITDATE = $(git show -s --date=short --format='%ad') -replace "-",""
 | 
					 | 
				
			||||||
        $GITREV = $(git show -s --format='%h')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Find out which kind of release we are producing by tag name
 | 
					 | 
				
			||||||
        if ($env:APPVEYOR_REPO_TAG_NAME) {
 | 
					 | 
				
			||||||
          $RELEASE_DIST, $RELEASE_VERSION = $env:APPVEYOR_REPO_TAG_NAME.split('-')
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
          # There is no repo tag - make assumptions
 | 
					 | 
				
			||||||
          $RELEASE_DIST = "head"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if ($env:BUILD_TYPE -eq 'msvc') {
 | 
					 | 
				
			||||||
          # Where are these spaces coming from? Regardless, let's remove them
 | 
					 | 
				
			||||||
          $MSVC_BUILD_ZIP = "yuzu-windows-msvc-$GITDATE-$GITREV.zip" -replace " ", ""
 | 
					 | 
				
			||||||
          $MSVC_BUILD_PDB = "yuzu-windows-msvc-$GITDATE-$GITREV-debugsymbols.zip" -replace " ", ""
 | 
					 | 
				
			||||||
          $MSVC_SEVENZIP = "yuzu-windows-msvc-$GITDATE-$GITREV.7z" -replace " ", ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          # set the build names as env vars so the artifacts can upload them
 | 
					 | 
				
			||||||
          $env:BUILD_ZIP = $MSVC_BUILD_ZIP
 | 
					 | 
				
			||||||
          $env:BUILD_SYMBOLS = $MSVC_BUILD_PDB
 | 
					 | 
				
			||||||
          $env:BUILD_UPDATE = $MSVC_SEVENZIP
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          $BUILD_DIR = ".\msvc_build\bin\Release"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          # Make a debug symbol upload
 | 
					 | 
				
			||||||
          mkdir pdb
 | 
					 | 
				
			||||||
          Get-ChildItem "$BUILD_DIR\" -Recurse -Filter "*.pdb" | Copy-Item -destination .\pdb
 | 
					 | 
				
			||||||
          7z a -tzip $MSVC_BUILD_PDB .\pdb\*.pdb
 | 
					 | 
				
			||||||
          rm "$BUILD_DIR\*.pdb"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          mkdir $RELEASE_DIST
 | 
					 | 
				
			||||||
          # get rid of extra exes by copying everything over, then deleting all the exes, then copying just the exes we want
 | 
					 | 
				
			||||||
          Copy-Item "$BUILD_DIR\*" -Destination $RELEASE_DIST -Recurse
 | 
					 | 
				
			||||||
          rm "$RELEASE_DIST\*.exe"
 | 
					 | 
				
			||||||
          Get-ChildItem "$BUILD_DIR" -Recurse -Filter "yuzu*.exe" | Copy-Item -destination $RELEASE_DIST
 | 
					 | 
				
			||||||
          Get-ChildItem "$BUILD_DIR" -Recurse -Filter "QtWebEngineProcess*.exe" | Copy-Item -destination $RELEASE_DIST
 | 
					 | 
				
			||||||
          Copy-Item .\license.txt -Destination $RELEASE_DIST
 | 
					 | 
				
			||||||
          Copy-Item .\README.md -Destination $RELEASE_DIST
 | 
					 | 
				
			||||||
          7z a -tzip $MSVC_BUILD_ZIP $RELEASE_DIST\*
 | 
					 | 
				
			||||||
          7z a $MSVC_SEVENZIP $RELEASE_DIST
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
          $MINGW_BUILD_ZIP = "yuzu-windows-mingw-$GITDATE-$GITREV.zip" -replace " ", ""
 | 
					 | 
				
			||||||
          $MINGW_SEVENZIP = "yuzu-windows-mingw-$GITDATE-$GITREV.7z" -replace " ", ""
 | 
					 | 
				
			||||||
          # not going to bother adding separate debug symbols for mingw, so just upload a README for it
 | 
					 | 
				
			||||||
          # if someone wants to add them, change mingw to compile with -g and use objdump and strip to separate the symbols from the binary
 | 
					 | 
				
			||||||
          $MINGW_NO_DEBUG_SYMBOLS = "README_No_Debug_Symbols.txt"
 | 
					 | 
				
			||||||
          Set-Content -Path $MINGW_NO_DEBUG_SYMBOLS -Value "This is a workaround for Appveyor since msvc has debug symbols but mingw doesnt" -Force
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          # store the build information in env vars so we can use them as artifacts
 | 
					 | 
				
			||||||
          $env:BUILD_ZIP = $MINGW_BUILD_ZIP
 | 
					 | 
				
			||||||
          $env:BUILD_SYMBOLS = $MINGW_NO_DEBUG_SYMBOLS
 | 
					 | 
				
			||||||
          $env:BUILD_UPDATE = $MINGW_SEVENZIP
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          $CMAKE_SOURCE_DIR = "$env:APPVEYOR_BUILD_FOLDER"
 | 
					 | 
				
			||||||
          $CMAKE_BINARY_DIR = "$CMAKE_SOURCE_DIR/mingw_build/bin"
 | 
					 | 
				
			||||||
          $RELEASE_DIST = $RELEASE_DIST + "-mingw"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          mkdir $RELEASE_DIST
 | 
					 | 
				
			||||||
          mkdir $RELEASE_DIST/platforms
 | 
					 | 
				
			||||||
          mkdir $RELEASE_DIST/styles
 | 
					 | 
				
			||||||
          mkdir $RELEASE_DIST/imageformats
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          # copy the compiled binaries and other release files to the release folder
 | 
					 | 
				
			||||||
          Get-ChildItem "$CMAKE_BINARY_DIR" -Filter "yuzu*.exe" | Copy-Item -destination $RELEASE_DIST
 | 
					 | 
				
			||||||
          Copy-Item -path "$CMAKE_SOURCE_DIR/license.txt" -destination $RELEASE_DIST
 | 
					 | 
				
			||||||
          Copy-Item -path "$CMAKE_SOURCE_DIR/README.md" -destination $RELEASE_DIST
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          # copy the qt windows plugin dll to platforms
 | 
					 | 
				
			||||||
          Copy-Item -path "C:/msys64/mingw64/share/qt5/plugins/platforms/qwindows.dll" -force -destination "$RELEASE_DIST/platforms"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          # copy the qt windows vista style dll to platforms
 | 
					 | 
				
			||||||
          Copy-Item -path "C:/msys64/mingw64/share/qt5/plugins/styles/qwindowsvistastyle.dll" -force -destination "$RELEASE_DIST/styles"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          # copy the qt jpeg imageformat dll to platforms
 | 
					 | 
				
			||||||
          Copy-Item -path "C:/msys64/mingw64/share/qt5/plugins/imageformats/qjpeg.dll" -force -destination "$RELEASE_DIST/imageformats"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          # copy all the dll dependencies to the release folder
 | 
					 | 
				
			||||||
          . "./.appveyor/UtilityFunctions.ps1"
 | 
					 | 
				
			||||||
          $DLLSearchPath = "C:\msys64\mingw64\bin;$env:PATH"
 | 
					 | 
				
			||||||
          $MingwDLLs = RecursivelyGetDeps $DLLSearchPath "$RELEASE_DIST\yuzu.exe"
 | 
					 | 
				
			||||||
          $MingwDLLs += RecursivelyGetDeps $DLLSearchPath  "$RELEASE_DIST\yuzu_cmd.exe"
 | 
					 | 
				
			||||||
          $MingwDLLs += RecursivelyGetDeps $DLLSearchPath  "$RELEASE_DIST\imageformats\qjpeg.dll"
 | 
					 | 
				
			||||||
          Write-Host "Detected the following dependencies:"
 | 
					 | 
				
			||||||
          Write-Host $MingwDLLs
 | 
					 | 
				
			||||||
          foreach ($file in $MingwDLLs) {
 | 
					 | 
				
			||||||
            Copy-Item -path "$file" -force -destination "$RELEASE_DIST"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          7z a -tzip $MINGW_BUILD_ZIP $RELEASE_DIST\*
 | 
					 | 
				
			||||||
          7z a $MINGW_SEVENZIP $RELEASE_DIST
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
test_script:
 | 
					 | 
				
			||||||
  - cd %BUILD_TYPE%_build
 | 
					 | 
				
			||||||
  - ps: |
 | 
					 | 
				
			||||||
        if ($env:BUILD_TYPE -eq 'msvc') {
 | 
					 | 
				
			||||||
          ctest -VV -C Release
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
          C:\msys64\usr\bin\bash.exe -lc "ctest -VV -C Release"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
  - cd ..
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
artifacts:
 | 
					 | 
				
			||||||
  - path: $(BUILD_ZIP)
 | 
					 | 
				
			||||||
    name: build
 | 
					 | 
				
			||||||
    type: zip
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
deploy:
 | 
					 | 
				
			||||||
  provider: GitHub
 | 
					 | 
				
			||||||
  release: $(appveyor_repo_tag_name)
 | 
					 | 
				
			||||||
  auth_token:
 | 
					 | 
				
			||||||
    secure: QqePPnXbkzmXct5c8hZ2X5AbsthbI6cS1Sr+VBzcD8oUOIjfWJJKXVAQGUbQAbb0
 | 
					 | 
				
			||||||
  artifact: update,build
 | 
					 | 
				
			||||||
  draft: false
 | 
					 | 
				
			||||||
  prerelease: false
 | 
					 | 
				
			||||||
  on:
 | 
					 | 
				
			||||||
    appveyor_repo_tag: true
 | 
					 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user