fix: Fix CMake issues with MacOS #23
Workflow file for this run
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
# Build Github Action, to run a test build on all targets | |
# (Linux, Blit, MacOS, Visual Studio) when the project is checked in. | |
# | |
# Thanks in large part to the phenomenal examples of DaftFreak. | |
name: Build | |
on: | |
push: | |
pull_request: | |
release: | |
types: [created] | |
env: | |
BUILD_TYPE: Release | |
EM_VERSION: 2.0.18 # Emscripten version | |
EM_CACHE_FOLDER: 'emsdk-cache' # Cache for Emscripten libs | |
jobs: | |
build: | |
name: ${{matrix.name}} | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-20.04 | |
name: Linux | |
release-suffix: LIN64 | |
cmake-args: #-DSDL2_IMAGE_DIR=$GITHUB_WORKSPACE/main/SDL2 | |
apt-packages: libsdl2-dev libsdl2-image-dev python3-setuptools | |
can-fail: false | |
- os: ubuntu-20.04 | |
name: Emscripten | |
release-suffix: WEB | |
cmake-args: #-DSDL2_IMAGE_DIR=$GITHUB_WORKSPACE/main/SDL2 | |
cmake-prefix: emcmake | |
apt-packages: python3-setuptools | |
can-fail: true | |
- os: macos-latest | |
name: macOS | |
release-suffix: MACOS | |
cmake-args: #-DSDL2_IMAGE_DIR=$GITHUB_WORKSPACE/main/SDL2 | |
brew-packages: sdl2 sdl2_image | |
can-fail: true | |
- os: windows-latest | |
name: Visual Studio | |
release-suffix: WIN64 | |
cmake-args: #-DSDL2_DIR=$GITHUB_WORKSPACE/main/SDL2 -DSDL2_image_DIR=$GITHUB_WORKSPACE/main/SDL2 | |
can-fail: false | |
runs-on: ${{matrix.os}} | |
continue-on-error: ${{ matrix.can-fail }} | |
env: | |
RELEASE_FILE: ${{github.event.repository.name}}-${{github.event.release.tag_name}}-${{matrix.release-suffix}} | |
steps: | |
# Check out the main repo | |
- name: Checkout | |
uses: actions/checkout@v2 | |
with: | |
path: main | |
# Linux dependencies | |
#- name: Install Linux deps | |
# if: runner.os == 'Linux' | |
# run: | | |
# sudo apt update && sudo apt install ${{matrix.apt-packages}} | |
# pip3 install 32blit | |
# MacOS dependencies | |
#- name: Install macOS deps | |
# if: runner.os == 'macOS' | |
# run: | | |
# brew install ${{matrix.brew-packages}} | |
# python3 -m pip install 32blit | |
# Windows dependencies | |
#- name: Install Windows deps | |
# if: runner.os == 'Windows' | |
# shell: bash | |
# run: | | |
# python -m pip install 32blit | |
# Emscripten SDK setup | |
- name: Setup Emscripten cache | |
if: matrix.name == 'Emscripten' | |
id: cache-system-libraries | |
uses: actions/cache@v2 | |
with: | |
path: ${{env.EM_CACHE_FOLDER}} | |
key: ${{env.EM_VERSION}}-${{runner.os}} | |
- name: Setup Emscripten | |
if: matrix.name == 'Emscripten' | |
uses: mymindstorm/setup-emsdk@v7 | |
with: | |
version: ${{env.EM_VERSION}} | |
actions-cache-folder: ${{env.EM_CACHE_FOLDER}} | |
- name: Pre-build Emscripten ports | |
if: matrix.name == 'Emscripten' | |
run: embuilder.py build sdl2 sdl2-image-jpg | |
# Set up the cmake build environment | |
- name: Create Build Environment | |
run: cmake -E make_directory ${{runner.workspace}}/main/build | |
# Ask cmake to build the makefiles | |
- name: Configure CMake | |
shell: bash | |
working-directory: ${{runner.workspace}}/main/build | |
run: ${{matrix.cmake-prefix}} cmake $GITHUB_WORKSPACE/main -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCPACK_PACKAGE_FILE_NAME=${{env.RELEASE_FILE}} ${{matrix.cmake-args}} | |
# And then run the build itself | |
- name: Build | |
working-directory: ${{runner.workspace}}/main/build | |
shell: bash | |
run: | | |
cmake --build . --config $BUILD_TYPE -j 2 | |
# When it's a release, generate tar/zip files of the build | |
- name: Package Release | |
if: github.event_name == 'release' && matrix.release-suffix != '' | |
shell: bash | |
working-directory: ${{runner.workspace}}/main/build | |
run: | | |
cmake --build . --config $BUILD_TYPE --target package | |
# Push the tar file to the release | |
- name: Upload tar | |
if: github.event_name == 'release' && matrix.release-suffix != '' | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} | |
with: | |
asset_path: ${{runner.workspace}}/main/build/${{env.RELEASE_FILE}}.tar.gz | |
upload_url: ${{github.event.release.upload_url}} | |
asset_name: ${{env.RELEASE_FILE}}.tar.gz | |
asset_content_type: application/octet-stream | |
# Push the zip file to the release | |
- name: Upload zip | |
if: github.event_name == 'release' && matrix.release-suffix != '' | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} | |
with: | |
asset_path: ${{runner.workspace}}/main/build/${{env.RELEASE_FILE}}.zip | |
upload_url: ${{github.event.release.upload_url}} | |
asset_name: ${{env.RELEASE_FILE}}.zip | |
asset_content_type: application/zip |