mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-11-04 01:05:48 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			114 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
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
 |