aboutsummaryrefslogtreecommitdiff
path: root/raylib/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to 'raylib/.github/workflows')
-rw-r--r--raylib/.github/workflows/android.yml100
-rw-r--r--raylib/.github/workflows/cmake.yml111
-rw-r--r--raylib/.github/workflows/linux.yml111
-rw-r--r--raylib/.github/workflows/linux_examples.yml42
-rw-r--r--raylib/.github/workflows/macos.yml116
-rw-r--r--raylib/.github/workflows/webassembly.yml86
-rw-r--r--raylib/.github/workflows/windows.yml150
-rw-r--r--raylib/.github/workflows/windows_examples.yml36
8 files changed, 752 insertions, 0 deletions
diff --git a/raylib/.github/workflows/android.yml b/raylib/.github/workflows/android.yml
new file mode 100644
index 0000000..838d7a3
--- /dev/null
+++ b/raylib/.github/workflows/android.yml
@@ -0,0 +1,100 @@
+name: Android
+
+on:
+ workflow_dispatch:
+ push:
+ paths:
+ - 'src/**'
+ - 'examples/**'
+ - '.github/workflows/android.yml'
+ pull_request:
+ paths:
+ - 'src/**'
+ - 'examples/**'
+ - '.github/workflows/android.yml'
+ release:
+ types: [published]
+
+permissions:
+ contents: read
+
+jobs:
+ build:
+ permissions:
+ contents: write # for actions/upload-release-asset to upload release asset
+ runs-on: windows-latest
+ strategy:
+ fail-fast: false
+ max-parallel: 1
+ matrix:
+ ARCH: ["arm64", "x86_64"]
+
+ env:
+ RELEASE_NAME: raylib-dev_android_api29_${{ matrix.ARCH }}
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@master
+
+ - name: Setup Release Version
+ run: |
+ echo "RELEASE_NAME=raylib-${{ github.event.release.tag_name }}_android_api29_${{ matrix.ARCH }}" >> $GITHUB_ENV
+ shell: bash
+ if: github.event_name == 'release' && github.event.action == 'published'
+
+ - name: Setup Android NDK
+ id: setup-ndk
+ uses: nttld/setup-ndk@v1
+ with:
+ ndk-version: r25
+ add-to-path: false
+ env:
+ ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
+
+ - name: Setup Environment
+ run: |
+ mkdir build
+ cd build
+ mkdir ${{ env.RELEASE_NAME }}
+ cd ${{ env.RELEASE_NAME }}
+ mkdir include
+ mkdir lib
+ cd ../..
+
+ # Generating static + shared library for 64bit arquitectures and API version 29
+ - name: Build Library
+ run: |
+ cd src
+ make PLATFORM=PLATFORM_ANDROID ANDROID_ARCH=${{ matrix.ARCH }} ANDROID_API_VERSION=29 ANDROID_NDK=${{ env.ANDROID_NDK_HOME }} RAYLIB_LIBTYPE=STATIC RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib"
+ make PLATFORM=PLATFORM_ANDROID ANDROID_ARCH=${{ matrix.ARCH }} ANDROID_API_VERSION=29 ANDROID_NDK=${{ env.ANDROID_NDK_HOME }} RAYLIB_LIBTYPE=SHARED RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
+ cd ..
+ shell: cmd
+
+ - name: Generate Artifacts
+ run: |
+ cp -v ./src/raylib.h ./build/${{ env.RELEASE_NAME }}/include
+ cp -v ./src/raymath.h ./build/${{ env.RELEASE_NAME }}/include
+ cp -v ./src/rlgl.h ./build/${{ env.RELEASE_NAME }}/include
+ cp -v ./CHANGELOG ./build/${{ env.RELEASE_NAME }}/CHANGELOG
+ cp -v ./README.md ./build/${{ env.RELEASE_NAME }}/README.md
+ cp -v ./LICENSE ./build/${{ env.RELEASE_NAME }}/LICENSE
+ cd build
+ tar -czvf ${{ env.RELEASE_NAME }}.tar.gz ${{ env.RELEASE_NAME }}
+
+ - name: Upload Artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ env.RELEASE_NAME }}.tar.gz
+ path: ./build/${{ env.RELEASE_NAME }}.tar.gz
+
+ - name: Upload Artifact to Release
+ uses: actions/upload-release-asset@v1.0.1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ github.event.release.upload_url }}
+ asset_path: ./build/${{ env.RELEASE_NAME }}.tar.gz
+ asset_name: ${{ env.RELEASE_NAME }}.tar.gz
+ asset_content_type: application/gzip
+ if: github.event_name == 'release' && github.event.action == 'published'
+
diff --git a/raylib/.github/workflows/cmake.yml b/raylib/.github/workflows/cmake.yml
new file mode 100644
index 0000000..0e13b8e
--- /dev/null
+++ b/raylib/.github/workflows/cmake.yml
@@ -0,0 +1,111 @@
+name: CMakeBuilds
+
+on:
+ workflow_dispatch:
+ push:
+ paths:
+ - 'src/**'
+ - 'examples/**'
+ - '.github/workflows/cmake.yml'
+ - 'CMakeList.txt'
+ - 'CMakeOptions.txt'
+ - 'cmake/**'
+ pull_request:
+ paths:
+ - 'src/**'
+ - 'examples/**'
+ - '.github/workflows/cmake.yml'
+ - 'CMakeList.txt'
+ - 'CMakeOptions.txt'
+ - 'cmake/**'
+
+env:
+ # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
+ BUILD_TYPE: Release
+
+permissions:
+ contents: read
+
+jobs:
+ build_windows:
+ name: Windows Build
+ # The CMake configure and build commands are platform agnostic and should work equally
+ # well on Windows or Mac. You can convert this to a matrix build if you need
+ # cross-platform coverage.
+ # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
+ runs-on: windows-latest
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Create Build Environment
+ # Some projects don't allow in-source building, so create a separate build directory
+ # We'll use this as our working directory for all subsequent commands
+ run: cmake -E make_directory ${{github.workspace}}/build
+
+ - name: Configure CMake
+ # Use a bash shell so we can use the same syntax for environment variable
+ # access regardless of the host operating system
+ shell: powershell
+ working-directory: ${{github.workspace}}/build
+ # Note the current convention is to use the -S and -B options here to specify source
+ # and build directories, but this is only available with CMake 3.13 and higher.
+ # The CMake binaries on the Github Actions machines are (as of this writing) 3.12
+ run: cmake $env:GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$env:BUILD_TYPE -DPLATFORM=Desktop
+
+ - name: Build
+ working-directory: ${{github.workspace}}/build
+ shell: powershell
+ # Execute the build. You can specify a specific target with "--target <NAME>"
+ run: cmake --build . --config $env:BUILD_TYPE
+
+ - name: Test
+ working-directory: ${{github.workspace}}/build
+ shell: powershell
+ # Execute tests defined by the CMake configuration.
+ # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
+ run: ctest -C $env:BUILD_TYPE
+
+ build_linux:
+ name: Linux Build
+ # The CMake configure and build commands are platform agnostic and should work equally
+ # well on Windows or Mac. You can convert this to a matrix build if you need
+ # cross-platform coverage.
+ # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Create Build Environment
+ # Some projects don't allow in-source building, so create a separate build directory
+ # We'll use this as our working directory for all subsequent commands
+ run: cmake -E make_directory ${{github.workspace}}/build
+
+ - name: Setup Environment
+ run: |
+ sudo apt-get update -qq
+ sudo apt-get install gcc-multilib
+ 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
+ - name: Configure CMake
+ # Use a bash shell so we can use the same syntax for environment variable
+ # access regardless of the host operating system
+ shell: bash
+ working-directory: ${{github.workspace}}/build
+ # Note the current convention is to use the -S and -B options here to specify source
+ # and build directories, but this is only available with CMake 3.13 and higher.
+ # The CMake binaries on the Github Actions machines are (as of this writing) 3.12
+ run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DPLATFORM=Desktop
+
+ - name: Build
+ working-directory: ${{github.workspace}}/build
+ shell: bash
+ # Execute the build. You can specify a specific target with "--target <NAME>"
+ run: cmake --build . --config $BUILD_TYPE
+
+ - name: Test
+ working-directory: ${{github.workspace}}/build
+ shell: bash
+ # Execute tests defined by the CMake configuration.
+ # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
+ run: ctest -C $BUILD_TYPE
diff --git a/raylib/.github/workflows/linux.yml b/raylib/.github/workflows/linux.yml
new file mode 100644
index 0000000..d740250
--- /dev/null
+++ b/raylib/.github/workflows/linux.yml
@@ -0,0 +1,111 @@
+name: Linux
+
+on:
+ workflow_dispatch:
+ push:
+ paths:
+ - 'src/**'
+ - 'examples/**'
+ - '.github/workflows/linux.yml'
+ pull_request:
+ paths:
+ - 'src/**'
+ - 'examples/**'
+ - '.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: ubuntu-20.04
+ strategy:
+ fail-fast: false
+ max-parallel: 1
+ matrix:
+ bits: [32, 64]
+ include:
+ - bits: 32
+ ARCH: "i386"
+ ARCH_NAME: "i386"
+ COMPILER_PATH: "/user/bin"
+ - bits: 64
+ ARCH: "x86_64"
+ ARCH_NAME: "amd64"
+ COMPILER_PATH: "/user/bin"
+
+ env:
+ RELEASE_NAME: raylib-dev_linux_${{ matrix.ARCH_NAME }}
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@master
+
+ - name: Setup Release Version
+ run: |
+ echo "RELEASE_NAME=raylib-${{ github.event.release.tag_name }}_linux_${{ matrix.ARCH_NAME }}" >> $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 gcc-multilib
+ 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 build
+ cd build
+ mkdir ${{ env.RELEASE_NAME }}
+ cd ${{ env.RELEASE_NAME }}
+ mkdir include
+ mkdir lib
+ cd ../../../raylib
+ # ${{ matrix.ARCH }}-linux-gnu-gcc -v
+
+ # TODO: Support 32bit (i386) static/shared library building
+ - name: Build Library
+ run: |
+ cd src
+ make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=STATIC RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" CUSTOM_CFLAGS="-m32" -B
+ # make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=SHARED RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
+ cd ..
+ if: matrix.bits == 32
+
+ - name: Build Library
+ run: |
+ cd src
+ make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=STATIC RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
+ make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=SHARED RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
+ cd ..
+ if: matrix.bits == 64
+
+ - name: Generate Artifacts
+ run: |
+ cp -v ./src/raylib.h ./build/${{ env.RELEASE_NAME }}/include
+ cp -v ./src/raymath.h ./build/${{ env.RELEASE_NAME }}/include
+ cp -v ./src/rlgl.h ./build/${{ env.RELEASE_NAME }}/include
+ cp -v ./CHANGELOG ./build/${{ env.RELEASE_NAME }}/CHANGELOG
+ cp -v ./README.md ./build/${{ env.RELEASE_NAME }}/README.md
+ cp -v ./LICENSE ./build/${{ env.RELEASE_NAME }}/LICENSE
+ cd build
+ tar -czvf ${{ env.RELEASE_NAME }}.tar.gz ${{ env.RELEASE_NAME }}
+
+ - name: Upload Artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ env.RELEASE_NAME }}.tar.gz
+ path: ./build/${{ env.RELEASE_NAME }}.tar.gz
+
+ - name: Upload Artifact to Release
+ uses: actions/upload-release-asset@v1.0.1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ github.event.release.upload_url }}
+ asset_path: ./build/${{ env.RELEASE_NAME }}.tar.gz
+ asset_name: ${{ env.RELEASE_NAME }}.tar.gz
+ asset_content_type: application/gzip
+ if: github.event_name == 'release' && github.event.action == 'published'
diff --git a/raylib/.github/workflows/linux_examples.yml b/raylib/.github/workflows/linux_examples.yml
new file mode 100644
index 0000000..3ed2dc7
--- /dev/null
+++ b/raylib/.github/workflows/linux_examples.yml
@@ -0,0 +1,42 @@
+name: Linux Examples
+
+on:
+ workflow_dispatch:
+ push:
+ paths:
+ - 'src/**'
+ - 'examples/**'
+ - '.github/workflows/linux_examples.yml'
+ pull_request:
+ branches: [ master ]
+ paths:
+ - 'src/**'
+ - 'examples/**'
+ - '.github/workflows/linux_examples.yml'
+
+permissions:
+ contents: read
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - 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
+
+ - name: Build Library
+ run: |
+ cd src
+ make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=STATIC
+ cd ..
+
+ - name: Build Examples
+ run: |
+ cd examples
+ make PLATFORM=PLATFORM_DESKTOP -B
+ cd ..
diff --git a/raylib/.github/workflows/macos.yml b/raylib/.github/workflows/macos.yml
new file mode 100644
index 0000000..a9a036b
--- /dev/null
+++ b/raylib/.github/workflows/macos.yml
@@ -0,0 +1,116 @@
+name: macOS
+
+on:
+ workflow_dispatch:
+ push:
+ paths:
+ - 'src/**'
+ - 'examples/**'
+ - '.github/workflows/macos.yml'
+ pull_request:
+ paths:
+ - 'src/**'
+ - 'examples/**'
+ - '.github/workflows/macos.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:
+ RELEASE_NAME: raylib-dev_macos
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@master
+
+ - name: Setup Release Version
+ run: |
+ echo "RELEASE_NAME=raylib-${{ github.event.release.tag_name }}_macos" >> $GITHUB_ENV
+ shell: bash
+ if: github.event_name == 'release' && github.event.action == 'published'
+
+ - name: Setup Environment
+ run: |
+ mkdir build
+ cd build
+ mkdir ${{ env.RELEASE_NAME }}
+ cd ${{ env.RELEASE_NAME }}
+ mkdir include
+ mkdir lib
+ cd ../..
+
+ # Generating static + shared library, note that i386 architecture is deprecated
+ # Defining GL_SILENCE_DEPRECATION because OpenGL is deprecated on macOS
+ - name: Build Library
+ run: |
+ cd 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 libraylib.a /tmp/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 libraylib.a /tmp/libraylib_arm64.a
+ make clean
+
+ # Join x86_64 and arm64 static
+ lipo -create -output ../build/${{ env.RELEASE_NAME }}/lib/libraylib.a /tmp/libraylib_x86_64.a /tmp/libraylib_arm64.a
+
+ # Build raylib x86_64 dynamic
+ make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=SHARED CUSTOM_CFLAGS="-target x86_64-apple-macos10.12 -DGL_SILENCE_DEPRECATION" CUSTOM_LDFLAGS="-target x86_64-apple-macos10.12" -B
+ mv libraylib.${RAYLIB_VERSION}.dylib /tmp/libraylib_x86_64.${RAYLIB_VERSION}.dylib
+ make clean
+
+ # Build raylib arm64 dynamic
+ make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=SHARED CUSTOM_CFLAGS="-target arm64-apple-macos11 -DGL_SILENCE_DEPRECATION" CUSTOM_LDFLAGS="-target arm64-apple-macos11" -B
+ mv libraylib.${RAYLIB_VERSION}.dylib /tmp/libraylib_arm64.${RAYLIB_VERSION}.dylib
+
+ # Join x86_64 and arm64 dynamic
+ lipo -create -output ../build/${{ env.RELEASE_NAME }}/lib/libraylib.${RAYLIB_VERSION}.dylib /tmp/libraylib_x86_64.${RAYLIB_VERSION}.dylib /tmp/libraylib_arm64.${RAYLIB_VERSION}.dylib
+ ln -sv libraylib.${RAYLIB_VERSION}.dylib ../build/${{ env.RELEASE_NAME }}/lib/libraylib.dylib
+ ln -sv libraylib.${RAYLIB_VERSION}.dylib ../build/${{ env.RELEASE_NAME }}/lib/libraylib.${RAYLIB_API_VERSION}.dylib
+ cd ..
+
+ - name: Generate Artifacts
+ run: |
+ cp -v ./src/raylib.h ./build/${{ env.RELEASE_NAME }}/include
+ cp -v ./src/raymath.h ./build/${{ env.RELEASE_NAME }}/include
+ cp -v ./src/rlgl.h ./build/${{ env.RELEASE_NAME }}/include
+ cp -v ./CHANGELOG ./build/${{ env.RELEASE_NAME }}/CHANGELOG
+ cp -v ./README.md ./build/${{ env.RELEASE_NAME }}/README.md
+ cp -v ./LICENSE ./build/${{ env.RELEASE_NAME }}/LICENSE
+ cd build
+ tar -czvf ${{ env.RELEASE_NAME }}.tar.gz ${{ env.RELEASE_NAME }}
+
+ - name: Upload Artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ env.RELEASE_NAME }}.tar.gz
+ path: ./build/${{ env.RELEASE_NAME }}.tar.gz
+
+ - name: Upload Artifact to Release
+ uses: actions/upload-release-asset@v1.0.1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ github.event.release.upload_url }}
+ asset_path: ./build/${{ env.RELEASE_NAME }}.tar.gz
+ asset_name: ${{ env.RELEASE_NAME }}.tar.gz
+ asset_content_type: application/gzip
+ if: github.event_name == 'release' && github.event.action == 'published'
diff --git a/raylib/.github/workflows/webassembly.yml b/raylib/.github/workflows/webassembly.yml
new file mode 100644
index 0000000..9374cb9
--- /dev/null
+++ b/raylib/.github/workflows/webassembly.yml
@@ -0,0 +1,86 @@
+name: WebAssembly
+
+on:
+ workflow_dispatch:
+ push:
+ paths:
+ - 'src/**'
+ - 'examples/**'
+ - '.github/workflows/webassembly.yml'
+ pull_request:
+ paths:
+ - 'src/**'
+ - 'examples/**'
+ - '.github/workflows/webassembly.yml'
+ release:
+ types: [published]
+
+jobs:
+ build:
+ runs-on: windows-latest
+
+ env:
+ RELEASE_NAME: raylib-dev_webassembly
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@master
+
+ - name: Setup emsdk
+ uses: mymindstorm/setup-emsdk@v12
+ with:
+ version: 3.1.30
+ actions-cache-folder: 'emsdk-cache'
+
+ - name: Setup Release Version
+ run: |
+ echo "RELEASE_NAME=raylib-${{ github.event.release.tag_name }}_webassembly" >> $GITHUB_ENV
+ shell: bash
+ if: github.event_name == 'release' && github.event.action == 'published'
+
+ - name: Setup Environment
+ run: |
+ mkdir build
+ cd build
+ mkdir ${{ env.RELEASE_NAME }}
+ cd ${{ env.RELEASE_NAME }}
+ mkdir include
+ mkdir lib
+ cd ../..
+
+ - name: Build Library
+ run: |
+ cd src
+ emcc -v
+ make PLATFORM=PLATFORM_WEB EMSDK_PATH="D:/a/raylib/raylib/emsdk-cache/emsdk-main" RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
+ cd ..
+
+ - name: Generate Artifacts
+ run: |
+ copy /Y .\src\raylib.h .\build\${{ env.RELEASE_NAME }}\include\raylib.h
+ copy /Y .\src\raymath.h .\build\${{ env.RELEASE_NAME }}\include\raymath.h
+ copy /Y .\src\rlgl.h .\build\${{ env.RELEASE_NAME }}\include\rlgl.h
+ copy /Y .\CHANGELOG .\build/${{ env.RELEASE_NAME }}\CHANGELOG
+ copy /Y .\README.md .\build\${{ env.RELEASE_NAME }}\README.md
+ copy /Y .\LICENSE .\build\${{ env.RELEASE_NAME }}\LICENSE
+ cd build
+ 7z a ./${{ env.RELEASE_NAME }}.zip ./${{ env.RELEASE_NAME }}
+ dir
+ shell: cmd
+
+ - name: Upload Artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ env.RELEASE_NAME }}.zip
+ path: ./build/${{ env.RELEASE_NAME }}.zip
+
+ - name: Upload Artifact to Release
+ uses: actions/upload-release-asset@v1.0.1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ github.event.release.upload_url }}
+ asset_path: ./build/${{ env.RELEASE_NAME }}.zip
+ asset_name: ${{ env.RELEASE_NAME }}.zip
+ asset_content_type: application/zip
+ if: github.event_name == 'release' && github.event.action == 'published'
diff --git a/raylib/.github/workflows/windows.yml b/raylib/.github/workflows/windows.yml
new file mode 100644
index 0000000..cf9a9f3
--- /dev/null
+++ b/raylib/.github/workflows/windows.yml
@@ -0,0 +1,150 @@
+name: Windows
+
+on:
+ workflow_dispatch:
+ push:
+ paths:
+ - 'src/**'
+ - 'examples/**'
+ - '.github/workflows/windows.yml'
+ pull_request:
+ paths:
+ - 'src/**'
+ - 'examples/**'
+ - '.github/workflows/windows.yml'
+ release:
+ types: [published]
+
+permissions:
+ contents: read
+
+jobs:
+ build:
+ permissions:
+ contents: write # for actions/upload-release-asset to upload release asset
+ runs-on: windows-latest
+ strategy:
+ fail-fast: false
+ max-parallel: 1
+ matrix:
+ compiler: [mingw-w64, msvc16]
+ bits: [32, 64]
+ include:
+ - compiler: mingw-w64
+ bits: 32
+ ARCH: "i686"
+ WINDRES_ARCH: pe-i386
+ - compiler: mingw-w64
+ bits: 64
+ ARCH: "x86_64"
+ WINDRES_ARCH: pe-x86-64
+ - compiler: msvc16
+ bits: 32
+ ARCH: "x86"
+ VSARCHPATH: "Win32"
+ - compiler: msvc16
+ bits: 64
+ ARCH: "x64"
+ VSARCHPATH: "x64"
+
+ env:
+ RELEASE_NAME: raylib-dev_win${{ matrix.bits }}_${{ matrix.compiler }}
+ GNUTARGET: default
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@master
+
+ - name: Setup Release Version
+ run: |
+ echo "RELEASE_NAME=raylib-${{ github.event.release.tag_name }}_win${{ matrix.bits }}_${{ matrix.compiler }}" >> $GITHUB_ENV
+ shell: bash
+ if: github.event_name == 'release' && github.event.action == 'published'
+
+ - name: Setup Environment
+ run: |
+ dir
+ mkdir build
+ cd build
+ mkdir ${{ env.RELEASE_NAME }}
+ cd ${{ env.RELEASE_NAME }}
+ mkdir include
+ mkdir lib
+ cd ../../../raylib
+
+ # Setup MSBuild.exe path if required
+ - name: Setup MSBuild
+ uses: microsoft/setup-msbuild@v1.1
+ if: matrix.compiler == 'msvc16'
+
+ - name: Build Library (MinGW-w64 32bit)
+ run: |
+ cd src
+ x86_64-w64-mingw32-gcc.exe --version
+ windres.exe --version
+ dir C:\msys64\mingw64\bin
+ make PLATFORM=PLATFORM_DESKTOP CC=x86_64-w64-mingw32-gcc.exe RAYLIB_LIBTYPE=STATIC RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" CUSTOM_CFLAGS=-m32
+ //windres.exe -i raylib.dll.rc -o raylib.dll.rc.data -O coff --target=${{ matrix.WINDRES_ARCH }}
+ //make PLATFORM=PLATFORM_DESKTOP CC=${{ matrix.ARCH }}-w64-mingw32-gcc.exe RAYLIB_LIBTYPE=SHARED RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
+ cd ..
+ shell: cmd
+ if: |
+ matrix.compiler == 'mingw-w64' &&
+ matrix.bits == 32
+
+ - name: Build Library (MinGW-w64 64bit)
+ run: |
+ cd src
+ ${{ matrix.ARCH }}-w64-mingw32-gcc.exe --version
+ windres.exe --version
+ dir C:\msys64\mingw64\bin
+ make PLATFORM=PLATFORM_DESKTOP CC=${{ matrix.ARCH }}-w64-mingw32-gcc.exe RAYLIB_LIBTYPE=STATIC RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib"
+ windres.exe -i raylib.dll.rc -o raylib.dll.rc.data -O coff --target=${{ matrix.WINDRES_ARCH }}
+ make PLATFORM=PLATFORM_DESKTOP CC=${{ matrix.ARCH }}-w64-mingw32-gcc.exe RAYLIB_LIBTYPE=SHARED RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
+ cd ..
+ shell: cmd
+ if: |
+ matrix.compiler == 'mingw-w64' &&
+ matrix.bits == 64
+
+ - name: Build Library (MSVC16)
+ run: |
+ cd projects/VS2022
+ msbuild.exe raylib.sln /target:raylib /property:Configuration=Release /property:Platform=${{ matrix.ARCH }}
+ copy /Y .\build\raylib\bin\${{ matrix.VSARCHPATH }}\Release\raylib.lib .\..\..\build\${{ env.RELEASE_NAME }}\lib\raylib.lib
+ msbuild.exe raylib.sln /target:raylib /property:Configuration=Release.DLL /property:Platform=${{ matrix.ARCH }}
+ copy /Y .\build\raylib\bin\${{ matrix.VSARCHPATH }}\Release.DLL\raylib.dll .\..\..\build\${{ env.RELEASE_NAME }}\lib\raylib.dll
+ copy /Y .\build\raylib\bin\${{ matrix.VSARCHPATH }}\Release.DLL\raylib.lib .\..\..\build\${{ env.RELEASE_NAME }}\lib\raylibdll.lib
+ cd ../..
+ shell: cmd
+ if: matrix.compiler == 'msvc16'
+
+ - name: Generate Artifacts
+ run: |
+ copy /Y .\src\raylib.h .\build\${{ env.RELEASE_NAME }}\include\raylib.h
+ copy /Y .\src\raymath.h .\build\${{ env.RELEASE_NAME }}\include\raymath.h
+ copy /Y .\src\rlgl.h .\build\${{ env.RELEASE_NAME }}\include\rlgl.h
+ copy /Y .\CHANGELOG .\build\${{ env.RELEASE_NAME }}\CHANGELOG
+ copy /Y .\README.md .\build\${{ env.RELEASE_NAME }}\README.md
+ copy /Y .\LICENSE .\build\${{ env.RELEASE_NAME }}\LICENSE
+ cd build
+ 7z a ./${{ env.RELEASE_NAME }}.zip ./${{ env.RELEASE_NAME }}
+ dir
+ shell: cmd
+
+ - name: Upload Artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ env.RELEASE_NAME }}.zip
+ path: ./build/${{ env.RELEASE_NAME }}.zip
+
+ - name: Upload Artifact to Release
+ uses: actions/upload-release-asset@v1.0.1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ github.event.release.upload_url }}
+ asset_path: ./build/${{ env.RELEASE_NAME }}.zip
+ asset_name: ${{ env.RELEASE_NAME }}.zip
+ asset_content_type: application/zip
+ if: github.event_name == 'release' && github.event.action == 'published'
diff --git a/raylib/.github/workflows/windows_examples.yml b/raylib/.github/workflows/windows_examples.yml
new file mode 100644
index 0000000..19e23cf
--- /dev/null
+++ b/raylib/.github/workflows/windows_examples.yml
@@ -0,0 +1,36 @@
+name: Windows Examples
+
+on:
+ workflow_dispatch:
+ push:
+ paths:
+ - 'src/**'
+ - 'examples/**'
+ - '.github/workflows/windows_examples.yml'
+ pull_request:
+ branches: [ master ]
+ paths:
+ - 'src/**'
+ - 'examples/**'
+ - '.github/workflows/windows_examples.yml'
+
+permissions:
+ contents: read
+
+jobs:
+ build:
+ runs-on: windows-latest
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Add MSBuild to PATH
+ uses: microsoft/setup-msbuild@v1
+
+ - name: Build Library (MSVC16)
+ run: |
+ cd projects/VS2019
+ msbuild.exe raylib.sln /property:Configuration=Release /property:Platform=x86
+ cd ../..
+ shell: cmd
+