a5ec8db5f7
build / build (push) Failing after 5s
dependency (SDL2, SDL2_mixer, fluidsynth-lite, a MIDI soundfont) prebuilt, so compiling the engine needs no network access - just the image and the engine source. Add res/assets/extract_assets.sh to pull the game's data files out of a purchased GOG installer, and a Makefile that assembles a runnable dist/ from the two. Also add `make package`, which builds a redistributable tarball that omits the proprietary game assets (shipping res/GET_ASSETS.txt instead) plus license information for both the MIT tooling and the GPLv3 engine, and a Gitea Actions workflow that builds and publishes it to dl.ladkau.de on every push.
95 lines
3.0 KiB
YAML
95 lines
3.0 KiB
YAML
# Shockolate AppVeyor configuration
|
|
# YAML format reference: https://www.appveyor.com/docs/appveyor-yml/
|
|
|
|
# This determines the disk image AppVeyor uses while building
|
|
# Despite its name, this image actually contains all sorts of non-VC goodies
|
|
# See https://www.appveyor.com/docs/build-environment/ for all the details
|
|
image: Visual Studio 2015
|
|
|
|
# Tell build_windows.sh that we're building for AppVeyor
|
|
environment:
|
|
APPVEYOR: TRUE
|
|
|
|
platform:
|
|
- x64
|
|
- x86
|
|
|
|
# Avoid rebuilding external dependencies (ie. SDL and SDL_mixer)
|
|
# Uncache build_ext if external deps change
|
|
cache:
|
|
- res/music.sf2
|
|
- build_ext
|
|
|
|
# Set up environment variable values for 32 and 64 bit builds
|
|
|
|
for:
|
|
-
|
|
matrix:
|
|
only:
|
|
- platform: x86
|
|
before_build:
|
|
- set BUILD_SCRIPT=build_win32.sh
|
|
- set ARTIFACT=systemshock-x86.zip
|
|
- set MINGW_PATH=C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin\
|
|
- copy CMakeLists.32bit.txt CMakeLists.txt
|
|
-
|
|
matrix:
|
|
only:
|
|
- platform: x64
|
|
before_build:
|
|
- set BUILD_SCRIPT=build_win64.sh
|
|
- set ARTIFACT=systemshock-x64.zip
|
|
- set MINGW_PATH=C:\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev0\mingw64\bin\
|
|
|
|
# Actual build script..
|
|
# Step 1: Git has to reside in a path without spaces because the SDL build script is weird like that.
|
|
# So we create a symlink to the real Git, remove it from PATH and add our own.
|
|
# Step 2: We need to use our own make.exe to build stuff, so we add that
|
|
# Step 3: Do the actual building
|
|
|
|
build_script:
|
|
- mklink /D c:\git "C:\Program Files\Git"
|
|
- set PATH=%PATH:C:\Program Files (x86)\Git\bin;=%
|
|
- set PATH=c:\git\usr\bin;%PATH%;%MINGW_PATH%
|
|
- copy windows\make.exe \git\usr\bin
|
|
- set CMAKE_MAKE_PROGRAM=c:\git\usr\bin\make.exe
|
|
- sh %BUILD_SCRIPT%
|
|
- build.bat
|
|
|
|
|
|
# For now, we don't have any automatic tests to run
|
|
test: off
|
|
|
|
# Once building is done, we gather all the necessary DLL files and build our ZIP file.
|
|
after_build:
|
|
- copy %MINGW_PATH%\libgcc*.dll .
|
|
- copy %MINGW_PATH%\libstd*.dll .
|
|
- copy %MINGW_PATH%\libwinpthread-1.dll .
|
|
- copy build_ext\built_sdl\bin\SDL*.dll .
|
|
- copy build_ext\built_sdl_mixer\bin\SDL*.dll .
|
|
- copy build_ext\built_glew\lib\glew32.dll .
|
|
- copy build_ext\fluidsynth-lite\src\libfluidsynth.dll .
|
|
- 7z a %ARTIFACT% systemshock.exe *.dll shaders/ res/
|
|
|
|
artifacts:
|
|
- path: systemshock-x86.zip
|
|
name: Shockolate (32bit)
|
|
- path: systemshock-x64.zip
|
|
name: Shockolate (64bit)
|
|
|
|
version: '0.5.{build}'
|
|
|
|
# Finally, we deploy the ZIP file as a GitHub release
|
|
# FIXME: How do we want to be building releases? Seems like this would be better as a manual process
|
|
# TODO: invent a better versioning scheme for the tag name
|
|
|
|
deploy:
|
|
- provider: GitHub
|
|
release: $(appveyor_repo_tag_name)
|
|
description: 'Latest release build of Shockolate'
|
|
artifact: systemshock-x86.zip, systemshock-x64.zip
|
|
auth_token:
|
|
secure: P1kIk8rRxKAYHqDrOWf0Zf5spfR+N86E0lO8VBu99vHtECJgPLn/Z6tBmL9cxPah
|
|
on:
|
|
APPVEYOR_REPO_TAG: true
|