mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-22 20:41:25 +00:00
141 lines
5.9 KiB
YAML
141 lines
5.9 KiB
YAML
version: 2.2.4.{branch}-{build}
|
|
os: MinGW
|
|
|
|
environment:
|
|
CC: ccache
|
|
CCACHE_CC: i686-w64-mingw32-gcc
|
|
CCACHE_CC_64: x86_64-w64-mingw32-gcc
|
|
WINDRES: windres
|
|
# c:\mingw-w64 i686 has gcc 6.3.0, so use c:\msys64 7.3.0 instead
|
|
MINGW_SDK: c:\msys64\mingw32
|
|
# c:\msys64 x86_64 has gcc 8.2.0, so use c:\mingw-w64 7.3.0 instead
|
|
MINGW_SDK_64: C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64
|
|
CFLAGS: -Wall -W -Werror -Wno-error=implicit-fallthrough -Wimplicit-fallthrough=3 -Wno-tautological-compare -Wno-error=suggest-attribute=noreturn
|
|
NASM_ZIP: nasm-2.12.01
|
|
NASM_URL: http://www.nasm.us/pub/nasm/releasebuilds/2.12.01/win64/nasm-2.12.01-win64.zip
|
|
UPX_ZIP: upx391w
|
|
UPX_URL: http://upx.sourceforge.net/download/upx391w.zip
|
|
CCACHE_EXE: ccache.exe
|
|
CCACHE_URL: http://alam.srb2.org/ccache.exe
|
|
CCACHE_COMPRESS: true
|
|
CCACHE_DIR: C:\Users\appveyor\.ccache
|
|
# Disable UPX by default. The user can override this in their Appveyor project settings
|
|
NOUPX: 1
|
|
##############################
|
|
# DEPLOYER VARIABLES
|
|
# DPL_ENABLED=1 builds installers for branch names starting with `deployer`.
|
|
# DPL_TAG_ENABLED=1 will also build installers for release tags. DPL_ENABLED=1 must also be set.
|
|
# Set these in the Appveyor project settings
|
|
##############################
|
|
DPL_ENABLED: 0
|
|
DPL_TAG_ENABLED: 0
|
|
DPL_INSTALLER_NAME: SRB2-v220
|
|
# Asset handling is barebones vs. Travis Deployer. We operate on 7z only.
|
|
# Include the README files and the OpenGL batch in the main and patch archives.
|
|
# The x86/x64 archives contain the DLL binaries.
|
|
ASSET_ARCHIVE_PATH: https://github.com/mazmazz/SRB2/releases/download/SRB2_assets_220/SRB2-v220-assets.7z
|
|
ASSET_ARCHIVE_PATCH_PATH: https://github.com/mazmazz/SRB2/releases/download/SRB2_assets_220/SRB2-v220-patch-assets.7z
|
|
ASSET_ARCHIVE_X86_PATH: https://github.com/mazmazz/SRB2/releases/download/SRB2_assets_220/SRB2-v220-x86-assets.7z
|
|
ASSET_ARCHIVE_X64_PATH: https://github.com/mazmazz/SRB2/releases/download/SRB2_assets_220/SRB2-v220-x64-assets.7z
|
|
ASSET_ARCHIVE_OPTIONAL_PATH: https://github.com/mazmazz/SRB2/releases/download/SRB2_assets_220/SRB2-v220-optional-assets.7z
|
|
# This is overridden to 1 for release tag builds
|
|
ASSET_FILES_OPTIONAL_GET: 0
|
|
# For patches, also include the X86/X64 DLLs.
|
|
PACKAGE_PATCH_DLL_GET: 0
|
|
# Delete all asset downloads so they can be redownloaded
|
|
ASSET_CLEAN: 0
|
|
|
|
cache:
|
|
- nasm-2.12.01.zip
|
|
- upx391w.zip
|
|
- ccache.exe
|
|
- C:\Users\appveyor\.ccache
|
|
- C:\Users\appveyor\srb2_cache
|
|
|
|
install:
|
|
- if [%CONFIGURATION%] == [SDL64] ( set "X86_64=1" )
|
|
- if [%CONFIGURATION%] == [SDL64] ( set "CONFIGURATION=SDL" )
|
|
- if [%X86_64%] == [1] ( set "MINGW_SDK=%MINGW_SDK_64%" )
|
|
- if [%X86_64%] == [1] ( set "CCACHE_CC=%CCACHE_CC_64%" )
|
|
|
|
- if not exist "%NASM_ZIP%.zip" appveyor DownloadFile "%NASM_URL%" -FileName "%NASM_ZIP%.zip"
|
|
- 7z x -y "%NASM_ZIP%.zip" -o%TMP% >null
|
|
- robocopy /S /xx /ns /nc /nfl /ndl /np /njh /njs "%TMP%\%NASM_ZIP%" "%MINGW_SDK%\bin" nasm.exe || exit 0
|
|
|
|
- if not exist "%UPX_ZIP%.zip" appveyor DownloadFile "%UPX_URL%" -FileName "%UPX_ZIP%.zip"
|
|
- 7z x -y "%UPX_ZIP%.zip" -o%TMP% >null
|
|
- robocopy /S /xx /ns /nc /nfl /ndl /np /njh /njs "%TMP%\%UPX_ZIP%" "%MINGW_SDK%\bin" upx.exe || exit 0
|
|
|
|
- if not exist "%CCACHE_EXE%" appveyor DownloadFile "%CCACHE_URL%" -FileName "%CCACHE_EXE%"
|
|
- ccache -M 99M
|
|
- xcopy /Y /V /I ccache.exe "%MINGW_SDK%\bin"
|
|
|
|
configuration:
|
|
- SDL
|
|
- SDL64
|
|
|
|
before_build:
|
|
- set "Path=%MINGW_SDK%\bin;%Path%"
|
|
- if [%X86_64%] == [1] ( x86_64-w64-mingw32-gcc --version ) else ( i686-w64-mingw32-gcc --version )
|
|
- mingw32-make --version
|
|
- if not [%X86_64%] == [1] ( nasm -v )
|
|
- if not [%NOUPX%] == [1] ( upx -V )
|
|
- ccache -V
|
|
- ccache -s
|
|
- if [%NOUPX%] == [1] ( set "NOUPX=NOUPX=1" ) else ( set "NOUPX=" )
|
|
- if defined [%APPVEYOR_PULL_REQUEST_HEAD_COMMIT%] ( set "COMMIT=%APPVEYOR_PULL_REQUEST_HEAD_COMMIT%" ) else ( set "COMMIT=%APPVEYOR_REPO_COMMIT%" )
|
|
- cmd: git rev-parse --short %COMMIT%>%TMP%/gitshort.txt
|
|
- cmd: set /P GITSHORT=<%TMP%/gitshort.txt
|
|
# for pull requests, take the owner's name only, if this isn't the same repo of course
|
|
- set "REPO=%APPVEYOR_REPO_BRANCH%"
|
|
- if not [%APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME%] == [] ( if not [%APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME%] == [%APPVEYOR_REPO_NAME%] ( for /f "delims=/" %%a in ("%APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME%") do set "REPO=%%a-%APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH%" ) )
|
|
- set "EXENAME=EXENAME=srb2win-%REPO%-%GITSHORT%.exe"
|
|
- set "SRB2_MFLAGS=-C src WARNINGMODE=1 CCACHE=1 NOOBJDUMP=1 %NOUPX% %EXENAME%"
|
|
- if [%X86_64%] == [1] ( set "MINGW_FLAGS=MINGW64=1 X86_64=1 GCC81=1" ) else ( set "MINGW_FLAGS=MINGW=1 GCC91=1" )
|
|
- set "SRB2_MFLAGS=%SRB2_MFLAGS% %MINGW_FLAGS% %CONFIGURATION%=1"
|
|
|
|
build_script:
|
|
- cmd: mingw32-make.exe %SRB2_MFLAGS% clean
|
|
- cmd: mingw32-make.exe %SRB2_MFLAGS% ERRORMODE=1 -k
|
|
|
|
after_build:
|
|
- if [%X86_64%] == [1] (
|
|
set "BUILD_PATH=bin\Mingw64\Release"
|
|
) else (
|
|
set "BUILD_PATH=bin\Mingw\Release"
|
|
)
|
|
- if [%X86_64%] == [1] ( set "CONFIGURATION=%CONFIGURATION%64" )
|
|
- ccache -s
|
|
- set BUILD_ARCHIVE=%REPO%-%GITSHORT%-%CONFIGURATION%.7z
|
|
- set BUILDSARCHIVE=%REPO%-%CONFIGURATION%.7z
|
|
- cmd: 7z a %BUILD_ARCHIVE% %BUILD_PATH% -xr!.gitignore
|
|
- appveyor PushArtifact %BUILD_ARCHIVE%
|
|
- cmd: copy %BUILD_ARCHIVE% %BUILDSARCHIVE%
|
|
- appveyor PushArtifact %BUILDSARCHIVE%
|
|
##############################
|
|
# DEPLOYER SCRIPT
|
|
##############################
|
|
- if [%DPL_ENABLED%] == [1] ( call "deployer\appveyor\deployer.bat" )
|
|
|
|
test: off
|
|
|
|
#deploy:
|
|
# - provider: FTP
|
|
# protocol: ftps
|
|
# host:
|
|
# secure: NsLJEPIBvmwCOj8Tg8RoRQ==
|
|
# username:
|
|
# secure: ejxi5mvk7oLYu7QtbYojajEPigMy0mokaKhuEVuDZcA=
|
|
# password:
|
|
# secure: Hbn6Uy3lT0YZ88yFJ3aW4w==
|
|
# folder: appveyor
|
|
# application:
|
|
# active_mode: false
|
|
# on:
|
|
# branch: master
|
|
# appveyor_repo_tag: true
|
|
|
|
|
|
on_finish:
|
|
#- cmd: echo xfreerdp /u:appveyor /cert-ignore +clipboard /v:<ip>:<port>
|
|
#- ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|