refactored raylibhelper to separate folders #162
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
name: Build and Bundle MacOS (x64 and arm64) | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
build_x64: | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
arch: [x64] | |
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: | | |
brew install cppcheck | |
make CI_BUILD=true all | |
- name: Run cppcheck | |
run: | | |
cppcheck --std=c11 --enable=all --inconclusive --suppress=missingInclude --suppress=missingIncludeSystem --suppress=unusedFunction src/ || true | |
- name: Bundle Executable with Library | |
run: | | |
# Copy libpksav.dylib to the same directory as the executable | |
cp deps/pksav/build/lib/libpksav.dylib build/ | |
cp deps/raylib/src/libraylib.a 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 -change /Users/runner/work/pokerom-trader/pokerom-trader/deps/raylib/src/libraylib.a @rpath/libraylib.a build/pokeromtrader | |
install_name_tool -add_rpath @executable_path/../Frameworks build/pokeromtrader | |
- name: Copy assets | |
run: | | |
mkdir build/assets | |
cp -r assets build | |
- name: Publish Build Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: "pokeromtrader-artifacts-x64" | |
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: | | |
brew install cppcheck | |
make CI_BUILD=true all | |
- name: Run cppcheck | |
run: | | |
cppcheck --std=c11 --enable=all --inconclusive --suppress=missingInclude --suppress=missingIncludeSystem --suppress=unusedFunction src/ || true | |
- name: Bundle Executable with Library | |
run: | | |
# Copy libpksav.dylib to the same directory as the executable | |
cp deps/pksav/build/lib/libpksav.dylib build/ | |
cp deps/raylib/src/libraylib.a 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 -change /Users/runner/work/pokerom-trader/pokerom-trader/deps/raylib/src/libraylib.a @rpath/libraylib.a build/pokeromtrader | |
install_name_tool -add_rpath @executable_path/../Frameworks build/pokeromtrader | |
- name: Copy assets | |
run: | | |
mkdir build/assets | |
cp -r assets build | |
- name: Publish Build Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: "pokeromtrader-artifacts-arm64" | |
path: build/ # Specify the directory containing your build artifacts | |
bundle_macos_arm64: | |
runs-on: macos-latest | |
needs: build_arm64 # Ensure that the 'build' job is completed before this one starts | |
steps: | |
- name: Download Build Artifact | |
# Download the build artifact from the 'build' job | |
uses: actions/download-artifact@v2 | |
with: | |
name: "pokeromtrader-artifacts-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" | |
APP_BUNDLE_ID="com.yourcompany.pokeromtrader" | |
APP_BUNDLE_NAME="PokeromTrader" | |
INFO_PLIST="${BUILD_DIR}/macos/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}" | |
# 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 "${{ github.workspace }}/libraylib.a" "${MACOS_FRAMEWORKS_DESTINATION}/libraylib.a" | |
# Copy assets | |
mkdir -p "${MACOS_DESTINATION}/../Resources" | |
cp -r "${{ github.workspace }}/assets" "${MACOS_DESTINATION}/../Resources" | |
# Create Info.plist file | |
echo '<?xml version="1.0" encoding="UTF-8"?>' > "${INFO_PLIST}" | |
echo '<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">' >> "${INFO_PLIST}" | |
echo '<plist version="1.0">' >> "${INFO_PLIST}" | |
echo '<dict>' >> "${INFO_PLIST}" | |
echo ' <key>CFBundleExecutable</key>' >> "${INFO_PLIST}" | |
echo " <string>${APP_BUNDLE_EXECUTABLE}</string>" >> "${INFO_PLIST}" | |
echo ' <key>CFBundleIdentifier</key>' >> "${INFO_PLIST}" | |
echo " <string>${APP_BUNDLE_ID}</string>" >> "${INFO_PLIST}" | |
echo ' <key>CFBundleName</key>' >> "${INFO_PLIST}" | |
echo " <string>${APP_BUNDLE_NAME}</string>" >> "${INFO_PLIST}" | |
echo '</dict>' >> "${INFO_PLIST}" | |
echo '</plist>' >> "${INFO_PLIST}" | |
echo "macOS release bundle created" | |
- name: Upload macOS Release | |
uses: actions/upload-artifact@v2 | |
with: | |
name: "pokeromtrader-arm64" # Specify a name for your macOS release | |
path: build/macos | |
bundle_macos_x64: | |
runs-on: macos-latest | |
needs: build_x64 # Ensure that the 'build' job is completed before this one starts | |
steps: | |
- name: Download Build Artifact | |
# Download the build artifact from the 'build' job | |
uses: actions/download-artifact@v2 | |
with: | |
name: "pokeromtrader-artifacts-x64" # 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" | |
APP_BUNDLE_ID="com.yourcompany.pokeromtrader" | |
APP_BUNDLE_NAME="PokeromTrader" | |
INFO_PLIST="${BUILD_DIR}/macos/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}" | |
# Copy the executable to the .app bundle | |
cp "${{ github.workspace }}/pokeromtrader" "${MACOS_DESTINATION}/pokeromtrader" | |
cp "${{ github.workspace }}/libpksav.dylib" "${MACOS_FRAMEWORKS_DESTINATION}/libpksav.dylib" | |
# Copy assets | |
mkdir -p "${MACOS_DESTINATION}/../Resources" | |
cp -r "${{ github.workspace }}/assets" "${MACOS_DESTINATION}/../Resources" | |
# Create Info.plist file | |
echo '<?xml version="1.0" encoding="UTF-8"?>' > "${INFO_PLIST}" | |
echo '<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">' >> "${INFO_PLIST}" | |
echo '<plist version="1.0">' >> "${INFO_PLIST}" | |
echo '<dict>' >> "${INFO_PLIST}" | |
echo ' <key>CFBundleExecutable</key>' >> "${INFO_PLIST}" | |
echo " <string>${APP_BUNDLE_EXECUTABLE}</string>" >> "${INFO_PLIST}" | |
echo ' <key>CFBundleIdentifier</key>' >> "${INFO_PLIST}" | |
echo " <string>${APP_BUNDLE_ID}</string>" >> "${INFO_PLIST}" | |
echo ' <key>CFBundleName</key>' >> "${INFO_PLIST}" | |
echo " <string>${APP_BUNDLE_NAME}</string>" >> "${INFO_PLIST}" | |
echo '</dict>' >> "${INFO_PLIST}" | |
echo '</plist>' >> "${INFO_PLIST}" | |
echo "macOS release bundle created" | |
- name: Upload macOS Release | |
uses: actions/upload-artifact@v2 | |
with: | |
name: "pokeromtrader-x64" # Specify a name for your macOS release | |
path: build/macos |