diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 8e54012..ba58f57 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -1,4 +1,4 @@ -name: Build and Test +name: Build and Bundle MacOS (x64 and arm64) on: push: @@ -6,11 +6,11 @@ on: - main jobs: - build: + build_x64: runs-on: macos-latest strategy: matrix: - arch: [arm64] # Specify the desired architectures here + arch: [x64] steps: - name: Checkout Code @@ -37,20 +37,60 @@ jobs: run: | # Copy libpksav.dylib to the same directory as the executable cp deps/pksav/build/lib/libpksav.dylib build/ - + + # Update the library path in the executable + install_name_tool -change /Users/runner/work/pokerom-trader/pokerom-trader/deps/pksav/build/lib/libpksav.dylib @executable_path/libpksav.dylib build/pokeromtrader + + - name: Publish Build Artifacts + uses: actions/upload-artifact@v3 + with: + name: pokeromtrader-artifacts-x64 # Specify a name for your artifacts + path: build/ # Specify the directory containing your build artifacts + + build_arm64: + runs-on: macos-latest + strategy: + matrix: + arch: [arm64] + + steps: + - name: Checkout Code + uses: actions/checkout@v3 + + - name: Build pksav + run: | + cd deps/pksav/ + mkdir build + cd build + cmake .. + make + + - name: Build raylib + run: | + cd deps/raylib/src/ + make PLATFORM=PLATFORM_DESKTOP + + - name: Build Project + run: | + make all + + - name: Bundle Executable with Library + run: | + # Copy libpksav.dylib to the same directory as the executable + cp deps/pksav/build/lib/libpksav.dylib build/ + # Update the library path in the executable - install_name_tool -change /Users/runner/work/pokerom-trader/pokerom-trader/deps/pksav/build/lib/libpksav.dylib @rpath/libpksav.dylib build/pokeromtrader - install_name_tool -add_rpath @executable_path/../Frameworks build/pokeromtrader + install_name_tool -change /Users/runner/work/pokerom-trader/pokerom-trader/deps/pksav/build/lib/libpksav.dylib @executable_path/libpksav.dylib build/pokeromtrader - name: Publish Build Artifacts uses: actions/upload-artifact@v3 with: - name: pokeromtrader-artifacts # Specify a name for your artifacts + name: pokeromtrader-artifacts-arm64 # Specify a name for your artifacts path: build/ # Specify the directory containing your build artifacts - bundle_macos_release: + bundle_macos_arm64: runs-on: macos-latest - needs: build # Ensure that the 'build' job is completed before this one starts + needs: build_arm64 # Ensure that the 'build' job is completed before this one starts steps: - name: Checkout Code @@ -60,29 +100,27 @@ jobs: # Download the build artifact from the 'build' job uses: actions/download-artifact@v2 with: - name: pokeromtrader-artifacts # Specify the name of the build artifact + name: pokeromtrader-arm64 # Specify the name of the build artifact - name: Bundle macOS Release run: | # You can access the downloaded artifact in the current directory - BUILD_DIR="build" - MACOS_DESTINATION="${BUILD_DIR}/macos/PokeromTrader.app/Contents/MacOS" - MACOS_FRAMEWORKS_DESTINATION="${BUILD_DIR}/macos/PokeromTrader.app/Contents/Frameworks" - APP_BUNDLE_EXECUTABLE="pokeromtrader" + BUILD_DIR="build/macos" + MACOS_DESTINATION="${BUILD_DIR}/PokeromTrader.app/Contents/MacOS" + APP_BUNDLE_EXECUTABLE="pokeromtrader.app" APP_BUNDLE_ID="com.yourcompany.pokeromtrader" APP_BUNDLE_NAME="PokeromTrader" - INFO_PLIST="${BUILD_DIR}/macos/PokeromTrader.app/Contents/Info.plist" + INFO_PLIST="${BUILD_DIR}/PokeromTrader.app/Contents/Info.plist" # Create the build directory if it doesn't exist mkdir -p "${BUILD_DIR}" # Create the directory structure mkdir -p "${MACOS_DESTINATION}" - mkdir -p "${MACOS_FRAMEWORKS_DESTINATION}" + mkdir -p "${BUILD_DIR}/PokeromTrader.app/Contents/Resources" # Copy the executable to the .app bundle - cp "${{ github.workspace }}/pokeromtrader" "${MACOS_DESTINATION}/pokeromtrader" - cp "${{ github.workspace }}/libpksav.dylib" "${MACOS_FRAMEWORKS_DESTINATION}/libpksav.dylib" + cp "pokeromtrader" "${MACOS_DESTINATION}/${APP_BUNDLE_EXECUTABLE}" # Create Info.plist file echo '' > "${INFO_PLIST}" @@ -98,17 +136,15 @@ jobs: echo '' >> "${INFO_PLIST}" echo '' >> "${INFO_PLIST}" + # Make the executable executable + chmod +x "${MACOS_DESTINATION}/${APP_BUNDLE_EXECUTABLE}" + echo "macOS release bundle created" - - name: Make App Executable - run: | - chmod +x build/macos/PokeromTrader.app/Contents/MacOS/pokeromtrader - working-directory: ${{ github.workspace }} - - name: Upload macOS Release uses: actions/upload-artifact@v2 with: - name: pokeromtrader # Specify a name for your macOS release + name: pokeromtrader-arm64 # Specify a name for your macOS release path: build/macos - name: Clean Up