CScriptSteam: Fixes from decomp #640
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
# branches-ignore: | |
# - main | |
paths-ignore: | |
- '*.json' | |
- '*.md' | |
- '*LICENSE' | |
pull_request: | |
env: | |
BUILDCACHE_VERSION: v0.27.3 | |
BUILDCACHE_ACCURACY: STRICT | |
BUILDCACHE_MAX_CACHE_SIZE: 1073741824 # 1GiB | |
jobs: | |
build-linux: | |
name: Build Linux (${{matrix.name}} x86_64) | |
runs-on: ubuntu-20.04 | |
env: | |
BUILDCACHE_DIR: ${{github.workspace}}/.buildcache | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: GCC | |
preset: gcc | |
- name: Clang | |
preset: clang | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Install dependencies | |
run: | | |
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | |
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | |
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | |
sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main" | |
sudo apt-get -y install ninja-build clang lld libcurl4-openssl-dev intel-oneapi-ipp-devel \ | |
zlib1g-dev libglu1-mesa-dev libdbus-1-dev libvulkan-dev libxi-dev libxrandr-dev libasound2-dev \ | |
libpulse-dev libudev-dev libpng-dev libncurses5-dev libx11-xcb-dev libfreetype-dev \ | |
libxinerama-dev libxcursor-dev python3-markupsafe libgtk-3-dev | |
# setup buildcache | |
curl -LSfs https://github.com/encounter/buildcache/releases/download/$BUILDCACHE_VERSION/buildcache-linux.tar.gz | tar xz -C "$RUNNER_WORKSPACE" | |
echo "$RUNNER_WORKSPACE"/buildcache/bin >> $GITHUB_PATH | |
# free up disk space | |
# https://github.com/actions/virtual-environments/issues/2840#issuecomment-790492173 | |
echo Before | |
df -h . | |
sudo apt-get clean | |
sudo rm -rf /usr/share/dotnet | |
sudo rm -rf /opt/ghc | |
sudo rm -rf /usr/local/share/boost | |
sudo rm -rf "$AGENT_TOOLSDIRECTORY" | |
echo After | |
df -h . | |
- name: Restore buildcache | |
uses: pat-s/always-upload-cache@v2 | |
with: | |
path: ${{env.BUILDCACHE_DIR}} | |
key: buildcache-${{runner.os}}-${{matrix.preset}}-${{github.sha}} | |
restore-keys: | | |
buildcache-${{runner.os}}-${{matrix.preset}}- | |
- name: Configure CMake | |
run: cmake --preset x-linux-ci-${{matrix.preset}} | |
- name: Build | |
run: cmake --build --preset x-linux-ci-${{matrix.preset}} | |
- name: Print buildcache stats | |
run: buildcache -s | |
- name: Generate AppImage | |
run: ci/build-appimage.sh | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: metaforce-${{env.METAFORCE_VERSION}}-linux-${{matrix.preset}}-x86_64 | |
path: | | |
build/install/Metaforce-*.AppImage | |
build/install/debug.tar.* | |
build-macos: | |
name: Build macOS (AppleClang universal) | |
runs-on: macos-11 | |
env: | |
IPP_VERSION: 2021.2.0.192 | |
BUILDCACHE_DIR: ${{github.workspace}}/.buildcache | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Install dependencies | |
run: | | |
brew update | |
brew upgrade --formula | |
brew install ninja graphicsmagick imagemagick | |
yarn global add create-dmg | |
pip3 install markupsafe | |
# setup buildcache | |
curl -LSfs https://github.com/encounter/buildcache/releases/download/$BUILDCACHE_VERSION/buildcache-macos.zip -o /tmp/buildcache-macos.zip | |
unzip /tmp/buildcache-macos.zip -d "$RUNNER_WORKSPACE" | |
echo "$RUNNER_WORKSPACE"/buildcache/bin >> $GITHUB_PATH | |
- name: Install Intel IPP | |
if: 'false' # not supported for universal build | |
run: | | |
NAME="m_ipp_oneapi_p_${IPP_VERSION}_offline" | |
curl -LSfs https://registrationcenter-download.intel.com/akdlm/irc_nas/17606/$NAME.dmg -o /tmp/$NAME.dmg | |
sudo hdiutil attach /tmp/$NAME.dmg -quiet | |
sudo /Volumes/$NAME/bootstrapper.app/Contents/MacOS/install.sh -c --action install --eula accept | |
sudo hdiutil detach /Volumes/$NAME -quiet | |
rm /tmp/$NAME.dmg | |
- name: Restore buildcache | |
uses: pat-s/always-upload-cache@v2 | |
with: | |
path: ${{env.BUILDCACHE_DIR}} | |
key: buildcache-${{runner.os}}-universal-${{github.sha}} | |
restore-keys: | | |
buildcache-${{runner.os}}-universal- | |
- name: Configure CMake | |
run: cmake --preset x-macos-ci | |
- name: Build | |
run: cmake --build --preset x-macos-ci | |
- name: Print buildcache stats | |
if: 'false' # temporarily disabled | |
run: buildcache -s | |
- name: Import signing certificate | |
uses: devbotsxyz/xcode-import-certificate@master | |
with: | |
certificate-data: ${{secrets.MACOS_CERTIFICATE_DATA}} | |
certificate-passphrase: ${{secrets.MACOS_CERTIFICATE_PASSWORD}} | |
keychain-password: ${{secrets.MACOS_KEYCHAIN_PASSWORD}} | |
- name: Deploy & codesign application | |
env: | |
ASC_USERNAME: ${{secrets.MACOS_ASC_USERNAME}} | |
ASC_PASSWORD: ${{secrets.MACOS_ASC_PASSWORD}} | |
ASC_TEAM_ID: ${{secrets.MACOS_ASC_TEAM_ID}} | |
CODESIGN_IDENT: ${{secrets.MACOS_CODESIGN_IDENT}} | |
run: ci/build-dmg.sh | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: metaforce-${{env.METAFORCE_VERSION}}-macos-appleclang-universal | |
path: | | |
build/install/Metaforce *.dmg | |
build/install/debug.tar.* | |
build-ios: | |
name: Build iOS (AppleClang arm64) | |
runs-on: macos-11 | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Install dependencies | |
run: | | |
brew update | |
brew upgrade --formula | |
brew install ninja | |
pip3 install markupsafe | |
- name: Configure CMake | |
run: cmake --preset ios-default | |
- name: Build | |
run: cmake --build --preset ios-default --target install | |
- name: Generate IPA | |
run: ci/build-ipa.sh | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: metaforce-${{env.METAFORCE_VERSION}}-ios-appleclang-arm64 | |
path: | | |
build/install/Metaforce.ipa | |
build/install/debug.tar.* | |
build-tvos: | |
name: Build tvOS (AppleClang arm64) | |
runs-on: macos-11 | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Install dependencies | |
run: | | |
brew update | |
brew upgrade --formula | |
brew install ninja | |
pip3 install markupsafe | |
- name: Configure CMake | |
run: cmake --preset tvos-default | |
- name: Build | |
run: cmake --build --preset tvos-default --target install | |
- name: Generate IPA | |
run: ci/build-ipa.sh | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: metaforce-${{env.METAFORCE_VERSION}}-tvos-appleclang-arm64 | |
path: | | |
build/install/Metaforce.ipa | |
build/install/debug.tar.* | |
build-windows: | |
name: Build Windows (${{matrix.name}} x86_64) | |
runs-on: windows-2019 | |
env: | |
Qt_VERSION: 5.15.2 | |
IPP_VERSION: 2021.2.0.210 | |
# C: has ~90GB available space at the moment | |
BUILDCACHE_DIR: C:\buildcache | |
BUILD_DIR: C:\build | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: MSVC | |
preset: msvc | |
#- name: Clang | |
# preset: clang | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Install vcpkg Qt | |
run: | | |
$TempDir = "$env:RUNNER_WORKSPACE\temp" | |
$Filename = "vcpkg-qt-$env:Qt_VERSION-full.7z" | |
New-Item -Path "$TempDir" -ItemType Directory -ea 0 | |
(New-Object Net.WebClient).DownloadFile("https://axiodl.com/files/$Filename", "$TempDir\$Filename") | |
7z x "-o$env:RUNNER_WORKSPACE" -aos "$TempDir\$Filename" | |
- name: Install Intel IPP | |
if: 'false' # takes >10min, not worth it | |
run: | | |
$TempDir = "$env:RUNNER_WORKSPACE\temp" | |
$Filename = "w_ipp_oneapi_p_${env:IPP_VERSION}_offline.exe" | |
New-Item -Path "$TempDir" -ItemType Directory -ea 0 | |
(New-Object Net.WebClient).DownloadFile("https://registrationcenter-download.intel.com/akdlm/irc_nas/17739/$Filename", "$TempDir\$Filename") | |
Start-Process "$TempDir\$Filename" -ArgumentList "--x --s --f $TempDir\ipp" -Wait | |
Start-Process "$TempDir\ipp\bootstrapper.exe" -ArgumentList "--eula accept -c --action install" -Wait | |
- name: Install dependencies | |
run: | | |
choco install ninja vulkan-sdk | |
pip install markupsafe | |
# set up buildcache | |
$TempDir = "$env:RUNNER_WORKSPACE\temp" | |
New-Item -Path "$TempDir" -ItemType Directory -ea 0 | |
(New-Object Net.WebClient).DownloadFile("https://github.com/encounter/buildcache/releases/download/$env:BUILDCACHE_VERSION/buildcache-windows.zip", "$TempDir\buildcache.zip") | |
Expand-Archive -LiteralPath "$TempDir\buildcache.zip" -DestinationPath "$TempDir" -Force | |
echo "$TempDir\buildcache\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
# check available disk space | |
Get-PSDrive | |
- name: Restore buildcache | |
uses: pat-s/always-upload-cache@v2 | |
with: | |
path: ${{env.BUILDCACHE_DIR}} | |
key: buildcache-${{runner.os}}-${{matrix.preset}}-${{github.sha}} | |
restore-keys: | | |
buildcache-${{runner.os}}-${{matrix.preset}}- | |
- name: Enable Visual Studio environment | |
uses: ilammy/msvc-dev-cmd@v1 | |
- name: Configure CMake | |
run: cmake --preset x-windows-ci-${{matrix.preset}} | |
- name: Build | |
run: cmake --build --preset x-windows-ci-${{matrix.preset}} | |
- name: Print buildcache stats | |
run: buildcache -s | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: metaforce-${{env.METAFORCE_VERSION}}-win32-${{matrix.preset}}-x86_64 | |
path: | | |
${{env.BUILD_DIR}}/install/*.exe | |
${{env.BUILD_DIR}}/install/debug.7z |