mirror of
https://github.com/citra-mirror/citra.git
synced 2024-08-20 10:23:23 +02:00
Separate options are now provided for FFmpeg AAC audio decoder and FFmpeg video dumper. This allows users to configure Citra with greater freedom. Also, previously for Linux builds, AAC decoder is accidentally enabled along with the dumper, which could potentially cause patent issues (?). This commit fixes it by only enabling video dumper.
174 lines
7.1 KiB
YAML
174 lines
7.1 KiB
YAML
# 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: mingw
|
|
- BUILD_TYPE: msvc
|
|
|
|
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-ffmpeg"
|
|
C:\msys64\usr\bin\bash -lc "pacman --noconfirm -U http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-SDL2-2.0.5-2-any.pkg.tar.xz"
|
|
C:\msys64\usr\bin\bash -lc "pacman --noconfirm -S $dependencies"
|
|
# (HACK) ignore errors
|
|
0
|
|
}
|
|
|
|
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" -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 .. 2>&1 && exit 0'
|
|
} else {
|
|
C:\msys64\usr\bin\bash.exe -lc "cmake -G 'MSYS Makefiles' -DCMAKE_BUILD_TYPE=Release -DENABLE_QT_TRANSLATION=ON -DCITRA_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_MF=ON -DENABLE_FFMPEG_VIDEO_DUMPER=ON .. 2>&1"
|
|
}
|
|
- cd ..
|
|
|
|
build_script:
|
|
- ps: |
|
|
if ($env:BUILD_TYPE -eq 'msvc') {
|
|
# https://www.appveyor.com/docs/build-phase
|
|
msbuild msvc_build/citra.sln /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
|
|
} else {
|
|
C:\msys64\usr\bin\bash.exe -lc 'mingw32-make -j4 -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 = "citra-windows-msvc-$GITDATE-$GITREV.zip" -replace " ", ""
|
|
$MSVC_BUILD_PDB = "citra-windows-msvc-$GITDATE-$GITREV-debugsymbols.zip" -replace " ", ""
|
|
$MSVC_SEVENZIP = "citra-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
|
|
|
|
mkdir $RELEASE_DIST
|
|
Copy-Item .\msvc_build\bin\release\* -Destination $RELEASE_DIST -Recurse
|
|
Copy-Item .\license.txt -Destination $RELEASE_DIST
|
|
Copy-Item .\README.md -Destination $RELEASE_DIST
|
|
|
|
# process PDBs
|
|
. "./.appveyor/ProcessPdb.ps1"
|
|
7z a -tzip $MSVC_BUILD_PDB $RELEASE_DIST\*.pdb
|
|
rm $RELEASE_DIST\*.pdb
|
|
|
|
7z a -tzip $MSVC_BUILD_ZIP $RELEASE_DIST\*
|
|
7z a $MSVC_SEVENZIP $RELEASE_DIST
|
|
} else {
|
|
$MINGW_BUILD_ZIP = "citra-windows-mingw-$GITDATE-$GITREV.zip" -replace " ", ""
|
|
$MINGW_BUILD_PDB = "citra-windows-mingw-$GITDATE-$GITREV-debugsymbols.zip" -replace " ", ""
|
|
$MINGW_SEVENZIP = "citra-windows-mingw-$GITDATE-$GITREV.7z" -replace " ", ""
|
|
|
|
# store the build information in env vars so we can use them as artifacts
|
|
$env:BUILD_ZIP = $MINGW_BUILD_ZIP
|
|
$env:BUILD_SYMBOLS = $MINGW_BUILD_PDB
|
|
$env:BUILD_UPDATE = $MINGW_SEVENZIP
|
|
|
|
$CMAKE_SOURCE_DIR = "$env:APPVEYOR_BUILD_FOLDER"
|
|
$CMAKE_BINARY_DIR = "$CMAKE_SOURCE_DIR/mingw_build"
|
|
$RELEASE_DIST = $RELEASE_DIST + "-mingw"
|
|
|
|
mkdir $RELEASE_DIST
|
|
mkdir $RELEASE_DIST/platforms
|
|
mkdir $RELEASE_DIST/mediaservice
|
|
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" -Recurse -Filter "citra*.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 mediaservice plugin dll
|
|
Copy-Item -path "C:/msys64/mingw64/share/qt5/plugins/mediaservice/dsengine.dll" -force -destination "$RELEASE_DIST/mediaservice"
|
|
|
|
# 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 imageformats plugin dlls to imageformats
|
|
Get-ChildItem "C:/msys64/mingw64/share/qt5/plugins/imageformats" -Exclude "*d.dll" | Copy-Item -force -destination "$RELEASE_DIST/imageformats"
|
|
|
|
# copy all the dll dependencies to the release folder
|
|
. "./.appveyor/FindDependencies.ps1"
|
|
$DLLSearchPath = "C:\msys64\mingw64\bin;$env:PATH"
|
|
$MingwDLLs = RecursivelyGetDeps $DLLSearchPath "$RELEASE_DIST\citra.exe"
|
|
$MingwDLLs += RecursivelyGetDeps $DLLSearchPath "$RELEASE_DIST\citra-qt.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"
|
|
}
|
|
|
|
# process PDBs
|
|
. "./.appveyor/ProcessPdb.ps1"
|
|
7z a -tzip $MINGW_BUILD_PDB $RELEASE_DIST\*.pdb
|
|
rm $RELEASE_DIST\*.pdb
|
|
|
|
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
|
|
- path: $(BUILD_SYMBOLS)
|
|
name: debugsymbols
|
|
- path: $(BUILD_UPDATE)
|
|
name: update
|
|
|
|
notifications:
|
|
- provider: Webhook
|
|
url: https://api.citra-emu.org/code/appveyor/notify
|