mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-22 17:49:43 +01:00
Windows CI build: Ditch vcpkg
This replaces vcpkg with simply downloading the pre-compiled dependencies from official upstream releases. The rationale is that vcpkg is sometimes really slow to update to the latest SDL version when it releases, and also that it requires the runner to compile SDL every single time it's instantiated, which is slow and wasteful. Instead, download the pre-compiled binaries of SDL from its release page on GitHub. This way, we don't have to compile it ourselves, and we aren't waiting on vcpkg whenever SDL releases a new version. And for good measure, cache it so we aren't downloading it _every_ time, which is even more efficient. The same can't be done for SDL_mixer, though, because it doesn't have a GitHub release page with pre-compiled binaries. Instead, we'll download them from libsdl.org, which is an infrastructure that takes more strain than if we used GitHub instead. But, it shouldn't matter anyways, because we cahe this too. And we are going to ditch SDL_mixer for FAudio in 2.4 anyways, so it's a moot point either way.
This commit is contained in:
parent
a43f5e1140
commit
23f91005d6
1 changed files with 37 additions and 5 deletions
42
.github/workflows/ci.yml
vendored
42
.github/workflows/ci.yml
vendored
|
@ -112,20 +112,52 @@ jobs:
|
|||
|
||||
runs-on: windows-latest
|
||||
|
||||
env:
|
||||
SDL_VERSION: 2.0.20
|
||||
SDL_MIXER_VERSION: 2.0.4
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
|
||||
- name: Install dependencies (Windows)
|
||||
- name: Cache SDL
|
||||
uses: actions/cache@v2
|
||||
env:
|
||||
cache-name: cache-sdl
|
||||
with:
|
||||
path: C:\SDL
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}
|
||||
|
||||
- name: Cache SDL_mixer
|
||||
uses: actions/cache@v2
|
||||
env:
|
||||
cache-name: cache-sdl-mixer
|
||||
with:
|
||||
path: C:\SDL_mixer
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}
|
||||
|
||||
- name: Download SDL if not cached
|
||||
run: |
|
||||
vcpkg install sdl2 sdl2-mixer
|
||||
if (-Not (Test-Path C:\SDL))
|
||||
{
|
||||
Invoke-WebRequest "https://github.com/libsdl-org/SDL/releases/download/release-$env:SDL_VERSION/SDL2-devel-$env:SDL_VERSION-VC.zip" -o C:\SDL.zip
|
||||
Expand-Archive C:\SDL.zip -DestinationPath C:\
|
||||
}
|
||||
|
||||
- name: Download SDL_mixer if not cached
|
||||
run: |
|
||||
if (-Not (Test-Path C:\SDL_mixer))
|
||||
{
|
||||
Invoke-WebRequest "https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-devel-$env:SDL_MIXER_VERSION-VC.zip" -o C:\SDL_mixer.zip
|
||||
Expand-Archive C:\SDL_mixer.zip -DestinationPath C:\
|
||||
}
|
||||
|
||||
- name: CMake configure (default version)
|
||||
run: |
|
||||
cd $env:SRC_DIR_PATH
|
||||
$env:LDFLAGS = "/LIBPATH:$env:VCPKG_INSTALLATION_ROOT\installed\x86-windows\lib "
|
||||
$env:LDFLAGS += "/LIBPATH:$env:VCPKG_INSTALLATION_ROOT\installed\x86-windows\lib\manual-link"
|
||||
$env:LDFLAGS = "/LIBPATH:C:\SDL2-$env:SDL_VERSION\lib\x86 "
|
||||
$env:LDFLAGS += "/LIBPATH:C:\SDL2_mixer-$env:SDL_MIXER_VERSION\lib\x86"
|
||||
cmake -G "Visual Studio 16 2019" -A Win32 `
|
||||
-DSDL2_INCLUDE_DIRS="$env:VCPKG_INSTALLATION_ROOT\installed\x86-windows\include\SDL2" `
|
||||
-DSDL2_INCLUDE_DIRS="C:\SDL2-$env:SDL_VERSION\include;C:\SDL2_mixer-$env:SDL_MIXER_VERSION\include" `
|
||||
-DSDL2_LIBRARIES="SDL2;SDL2main;SDL2_mixer" .
|
||||
- name: Build (default version)
|
||||
run: |
|
||||
|
|
Loading…
Reference in a new issue