diff options
| author | Uneven Prankster <unevenprankster@protonmail.com> | 2023-10-15 21:28:29 -0300 |
|---|---|---|
| committer | Uneven Prankster <unevenprankster@protonmail.com> | 2023-10-15 21:28:29 -0300 |
| commit | 1c0cc775732201f4c4d3ee0d6772be786b3b4aa1 (patch) | |
| tree | f5d692d046868261275c7430a624c3ea9ed75d3d /raylib/.github/workflows | |
| parent | a89f892640cf12f75c7ce18e6e88c70a8d3965ed (diff) | |
A lot has certainly happened!
Diffstat (limited to 'raylib/.github/workflows')
| -rw-r--r-- | raylib/.github/workflows/android.yml | 100 | ||||
| -rw-r--r-- | raylib/.github/workflows/cmake.yml | 111 | ||||
| -rw-r--r-- | raylib/.github/workflows/linux.yml | 111 | ||||
| -rw-r--r-- | raylib/.github/workflows/linux_examples.yml | 42 | ||||
| -rw-r--r-- | raylib/.github/workflows/macos.yml | 116 | ||||
| -rw-r--r-- | raylib/.github/workflows/webassembly.yml | 86 | ||||
| -rw-r--r-- | raylib/.github/workflows/windows.yml | 150 | ||||
| -rw-r--r-- | raylib/.github/workflows/windows_examples.yml | 36 |
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 + |
