forked from Mirrorlandia_minetest/minetest
74 lines
2.0 KiB
YAML
74 lines
2.0 KiB
YAML
name: macos
|
|
|
|
# build on c/cpp changes or workflow changes
|
|
on:
|
|
push:
|
|
paths:
|
|
- 'lib/**.[ch]'
|
|
- 'lib/**.cpp'
|
|
- 'src/**.[ch]'
|
|
- 'src/**.cpp'
|
|
- '**/CMakeLists.txt'
|
|
- 'cmake/Modules/**'
|
|
- '.github/workflows/macos.yml'
|
|
pull_request:
|
|
paths:
|
|
- 'lib/**.[ch]'
|
|
- 'lib/**.cpp'
|
|
- 'src/**.[ch]'
|
|
- 'src/**.cpp'
|
|
- '**/CMakeLists.txt'
|
|
- 'cmake/Modules/**'
|
|
- '.github/workflows/macos.yml'
|
|
|
|
env:
|
|
IRRLICHT_TAG: 1.9.0mt6
|
|
MINETEST_GAME_REPO: https://github.com/minetest/minetest_game.git
|
|
MINETEST_GAME_BRANCH: master
|
|
MINETEST_GAME_NAME: minetest_game
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: macos-10.15
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Install deps
|
|
run: |
|
|
pkgs=(cmake freetype gettext gmp hiredis jpeg jsoncpp leveldb libogg libpng libvorbis luajit zstd)
|
|
brew update
|
|
brew install ${pkgs[@]}
|
|
brew unlink $(brew ls --formula)
|
|
brew link ${pkgs[@]}
|
|
|
|
- name: Build
|
|
run: |
|
|
git clone -b $MINETEST_GAME_BRANCH $MINETEST_GAME_REPO games/$MINETEST_GAME_NAME
|
|
rm -rvf games/$MINETEST_GAME_NAME/.git
|
|
git clone https://github.com/minetest/irrlicht -b $IRRLICHT_TAG lib/irrlichtmt
|
|
mkdir build
|
|
cd build
|
|
cmake .. \
|
|
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 \
|
|
-DCMAKE_FIND_FRAMEWORK=LAST \
|
|
-DCMAKE_INSTALL_PREFIX=../build/macos/ \
|
|
-DRUN_IN_PLACE=FALSE \
|
|
-DENABLE_FREETYPE=TRUE -DENABLE_GETTEXT=TRUE
|
|
make -j2
|
|
make install
|
|
|
|
- name: Test
|
|
run: |
|
|
./build/macos/minetest.app/Contents/MacOS/minetest --run-unittests
|
|
|
|
# Zipping the built .app preserves permissions on the contained files,
|
|
# which the GitHub artifact pipeline would otherwise strip away.
|
|
- name: CPack
|
|
run: |
|
|
cd build
|
|
cpack -G ZIP -B macos
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: minetest-macos
|
|
path: ./build/macos/*.zip
|