Vendor the Shockolate engine and build it via a Docker image with every
build / build (push) Failing after 5s
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.
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user