Skip to content

Commit dfaad26

Browse files
committed
ADDED: First version, generated with itself!
1 parent 17c0791 commit dfaad26

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+42524
-2
lines changed

.github/workflows/linux.yml

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
name: Linux
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
paths:
7+
- 'src/**'
8+
- '.github/workflows/linux.yml'
9+
release:
10+
types: [published]
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-20.04
15+
16+
env:
17+
PROJECT_NAME: ${{ github.event.repository.name }}
18+
PROJECT_BUILD_PATH: ${{ github.event.repository.name }}/src
19+
PROJECT_RELEASE_PATH: ${{ github.event.repository.name }}_dev_linux_x64
20+
PROJECT_CUSTOM_FLAGS: ""
21+
22+
steps:
23+
- name: Checkout this repo
24+
uses: actions/checkout@master
25+
with:
26+
path: ${{ env.PROJECT_NAME }}
27+
28+
- name: Checkout raylib repo
29+
uses: actions/checkout@v4
30+
with:
31+
repository: raysan5/raylib
32+
path: raylib
33+
34+
- name: Setup Release Paths
35+
run: |
36+
echo "PROJECT_RELEASE_PATH=${{ env.PROJECT_NAME }}_v${{ github.event.release.tag_name }}_linux_x64" >> $GITHUB_ENV
37+
shell: bash
38+
if: github.event_name == 'release' && github.event.action == 'published'
39+
40+
- name: Setup Environment
41+
run: |
42+
sudo apt-get update -qq
43+
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 libwayland-dev libxkbcommon-dev
44+
mkdir ${{ env.PROJECT_RELEASE_PATH }}
45+
ls
46+
shell: bash
47+
48+
- name: Build raylib Library
49+
run: |
50+
cd raylib/src
51+
gcc --version
52+
make PLATFORM=PLATFORM_DESKTOP BUILD_MODE=RELEASE RAYLIB_LIBTYPE=STATIC RAYLIB_CONFIG_FLAGS=${{ env.RAYLIB_CONFIG_FLAGS }} RAYLIB_PROJECT_RELEASE_PATH=. -B
53+
54+
- name: Build Product
55+
run: |
56+
cd ${{ env.PROJECT_NAME }}/src
57+
make PLATFORM=PLATFORM_DESKTOP BUILD_MODE=RELEASE PROJECT_CUSTOM_FLAGS=${{ env.PROJECT_CUSTOM_FLAGS }} PROJECT_BUILD_PATH=. RAYLIB_SRC_PATH=../../raylib/src
58+
59+
- name: Generate Artifacts
60+
run: |
61+
ls ${{ env.PROJECT_BUILD_PATH }}
62+
cp ${{ env.PROJECT_BUILD_PATH }}/${{ env.PROJECT_NAME }} ${{ env.PROJECT_RELEASE_PATH }}
63+
cp ${{ env.PROJECT_NAME }}/README.md ${{ env.PROJECT_RELEASE_PATH }}
64+
cp ${{ env.PROJECT_NAME }}/LICENSE ${{ env.PROJECT_RELEASE_PATH }}
65+
ls ${{ env.PROJECT_RELEASE_PATH }}
66+
7z a ./${{ env.PROJECT_RELEASE_PATH }}.zip ./${{ env.PROJECT_RELEASE_PATH }}
67+
68+
- name: Upload Artifacts
69+
uses: actions/upload-artifact@v4
70+
with:
71+
name: ${{ env.PROJECT_RELEASE_PATH }}.zip
72+
path: ./${{ env.PROJECT_RELEASE_PATH }}.zip
73+
74+
- name: Upload Artifact to Release
75+
uses: softprops/action-gh-release@v1
76+
with:
77+
files: ${{ env.PROJECT_RELEASE_PATH }}.zip
78+
env:
79+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
80+
if: github.event_name == 'release' && github.event.action == 'published'

.github/workflows/macos.yml

+131
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
name: macOS
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
paths:
7+
- 'src/**'
8+
- '.github/workflows/macos.yml'
9+
release:
10+
types: [published]
11+
12+
permissions:
13+
contents: read
14+
15+
jobs:
16+
build:
17+
permissions:
18+
contents: write # for actions/upload-release-asset to upload release asset
19+
runs-on: macos-latest
20+
21+
env:
22+
PROJECT_NAME: ${{ github.event.repository.name }}
23+
PROJECT_BUILD_PATH: ${{ github.event.repository.name }}/src
24+
PROJECT_RELEASE_PATH: ${{ github.event.repository.name }}_dev_macos
25+
PROJECT_SOURCES: "project_name.c"
26+
PROJECT_CUSTOM_FLAGS: ""
27+
28+
steps:
29+
- name: Checkout this repo
30+
uses: actions/checkout@master
31+
with:
32+
path: ${{ env.PROJECT_NAME }}
33+
34+
- name: Checkout raylib repo
35+
uses: actions/checkout@v4
36+
with:
37+
repository: raysan5/raylib
38+
path: raylib
39+
40+
- name: Setup Release Paths
41+
run: |
42+
echo "PROJECT_RELEASE_PATH=${{ env.PROJECT_NAME }}_v${{ github.event.release.tag_name }}_macos" >> $GITHUB_ENV
43+
shell: bash
44+
if: github.event_name == 'release' && github.event.action == 'published'
45+
46+
- name: Setup Environment
47+
run: |
48+
mkdir ${{ env.PROJECT_RELEASE_PATH }}
49+
cd ${{ env.PROJECT_RELEASE_PATH }}
50+
mkdir ${{ env.PROJECT_FILE_NAME }}.app
51+
cd ${{ env.PROJECT_FILE_NAME }}.app
52+
mkdir Contents
53+
cd Contents
54+
mkdir MacOS
55+
mkdir Resources
56+
cd ../../..
57+
ls
58+
shell: bash
59+
60+
# Generating static library, note that i386 architecture is deprecated
61+
# Defining GL_SILENCE_DEPRECATION because OpenGL is deprecated on macOS
62+
- name: Build raylib Library
63+
run: |
64+
cd raylib/src
65+
clang --version
66+
67+
# Extract version numbers from Makefile
68+
brew install grep
69+
RAYLIB_API_VERSION=`ggrep -Po 'RAYLIB_API_VERSION\s*=\s\K(.*)' Makefile`
70+
RAYLIB_VERSION=`ggrep -Po 'RAYLIB_VERSION\s*=\s\K(.*)' Makefile`
71+
72+
# Build raylib x86_64 static
73+
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=STATIC CUSTOM_CFLAGS="-target x86_64-apple-macos10.12 -DGL_SILENCE_DEPRECATION"
74+
mv -v -f libraylib.a libraylib_x86_64.a
75+
make clean
76+
77+
# Build raylib arm64 static
78+
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=STATIC CUSTOM_CFLAGS="-target arm64-apple-macos11 -DGL_SILENCE_DEPRECATION" -B
79+
mv -v -f libraylib.a libraylib_arm64.a
80+
make clean
81+
82+
# Join x86_64 and arm64 static
83+
lipo -create -output libraylib.a libraylib_x86_64.a libraylib_arm64.a
84+
lipo libraylib.a -detailed_info
85+
cd ../..
86+
87+
- name: Build Product
88+
run: |
89+
cd ${{ env.PROJECT_NAME }}/src
90+
91+
# Build project x86_64 binary
92+
# TODO: Link with x86_64 raylib library: libraylib_x86_64.a
93+
make PLATFORM=PLATFORM_DESKTOP BUILD_MODE=RELEASE PROJECT_CUSTOM_FLAGS=${{ env.PROJECT_CUSTOM_FLAGS }} PROJECT_BUILD_PATH=. RAYLIB_SRC_PATH=../../raylib/src PROJECT_CUSTOM_FLAGS="-target x86_64-apple-macos10.12"
94+
mv -v -f ${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME }}_x86_64
95+
make clean
96+
97+
# Build project arm64 binary
98+
# TODO: Link with arm64 raylib library: libraylib_arm.a
99+
make PLATFORM=PLATFORM_DESKTOP BUILD_MODE=RELEASE PROJECT_CUSTOM_FLAGS=${{ env.PROJECT_CUSTOM_FLAGS }} PROJECT_BUILD_PATH=. RAYLIB_SRC_PATH=../../raylib/src PROJECT_CUSTOM_FLAGS="-target arm64-apple-macos11"
100+
mv -v -f ${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME }}_arm64
101+
make clean
102+
103+
# Join x86_64 and arm64 binaries
104+
lipo -create -output ${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME }}_x86_64 ${{ env.PROJECT_NAME }}_arm64
105+
lipo ${{ env.PROJECT_NAME }} -detailed_info
106+
cd ..
107+
108+
- name: Generate Artifacts
109+
run: |
110+
ls ${{ env.PROJECT_BUILD_PATH }}
111+
cp ${{ env.PROJECT_BUILD_PATH }}/${{ env.PROJECT_NAME }} ${{ env.PROJECT_RELEASE_PATH }}/${{ env.PROJECT_NAME }}.app/Contents/MacOS
112+
cp ${{ env.PROJECT_NAME }}/src/${{ env.PROJECT_NAME }}.icns ${{ env.PROJECT_RELEASE_PATH }}/${{ env.PROJECT_NAME }}.app/Contents/Resources
113+
cp ${{ env.PROJECT_NAME }}/src/Info.plist ${{ env.PROJECT_RELEASE_PATH }}/${{ env.PROJECT_NAME }}.app/Contents
114+
cp ${{ env.PROJECT_NAME }}/README.md ${{ env.PROJECT_RELEASE_PATH }}
115+
cp ${{ env.PROJECT_NAME }}/LICENSE ${{ env.PROJECT_RELEASE_PATH }}
116+
ls ${{ env.PROJECT_RELEASE_PATH }}
117+
7z a ./${{ env.PROJECT_RELEASE_PATH }}.zip ./${{ env.PROJECT_RELEASE_PATH }}
118+
119+
- name: Upload Artifacts
120+
uses: actions/upload-artifact@v4
121+
with:
122+
name: ${{ env.PROJECT_RELEASE_PATH }}.zip
123+
path: ./${{ env.PROJECT_RELEASE_PATH }}.zip
124+
125+
- name: Upload Artifact to Release
126+
uses: softprops/action-gh-release@v1
127+
with:
128+
files: ${{ env.PROJECT_RELEASE_PATH }}.zip
129+
env:
130+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
131+
if: github.event_name == 'release' && github.event.action == 'published'

.github/workflows/webassembly.yml

+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
name: WebAssembly
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
paths:
7+
- 'src/**'
8+
- '.github/workflows/webassembly.yml'
9+
release:
10+
types: [published]
11+
12+
jobs:
13+
build:
14+
runs-on: windows-latest
15+
16+
env:
17+
PROJECT_NAME: ${{ github.event.repository.name }}
18+
PROJECT_BUILD_PATH: ${{ github.event.repository.name }}\\src
19+
PROJECT_RELEASE_PATH: ${{ github.event.repository.name }}_dev_wasm
20+
BUILD_WEB_SHELL: minshell.html
21+
22+
steps:
23+
- name: Checkout this repo
24+
uses: actions/checkout@master
25+
with:
26+
path: ${{ env.PROJECT_NAME }}
27+
28+
- name: Checkout raylib repo
29+
uses: actions/checkout@v4
30+
with:
31+
repository: raysan5/raylib
32+
path: raylib
33+
34+
- name: Setup emsdk
35+
uses: mymindstorm/setup-emsdk@v14
36+
with:
37+
version: 3.1.64
38+
actions-cache-folder: 'emsdk-cache'
39+
40+
- name: Setup Release Paths
41+
run: |
42+
echo "PROJECT_RELEASE_PATH=${{ env.PROJECT_NAME }}_v${{ github.event.release.tag_name }}_wasm" >> $GITHUB_ENV
43+
shell: bash
44+
if: github.event_name == 'release' && github.event.action == 'published'
45+
46+
- name: Setup Environment
47+
run: |
48+
mkdir ${{ env.PROJECT_RELEASE_PATH }}
49+
dir
50+
51+
- name: Build raylib Library
52+
run: |
53+
cd raylib/src
54+
emcc -v
55+
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
56+
57+
- name: Build Product
58+
run: |
59+
cd ${{ env.PROJECT_NAME }}/src
60+
make PLATFORM=PLATFORM_WEB BUILD_MODE=RELEASE EMSDK_PATH="D:/a/${{ env.PROJECT_NAME }}/${{ env.PROJECT_NAME }}/emsdk-cache/emsdk-main" PROJECT_BUILD_PATH=. RAYLIB_SRC_PATH=../../raylib/src -B
61+
62+
- name: Generate Artifacts
63+
run: |
64+
dir ${{ env.PROJECT_BUILD_PATH }}
65+
copy /Y ${{ env.PROJECT_BUILD_PATH }}\${{ env.PROJECT_NAME }}.wasm ${{ env.PROJECT_RELEASE_PATH }}\${{ env.PROJECT_NAME }}.wasm
66+
copy /Y ${{ env.PROJECT_BUILD_PATH }}\${{ env.PROJECT_NAME }}.data ${{ env.PROJECT_RELEASE_PATH }}\${{ env.PROJECT_NAME }}.data
67+
copy /Y ${{ env.PROJECT_BUILD_PATH }}\${{ env.PROJECT_NAME }}.js ${{ env.PROJECT_RELEASE_PATH }}\${{ env.PROJECT_NAME }}.js
68+
copy /Y ${{ env.PROJECT_BUILD_PATH }}\${{ env.PROJECT_NAME }}.html ${{ env.PROJECT_RELEASE_PATH }}\index.html
69+
copy /Y ${{ env.PROJECT_NAME }}\README.md ${{ env.PROJECT_RELEASE_PATH }}\README.md
70+
copy /Y ${{ env.PROJECT_NAME }}\LICENSE ${{ env.PROJECT_RELEASE_PATH }}\LICENSE
71+
dir ${{ env.PROJECT_RELEASE_PATH }}
72+
7z a -tzip -r .\${{ env.PROJECT_RELEASE_PATH }}.zip .\${{ env.PROJECT_RELEASE_PATH }}\*
73+
shell: cmd
74+
75+
- name: Upload Artifacts
76+
uses: actions/upload-artifact@v4
77+
with:
78+
name: ${{ env.PROJECT_RELEASE_PATH }}.zip
79+
path: ./${{ env.PROJECT_RELEASE_PATH }}.zip
80+
81+
- name: Upload Artifact to Release
82+
uses: softprops/action-gh-release@v1
83+
with:
84+
files: ${{ env.PROJECT_RELEASE_PATH }}.zip
85+
env:
86+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
87+
if: github.event_name == 'release' && github.event.action == 'published'

.github/workflows/windows.yml

+82
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
name: Windows
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
paths:
7+
- 'src/**'
8+
- '.github/workflows/windows.yml'
9+
release:
10+
types: [published]
11+
12+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
13+
jobs:
14+
build:
15+
runs-on: windows-latest
16+
17+
env:
18+
PROJECT_NAME: ${{ github.event.repository.name }}
19+
PROJECT_BUILD_PATH: "${{ github.event.repository.name }}\\projects\\VS2022\\build\\${{ github.event.repository.name }}\\bin\\x64\\Release"
20+
PROJECT_RELEASE_PATH: ${{ github.event.repository.name }}_dev_win_x64
21+
22+
steps:
23+
- name: Checkout this repo
24+
uses: actions/checkout@master
25+
with:
26+
path: ${{ env.PROJECT_NAME }}
27+
28+
- name: Checkout raylib repo
29+
uses: actions/checkout@v4
30+
with:
31+
repository: raysan5/raylib
32+
path: raylib
33+
34+
# NOTE: Visual Studio project build configuration already defines all required directories where project is generated:
35+
# $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\
36+
- name: Setup Release Paths
37+
run: |
38+
echo "PROJECT_RELEASE_PATH=${{ env.PROJECT_NAME }}_v${{ github.event.release.tag_name }}_win_x64" >> $GITHUB_ENV
39+
shell: bash
40+
if: github.event_name == 'release' && github.event.action == 'published'
41+
42+
- name: Setup Environment
43+
run: |
44+
mkdir ${{ env.PROJECT_RELEASE_PATH }}
45+
dir
46+
shell: cmd
47+
48+
# Setup MSBuild.exe path if required
49+
- name: Setup MSBuild path
50+
uses: microsoft/setup-msbuild@v2
51+
52+
- name: Build raylib Library + Product (VS2022 solution)
53+
run: |
54+
dir
55+
cd ${{ env.PROJECT_NAME }}/projects/VS2022
56+
msbuild.exe ${{ env.PROJECT_NAME }}.sln /target:${{ env.PROJECT_NAME }} /property:Configuration=Release /property:Platform=x64
57+
cd ../..
58+
shell: cmd
59+
60+
- name: Generate Artifacts
61+
run: |
62+
dir ${{ env.PROJECT_BUILD_PATH }}
63+
copy /Y ${{ env.PROJECT_BUILD_PATH }}\${{ env.PROJECT_NAME }}.exe ${{ env.PROJECT_RELEASE_PATH }}\${{ env.PROJECT_NAME }}.exe
64+
copy /Y ${{ env.PROJECT_NAME }}\README.md ${{ env.PROJECT_RELEASE_PATH }}\README.md
65+
copy /Y ${{ env.PROJECT_NAME }}\LICENSE ${{ env.PROJECT_RELEASE_PATH }}\LICENSE
66+
dir ${{ env.PROJECT_RELEASE_PATH }}
67+
7z a .\${{ env.PROJECT_RELEASE_PATH }}.zip .\${{ env.PROJECT_RELEASE_PATH }}
68+
shell: cmd
69+
70+
- name: Upload Artifacts
71+
uses: actions/upload-artifact@v4
72+
with:
73+
name: ${{ env.PROJECT_RELEASE_PATH }}.zip
74+
path: ./${{ env.PROJECT_RELEASE_PATH }}.zip
75+
76+
- name: Upload Artifact to Release
77+
uses: softprops/action-gh-release@v1
78+
with:
79+
files: ${{ env.PROJECT_RELEASE_PATH }}.zip
80+
env:
81+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
82+
if: github.event_name == 'release' && github.event.action == 'published'

.gitignore

+12
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,15 @@ modules.order
5050
Module.symvers
5151
Mkfile.old
5252
dkms.conf
53+
54+
# Visual Studio files
55+
[Dd]ebug/
56+
[Dd]ebug.DLL/
57+
[R]elease/
58+
[Rr]elease.DLL/
59+
*.user
60+
*.aps
61+
.vs
62+
63+
# Build folder
64+
[Bb]uild

0 commit comments

Comments
 (0)