Add CMake 3.31.6 build from source for Ubuntu 16.04 compatibility #146
This file contains hidden or 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 | |
| # Controls when the workflow will run | |
| on: | |
| push: | |
| pull_request: | |
| # Allows you to run this workflow manually from the Actions tab | |
| workflow_dispatch: | |
| env: | |
| RAYLIB_VERSION: 5.5.0-3 | |
| jobs: | |
| build-linux: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ubuntu:16.04 | |
| options: --user root | |
| volumes: | |
| # override /__e/node20 because GitHub Actions uses a version that requires too-recent glibc | |
| # see "Install node.js for GitHub Actions" below | |
| - /tmp:/__e/node20 | |
| steps: | |
| - name: Install dependencies | |
| run: | | |
| apt update | |
| apt install -y software-properties-common | |
| add-apt-repository ppa:git-core/ppa -y | |
| apt update | |
| apt install -y wget curl git build-essential ca-certificates libssl-dev | |
| apt install -y libasound2-dev mesa-common-dev libx11-dev libxrandr-dev libxi-dev xorg-dev libgl1-mesa-dev libglu1-mesa-dev libwayland-dev libxkbcommon-dev | |
| - name: Build and install CMake 3.31.6 | |
| run: | | |
| cd /tmp | |
| wget https://github.com/Kitware/CMake/releases/download/v3.31.6/cmake-3.31.6.tar.gz | |
| tar -xzf cmake-3.31.6.tar.gz | |
| cd cmake-3.31.6 | |
| ./bootstrap --prefix=/usr/local | |
| make -j$(nproc) | |
| make install | |
| ln -sf /usr/local/bin/cmake /usr/bin/cmake | |
| cmake --version | |
| # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
| - name: hack node | |
| run: | | |
| # Install a Node.js version that works in older Ubuntu containers (read: does not require very recent glibc) | |
| NODE_VERSION=v20.18.1 && | |
| NODE_TAR_FILE=node-$NODE_VERSION-linux-x64-glibc-217.tar.gz && | |
| NODE_URL=https://unofficial-builds.nodejs.org/download/release/$NODE_VERSION/$NODE_TAR_FILE && | |
| curl -Lo /tmp/$NODE_TAR_FILE $NODE_URL && | |
| tar -C /__e/node20 -x --strip-components=1 -f /tmp/$NODE_TAR_FILE | |
| - uses: actions/checkout@v2 | |
| with: | |
| submodules: recursive | |
| - name: Setup Java 8 | |
| run: | | |
| apt install -y openjdk-8-jdk | |
| export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 | |
| echo "JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" >> $GITHUB_ENV | |
| echo "/usr/lib/jvm/java-8-openjdk-amd64/bin" >> $GITHUB_PATH | |
| - name: Build raylib | |
| run: | | |
| cd raylib | |
| mkdir build | |
| cd build | |
| cmake -DBUILD_EXAMPLES=OFF -DCUSTOMIZE_BUILD=ON -DSUPPORT_FILEFORMAT_JPG=ON -DSUPPORT_FILEFORMAT_FLAC=ON -DWITH_PIC=ON -DCMAKE_BUILD_TYPE=Release .. | |
| make -j2 | |
| make install | |
| - name: Build jaylib | |
| env: | |
| RAYLIB_PLATFORM: linux-x86_64 | |
| run: | | |
| ./build-java.sh | |
| ./build-native.sh | |
| ./build-docs.sh | |
| - name: Upload jar | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: jaylib-linux-x86_64 | |
| path: ./*.jar | |
| # build-linux-arm: | |
| # runs-on: rpi | |
| # | |
| # steps: | |
| # # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
| # - uses: actions/checkout@v2 | |
| # with: | |
| # submodules: recursive | |
| # | |
| # | |
| # - name: Build raylib | |
| # run: | | |
| # cd raylib | |
| # mkdir build | |
| # cd build | |
| # cmake -DBUILD_EXAMPLES=off -DINCLUDE_EVERYTHING=on -DSUPPORT_FILEFORMAT_JPG=on -DWITH_PIC=on -DCMAKE_BUILD_TYPE=Release -DOpenGL_GL_PREFERENCE=GLVND .. | |
| # make -j2 | |
| # make install | |
| # | |
| # - name: Build jaylib | |
| # env: | |
| # RAYLIB_PLATFORM: linux-armhf | |
| # run: | | |
| # ./build-java.sh | |
| # ./build-native.sh | |
| # | |
| # - name: Upload jar | |
| # uses: actions/upload-artifact@v2.2.4 | |
| # with: | |
| # name: jar | |
| # path: ./*.jar | |
| build-mac: | |
| runs-on: macos-13 | |
| env: | |
| MACOSX_DEPLOYMENT_TARGET: 10.14 | |
| steps: | |
| # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
| - uses: actions/checkout@v2 | |
| with: | |
| submodules: recursive | |
| - uses: actions/setup-java@v2 | |
| with: | |
| distribution: 'adopt' # See 'Supported distributions' for available options | |
| java-version: '8' | |
| # build raylib for arm64 and x86_64 as well | |
| - name: Build raylib | |
| run: | | |
| cd raylib | |
| mkdir build | |
| cd build | |
| cmake -DBUILD_EXAMPLES=OFF -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DCUSTOMIZE_BUILD=ON -DSUPPORT_FILEFORMAT_JPG=ON -DSUPPORT_FILEFORMAT_FLAC=ON -DWITH_PIC=ON -DCMAKE_BUILD_TYPE=Release .. | |
| make -j2 | |
| sudo make install | |
| - name: Build jaylib | |
| env: | |
| RAYLIB_PLATFORM: macosx-x86_64 | |
| run: | | |
| ./build-java.sh | |
| ./build-native.sh | |
| - name: Upload jar | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: jaylib-macosx-x86_64 | |
| path: ./*macosx-x86_64*.jar | |
| build-windows: | |
| runs-on: windows-2019 | |
| steps: | |
| # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
| - uses: actions/checkout@v2 | |
| with: | |
| submodules: recursive | |
| - uses: actions/setup-java@v2 | |
| with: | |
| distribution: 'adopt' # See 'Supported distributions' for available options | |
| java-version: '8' | |
| - name: Add msbuild to PATH | |
| uses: microsoft/setup-msbuild@v1.0.2 | |
| - name: Build raylib | |
| run: | | |
| cd raylib | |
| mkdir build | |
| cd build | |
| cmake -DBUILD_EXAMPLES=OFF -DCUSTOMIZE_BUILD=ON -DSUPPORT_FILEFORMAT_JPG=ON -DSUPPORT_FILEFORMAT_FLAC=ON -DWITH_PIC=ON -DCMAKE_BUILD_TYPE=Release .. | |
| msbuild raylib.sln /target:raylib /property:Configuration=Release | |
| copy raylib\Release\raylib.lib ..\.. | |
| cd ..\.. | |
| shell: cmd | |
| - uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Build jaylib | |
| env: | |
| RAYLIB_PLATFORM: windows-x86_64 | |
| run: | | |
| build-windows.bat | |
| shell: cmd | |
| - name: Upload jar | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: jaylib-windows-x86_64 | |
| path: ./*.jar | |
| build-windows32: | |
| runs-on: windows-2019 | |
| steps: | |
| # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
| - uses: actions/checkout@v2 | |
| with: | |
| submodules: recursive | |
| - uses: actions/setup-java@v2 | |
| with: | |
| distribution: 'adopt' # See 'Supported distributions' for available options | |
| java-version: '8' | |
| architecture: 'x86' | |
| - name: Add msbuild to PATH | |
| uses: microsoft/setup-msbuild@v2 | |
| with: | |
| msbuild-architecture: x86 | |
| - name: Build raylib | |
| run: | | |
| cd raylib | |
| mkdir build | |
| cd build | |
| cmake -A Win32 -DBUILD_EXAMPLES=OFF -DCUSTOMIZE_BUILD=ON -DOPENGL_VERSION=2.1 -DSUPPORT_FILEFORMAT_JPG=ON -DSUPPORT_FILEFORMAT_FLAC=ON -DWITH_PIC=ON -DCMAKE_BUILD_TYPE=Release .. | |
| msbuild raylib.sln /target:raylib /property:Configuration=Release | |
| copy raylib\Release\raylib.lib ..\.. | |
| cd ..\.. | |
| shell: cmd | |
| - uses: ilammy/msvc-dev-cmd@v1 | |
| with: | |
| arch: x86 | |
| - name: Build jaylib | |
| env: | |
| RAYLIB_PLATFORM: windows-x86 | |
| run: | | |
| build-windows.bat | |
| shell: cmd | |
| - name: Upload jar | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: jaylib-windows-x86 | |
| path: ./*.jar |