123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- name: macos
- # build on c/cpp changes or workflow changes
- on:
- push:
- paths:
- - 'lib/**.[ch]'
- - 'lib/**.cpp'
- - 'src/**.[ch]'
- - 'src/**.cpp'
- - 'irr/**.[ch]'
- - 'irr/**.cpp'
- - 'irr/**.mm' # Objective-C(++)
- - '**/CMakeLists.txt'
- - 'cmake/Modules/**'
- - 'po/**.po'
- - '.github/workflows/macos.yml'
- pull_request:
- paths:
- - 'lib/**.[ch]'
- - 'lib/**.cpp'
- - 'src/**.[ch]'
- - 'src/**.cpp'
- - 'irr/**.[ch]'
- - 'irr/**.cpp'
- - 'irr/**.mm' # Objective-C(++)
- - '**/CMakeLists.txt'
- - 'cmake/Modules/**'
- - 'po/**.po'
- - '.github/workflows/macos.yml'
- jobs:
- build-intel-macos:
- # use lowest possible macOS running on x86_64 supported by brew to support more users
- runs-on: macos-13
- steps:
- - uses: actions/checkout@v4
- - name: Install deps
- run: |
- source ./util/ci/common.sh
- install_macos_deps
- - name: Build
- run: |
- 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_GETTEXT=TRUE \
- -DINSTALL_DEVTEST=TRUE
- cmake --build . -j$(sysctl -n hw.logicalcpu)
- make install
- - name: Test
- run: |
- ./build/macos/luanti.app/Contents/MacOS/luanti --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
- rm -rf macos
- cmake .. -DINSTALL_DEVTEST=FALSE
- cpack -G ZIP -B macos
- - uses: actions/upload-artifact@v4
- with:
- name: luanti-macos
- path: ./build/macos/*.zip
- build-arm-macos-xcode:
- runs-on: macos-14
- steps:
- - uses: actions/checkout@v4
- - name: Install deps
- run: |
- source ./util/ci/common.sh
- install_macos_deps
- # brew jsoncpp do not include libjsoncpp.a, and if installed header conflict caused build failure
- brew uninstall jsoncpp
- - name: Build with Cmake
- run: |
- mkdir build
- cd build
- cmake .. \
- -DCMAKE_OSX_DEPLOYMENT_TARGET=14 \
- -DCMAKE_FIND_FRAMEWORK=LAST \
- -DCMAKE_INSTALL_PREFIX=../build/macos/ \
- -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE \
- -DENABLE_SYSTEM_JSONCPP=OFF
- cmake --build . -j$(sysctl -n hw.logicalcpu)
- make install
- - name: Build and Archive with Xcode
- run: |
- mkdir build_xcode
- cd build_xcode
- ../util/ci/build_xcode.sh
- - name: Tests
- run: |
- mkdir -p "${HOME}/Library/Application Support/minetest/games/"
- ln -s "${PWD}/games/devtest" "${HOME}/Library/Application Support/minetest/games/"
- ./build/macos/luanti.app/Contents/MacOS/luanti --run-unittests
- ./build_xcode/luanti.xcarchive/Products/Applications/luanti.app/Contents/MacOS/luanti --run-unittests
- - name: Diff Resources
- run: |
- diff -rd ./build/macos/luanti.app/Contents/Resources ./build_xcode/build/Release/luanti.app/Contents/Resources || exit 1
- diff -rd ./build/macos/luanti.app/Contents/Resources ./build_xcode/luanti.xcarchive/Products/Applications/luanti.app/Contents/Resources || exit 1
|