generated from raysan5/raylib-gamejam-template
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 66e9ea8
Showing
21 changed files
with
2,360 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
name: Linux | ||
|
||
on: | ||
workflow_dispatch: | ||
push: | ||
paths: | ||
- 'src/**' | ||
- '.github/workflows/linux.yml' | ||
release: | ||
types: [published] | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-20.04 | ||
|
||
env: | ||
PROJECT_NAME: ${{ github.event.repository.name }} | ||
PROJECT_BUILD_PATH: ${{ github.event.repository.name }}/src | ||
PROJECT_RELEASE_PATH: ${{ github.event.repository.name }}_dev_linux_x64 | ||
PROJECT_SOURCES: "raylib_game.c" | ||
PROJECT_CUSTOM_FLAGS: "" | ||
|
||
steps: | ||
- name: Checkout this repo | ||
uses: actions/checkout@master | ||
with: | ||
path: ${{ env.PROJECT_NAME }} | ||
|
||
- name: Checkout raylib repo | ||
uses: actions/checkout@v3 | ||
with: | ||
repository: raysan5/raylib | ||
path: raylib | ||
|
||
- name: Setup Release Paths | ||
run: | | ||
echo "PROJECT_RELEASE_PATH=${{ env.PROJECT_NAME }}_v${{ github.event.release.tag_name }}_linux_x64" >> $GITHUB_ENV | ||
shell: bash | ||
if: github.event_name == 'release' && github.event.action == 'published' | ||
|
||
- name: Setup Environment | ||
run: | | ||
sudo apt-get update -qq | ||
sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev | ||
mkdir ${{ env.PROJECT_RELEASE_PATH }} | ||
ls | ||
shell: bash | ||
|
||
- name: Build raylib Library | ||
run: | | ||
cd raylib/src | ||
gcc --version | ||
make PLATFORM=PLATFORM_DESKTOP BUILD_MODE=RELEASE RAYLIB_LIBTYPE=STATIC RAYLIB_PROJECT_RELEASE_PATH=. -B | ||
- name: Build Product | ||
run: | | ||
cd ${{ env.PROJECT_NAME }}/src | ||
make PLATFORM=PLATFORM_DESKTOP BUILD_MODE=RELEASE PROJECT_SOURCE_FILES=${{ env.PROJECT_SOURCES }} PROJECT_CUSTOM_FLAGS=${{ env.PROJECT_CUSTOM_FLAGS }} PROJECT_BUILD_PATH=. RAYLIB_PATH=../../raylib | ||
- name: Generate Artifacts | ||
run: | | ||
ls ${{ env.PROJECT_BUILD_PATH }} | ||
cp ${{ env.PROJECT_BUILD_PATH }}/${{ env.PROJECT_NAME }} ${{ env.PROJECT_RELEASE_PATH }} | ||
cp ${{ env.PROJECT_NAME }}/README.md ${{ env.PROJECT_RELEASE_PATH }} | ||
cp ${{ env.PROJECT_NAME }}/LICENSE ${{ env.PROJECT_RELEASE_PATH }} | ||
ls ${{ env.PROJECT_RELEASE_PATH }} | ||
7z a ./${{ env.PROJECT_RELEASE_PATH }}.zip ./${{ env.PROJECT_RELEASE_PATH }} | ||
# Issue: Double zip: https://github.com/actions/upload-artifact/issues/39 | ||
- name: Upload Artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: ${{ env.PROJECT_RELEASE_PATH }}.zip | ||
path: ./${{ env.PROJECT_RELEASE_PATH }}.zip | ||
|
||
# Alternative: https://github.com/marketplace/actions/gh-release | ||
- name: Upload Artifact to Release | ||
uses: actions/[email protected] | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
upload_url: ${{ github.event.release.upload_url }} | ||
asset_name: ${{ env.PROJECT_RELEASE_PATH }}.zip | ||
asset_path: ./${{ env.PROJECT_RELEASE_PATH }}.zip | ||
asset_content_type: application/zip | ||
if: github.event_name == 'release' && github.event.action == 'published' |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
name: macOS | ||
|
||
on: | ||
workflow_dispatch: | ||
push: | ||
paths: | ||
- 'src/**' | ||
- '.github/workflows/linux.yml' | ||
release: | ||
types: [published] | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
build: | ||
permissions: | ||
contents: write # for actions/upload-release-asset to upload release asset | ||
runs-on: macos-latest | ||
|
||
env: | ||
PROJECT_NAME: ${{ github.event.repository.name }} | ||
PROJECT_FILE_NAME: raylib_game | ||
PROJECT_BUILD_PATH: ${{ github.event.repository.name }}/src | ||
PROJECT_RELEASE_PATH: ${{ github.event.repository.name }}_dev_macos | ||
PROJECT_SOURCES: "raylib_game.c" | ||
PROJECT_CUSTOM_FLAGS: "" | ||
RAYLIB_CONFIG_FLAGS: "-DSUPPORT_MODULE_RSHAPES -DSUPPORT_MODULE_RTEXTURES -DSUPPORT_MODULE_RTEXT -DSUPPORT_MODULE_RAUDIO -DSUPPORT_COMPRESSION_API -DSUPPORT_QUADS_DRAW_MODE -DSUPPORT_IMAGE_MANIPULATION -DSUPPORT_DEFAULT_FONT -DSUPPORT_TEXT_MANIPULATION -DSUPPORT_FILEFORMAT_WAV -DSUPPORT_FILEFORMAT_QOA -DSUPPORT_FILEFORMAT_MP3 -DSUPPORT_FILEFORMAT_OGG -DSUPPORT_FILEFORMAT_FLAC -DSUPPORT_STANDARD_FILEIO -DSUPPORT_TRACELOG" | ||
|
||
steps: | ||
- name: Checkout this repo | ||
uses: actions/checkout@master | ||
with: | ||
path: ${{ env.PROJECT_NAME }} | ||
|
||
- name: Checkout raylib repo | ||
uses: actions/checkout@v3 | ||
with: | ||
repository: raysan5/raylib | ||
path: raylib | ||
|
||
- name: Setup Release Paths | ||
run: | | ||
echo "PROJECT_RELEASE_PATH=${{ env.PROJECT_NAME }}_v${{ github.event.release.tag_name }}_macos" >> $GITHUB_ENV | ||
shell: bash | ||
if: github.event_name == 'release' && github.event.action == 'published' | ||
|
||
- name: Setup Environment | ||
run: | | ||
mkdir ${{ env.PROJECT_RELEASE_PATH }} | ||
cd ${{ env.PROJECT_RELEASE_PATH }} | ||
mkdir ${{ env.PROJECT_FILE_NAME }}.app | ||
cd ${{ env.PROJECT_FILE_NAME }}.app | ||
mkdir Contents | ||
cd Contents | ||
mkdir MacOS | ||
mkdir Resources | ||
cd ../../.. | ||
ls | ||
shell: bash | ||
|
||
# Generating static library, note that i386 architecture is deprecated | ||
# Defining GL_SILENCE_DEPRECATION because OpenGL is deprecated on macOS | ||
- name: Build raylib Library | ||
run: | | ||
cd raylib/src | ||
clang --version | ||
# Extract version numbers from Makefile | ||
brew install grep | ||
RAYLIB_API_VERSION=`ggrep -Po 'RAYLIB_API_VERSION\s*=\s\K(.*)' Makefile` | ||
RAYLIB_VERSION=`ggrep -Po 'RAYLIB_VERSION\s*=\s\K(.*)' Makefile` | ||
# Build raylib x86_64 static | ||
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=STATIC CUSTOM_CFLAGS="-target x86_64-apple-macos10.12 -DGL_SILENCE_DEPRECATION" | ||
mv -v -f libraylib.a libraylib_x86_64.a | ||
make clean | ||
# Build raylib arm64 static | ||
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=STATIC CUSTOM_CFLAGS="-target arm64-apple-macos11 -DGL_SILENCE_DEPRECATION" -B | ||
mv -v -f libraylib.a libraylib_arm64.a | ||
make clean | ||
# Join x86_64 and arm64 static | ||
lipo -create -output libraylib.a libraylib_x86_64.a libraylib_arm64.a | ||
lipo libraylib.a -detailed_info | ||
cd ../.. | ||
- name: Build Product | ||
run: | | ||
cd ${{ env.PROJECT_NAME }}/src | ||
# Build project x86_64 binary | ||
# TODO: Link with x86_64 raylib library: libraylib_x86_64.a | ||
make PLATFORM=PLATFORM_DESKTOP BUILD_MODE=RELEASE PROJECT_SOURCE_FILES=${{ env.PROJECT_SOURCES }} PROJECT_CUSTOM_FLAGS=${{ env.PROJECT_CUSTOM_FLAGS }} PROJECT_BUILD_PATH=. RAYLIB_PATH=../../raylib PROJECT_CUSTOM_FLAGS="-target x86_64-apple-macos10.12" | ||
mv -v -f ${{ env.PROJECT_FILE_NAME }} ${{ env.PROJECT_FILE_NAME }}_x86_64 | ||
make clean | ||
# Build project arm64 binary | ||
# TODO: Link with arm64 raylib library: libraylib_arm.a | ||
make PLATFORM=PLATFORM_DESKTOP BUILD_MODE=RELEASE PROJECT_SOURCE_FILES=${{ env.PROJECT_SOURCES }} PROJECT_CUSTOM_FLAGS=${{ env.PROJECT_CUSTOM_FLAGS }} PROJECT_BUILD_PATH=. RAYLIB_PATH=../../raylib PROJECT_CUSTOM_FLAGS="-target arm64-apple-macos11" | ||
mv -v -f ${{ env.PROJECT_FILE_NAME }} ${{ env.PROJECT_FILE_NAME }}_arm64 | ||
make clean | ||
# Join x86_64 and arm64 binaries | ||
lipo -create -output ${{ env.PROJECT_FILE_NAME }} ${{ env.PROJECT_FILE_NAME }}_x86_64 ${{ env.PROJECT_FILE_NAME }}_arm64 | ||
lipo ${{ env.PROJECT_FILE_NAME }} -detailed_info | ||
cd .. | ||
- name: Generate Artifacts | ||
run: | | ||
ls ${{ env.PROJECT_BUILD_PATH }} | ||
cp ${{ env.PROJECT_BUILD_PATH }}/${{ env.PROJECT_FILE_NAME }} ${{ env.PROJECT_RELEASE_PATH }}/${{ env.PROJECT_FILE_NAME }}.app/Contents/MacOS | ||
cp ${{ env.PROJECT_NAME }}/src/raylib.icns ${{ env.PROJECT_RELEASE_PATH }}/${{ env.PROJECT_FILE_NAME }}.app/Contents/Resources | ||
cp ${{ env.PROJECT_NAME }}/src/Info.plist ${{ env.PROJECT_RELEASE_PATH }}/${{ env.PROJECT_FILE_NAME }}.app/Contents | ||
cp ${{ env.PROJECT_NAME }}/README.md ${{ env.PROJECT_RELEASE_PATH }} | ||
cp ${{ env.PROJECT_NAME }}/LICENSE ${{ env.PROJECT_RELEASE_PATH }} | ||
ls ${{ env.PROJECT_RELEASE_PATH }} | ||
7z a ./${{ env.PROJECT_RELEASE_PATH }}.zip ./${{ env.PROJECT_RELEASE_PATH }} | ||
# Issue: Double zip: https://github.com/actions/upload-artifact/issues/39 | ||
- name: Upload Artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: ${{ env.PROJECT_RELEASE_PATH }}.zip | ||
path: ./${{ env.PROJECT_RELEASE_PATH }}.zip | ||
|
||
# Alternative: https://github.com/marketplace/actions/gh-release | ||
- name: Upload Artifact to Release | ||
uses: actions/[email protected] | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
upload_url: ${{ github.event.release.upload_url }} | ||
asset_name: ${{ env.PROJECT_RELEASE_PATH }}.zip | ||
asset_path: ./${{ env.PROJECT_RELEASE_PATH }}.zip | ||
asset_content_type: application/zip | ||
if: github.event_name == 'release' && github.event.action == 'published' |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
name: WebAssembly | ||
|
||
on: | ||
workflow_dispatch: | ||
push: | ||
paths: | ||
- 'src/**' | ||
- '.github/workflows/webassembly.yml' | ||
release: | ||
types: [published] | ||
|
||
jobs: | ||
build: | ||
runs-on: windows-latest | ||
|
||
env: | ||
PROJECT_NAME: ${{ github.event.repository.name }} | ||
PROJECT_BUILD_PATH: ${{ github.event.repository.name }}\\src | ||
PROJECT_RELEASE_PATH: ${{ github.event.repository.name }}_dev_wasm | ||
PROJECT_SOURCES: raylib_game.c | ||
BUILD_WEB_SHELL: minshell.html | ||
|
||
steps: | ||
- name: Checkout this repo | ||
uses: actions/checkout@master | ||
with: | ||
path: ${{ env.PROJECT_NAME }} | ||
|
||
- name: Checkout raylib repo | ||
uses: actions/checkout@v3 | ||
with: | ||
repository: raysan5/raylib | ||
path: raylib | ||
|
||
- name: Setup emsdk | ||
uses: mymindstorm/setup-emsdk@v12 | ||
with: | ||
version: 3.1.30 | ||
actions-cache-folder: 'emsdk-cache' | ||
|
||
- name: Setup Release Paths | ||
run: | | ||
echo "PROJECT_RELEASE_PATH=${{ env.PROJECT_NAME }}_v${{ github.event.release.tag_name }}_wasm" >> $GITHUB_ENV | ||
shell: bash | ||
if: github.event_name == 'release' && github.event.action == 'published' | ||
|
||
- name: Setup Environment | ||
run: | | ||
mkdir ${{ env.PROJECT_RELEASE_PATH }} | ||
dir | ||
- name: Build raylib Library | ||
run: | | ||
cd raylib/src | ||
emcc -v | ||
make PLATFORM=PLATFORM_WEB RAYLIB_BUILD_MODE=RELEASE RAYLIB_LIBTYPE=STATIC EMSDK_PATH="D:/a/${{ env.PROJECT_NAME }}/${{ env.PROJECT_NAME }}/emsdk-cache/emsdk-main" RAYLIB_PROJECT_RELEASE_PATH=. -B | ||
- name: Build Product | ||
run: | | ||
cd ${{ env.PROJECT_NAME }}/src | ||
make PLATFORM=PLATFORM_WEB BUILD_MODE=RELEASE EMSDK_PATH="D:/a/${{ env.PROJECT_NAME }}/${{ env.PROJECT_NAME }}/emsdk-cache/emsdk-main" PROJECT_SOURCE_FILES=${{ env.PROJECT_SOURCES }} PROJECT_BUILD_PATH=. RAYLIB_PATH=../../raylib -B | ||
- name: Generate Artifacts | ||
run: | | ||
dir ${{ env.PROJECT_BUILD_PATH }} | ||
copy /Y ${{ env.PROJECT_BUILD_PATH }}\${{ env.PROJECT_NAME }}.data ${{ env.PROJECT_RELEASE_PATH }}\${{ env.PROJECT_NAME }}.data | ||
copy /Y ${{ env.PROJECT_BUILD_PATH }}\${{ env.PROJECT_NAME }}.wasm ${{ env.PROJECT_RELEASE_PATH }}\${{ env.PROJECT_NAME }}.wasm | ||
copy /Y ${{ env.PROJECT_BUILD_PATH }}\${{ env.PROJECT_NAME }}.js ${{ env.PROJECT_RELEASE_PATH }}\${{ env.PROJECT_NAME }}.js | ||
copy /Y ${{ env.PROJECT_BUILD_PATH }}\${{ env.PROJECT_NAME }}.html ${{ env.PROJECT_RELEASE_PATH }}\index.html | ||
copy /Y ${{ env.PROJECT_NAME }}\README.md ${{ env.PROJECT_RELEASE_PATH }}\README.md | ||
copy /Y ${{ env.PROJECT_NAME }}\LICENSE ${{ env.PROJECT_RELEASE_PATH }}\LICENSE | ||
dir ${{ env.PROJECT_RELEASE_PATH }} | ||
7z a -tzip -r .\${{ env.PROJECT_RELEASE_PATH }}.zip .\${{ env.PROJECT_RELEASE_PATH }}\* | ||
shell: cmd | ||
|
||
# Issue: Double zip: https://github.com/actions/upload-artifact/issues/39 | ||
- name: Upload Artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: ${{ env.PROJECT_RELEASE_PATH }}.zip | ||
path: ./${{ env.PROJECT_RELEASE_PATH }}.zip | ||
|
||
# Alternative: https://github.com/marketplace/actions/gh-release | ||
- name: Upload Artifact to Release | ||
uses: actions/[email protected] | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
upload_url: ${{ github.event.release.upload_url }} | ||
asset_name: ${{ env.PROJECT_RELEASE_PATH }}.zip | ||
asset_path: ./${{ env.PROJECT_RELEASE_PATH }}.zip | ||
asset_content_type: application/zip | ||
if: github.event_name == 'release' && github.event.action == 'published' |
Oops, something went wrong.