WIP CTGUI nuget runtimes #3
Workflow file for this run
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
name: CTGUI-nuget-runtimes | |
on: [push, workflow_dispatch] # TODO: Remove push | |
# TODO: Upload Artifact is uploading symbolic links as files, so instead of one lib and 2 links to it, the runtimes contain 3 libs | |
env: | |
DOTNET_CLI_TELEMETRY_OPTOUT: 1 | |
CTGUI_VERSION: 1.x | |
TGUI_VERSION: 1.x | |
CSFML_VERSION: 2.6.1 | |
jobs: | |
windows: | |
name: Windows VS2022 | |
runs-on: windows-2022 | |
steps: | |
- name: Download dependencies | |
run: | | |
C:\msys64\usr\bin\wget.exe -nv https://github.com/texus/CTGUI/archive/refs/heads/${{ env.CTGUI_VERSION }}.zip | |
7z x ${{ env.CTGUI_VERSION }}.zip | |
del ${{ env.CTGUI_VERSION }}.zip | |
C:\msys64\usr\bin\wget.exe -nv https://github.com/texus/TGUI/archive/refs/heads/${{ env.TGUI_VERSION }}.zip | |
7z x ${{ env.TGUI_VERSION }}.zip | |
C:\msys64\usr\bin\wget.exe -nv https://github.com/SFML/CSFML/releases/download/${{ env.CSFML_VERSION }}/CSFML-${{ env.CSFML_VERSION }}-windows-32-bit.zip | |
7z x CSFML-${{ env.CSFML_VERSION }}-windows-32-bit.zip | |
rename CSFML CSFML-32 | |
C:\msys64\usr\bin\wget.exe -nv https://github.com/SFML/CSFML/releases/download/${{ env.CSFML_VERSION }}/CSFML-${{ env.CSFML_VERSION }}-windows-64-bit.zip | |
7z x CSFML-${{ env.CSFML_VERSION }}-windows-64-bit.zip | |
rename CSFML CSFML-64 | |
C:\msys64\usr\bin\wget.exe -nv https://github.com/SFML/CSFML/releases/download/${{ env.CSFML_VERSION }}/CSFML.${{ env.CSFML_VERSION }}.nupkg | |
mkdir CSFML-nuget | |
cd CSFML-nuget | |
7z x ..\CSFML.${{ env.CSFML_VERSION }}.nupkg | |
- name: Build x86 | |
run: | | |
cmake -B TGUI-build-x86 -S TGUI-${{ env.TGUI_VERSION }} -G "Visual Studio 17 2022" -A Win32 -DTGUI_BACKEND=Custom -DTGUI_BUILD_GUI_BUILDER=OFF -DBUILD_SHARED_LIBS=OFF -DTGUI_USE_STATIC_STD_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=TGUI-x86 | |
cmake --build TGUI-build-x86 --config Release --target install | |
cmake -B CTGUI-build-x86 -S CTGUI-${{ env.CTGUI_VERSION }} -G "Visual Studio 17 2022" -A Win32 -DTGUI_ROOT="${{ github.workspace }}/TGUI-x86" -DCSFML_INCLUDE_DIR="${{ github.workspace }}/CSFML-32/include" -DCSFML_LIBRARIES_DIR="${{ github.workspace }}/CSFML-32/msvc/" -DCTGUI_HAS_BACKEND_CSFML_GRAPHICS=ON -DBUILD_SHARED_LIBS=ON -DCTGUI_LINK_TGUI_STATICALLY=ON -DCMAKE_INSTALL_PREFIX=CTGUI | |
cmake --build CTGUI-build-x86 --config Release --target install | |
mkdir runtimes\win-x86\native | |
copy CTGUI\lib\Release\ctgui*.dll runtimes\linux-x64\native\ | |
- name: Build x64 | |
run: | | |
cmake -B TGUI-build-x64 -S TGUI-${{ env.TGUI_VERSION }} -G "Visual Studio 17 2022" -A x64 -DTGUI_BACKEND=Custom -DTGUI_BUILD_GUI_BUILDER=OFF -DBUILD_SHARED_LIBS=OFF -DTGUI_USE_STATIC_STD_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=TGUI-x64 | |
cmake --build TGUI-build-x64 --config Release --target install | |
cmake -B CTGUI-build-x64 -S CTGUI-${{ env.CTGUI_VERSION }} -G "Visual Studio 17 2022" -A x64 -DTGUI_ROOT="${{ github.workspace }}/TGUI-x64" -DCSFML_INCLUDE_DIR="${{ github.workspace }}/CSFML-64/include" -DCSFML_LIBRARIES_DIR="${{ github.workspace }}/CSFML-64/msvc/" -DCTGUI_HAS_BACKEND_CSFML_GRAPHICS=ON -DBUILD_SHARED_LIBS=ON -DCTGUI_LINK_TGUI_STATICALLY=ON -DCMAKE_INSTALL_PREFIX=CTGUI | |
cmake --build CTGUI-build-x64 --config Release --target install | |
mkdir runtimes\win-x64\native | |
copy CTGUI\lib\Release\ctgui*.dll runtimes\linux-x64\native\ | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: CTGUI-win-x86-x64 | |
path: runtimes | |
linux-x64: | |
name: Linux x64 | |
runs-on: ubuntu-22.04 | |
container: | |
image: ubuntu:22.04 | |
steps: | |
- name: Download dependencies | |
run: | | |
apt-get update -y | |
apt-get -y install git cmake g++ wget unzip ninja-build libsfml-dev | |
wget -nv -O- https://github.com/texus/CTGUI/archive/refs/heads/${{ env.CTGUI_VERSION }}.tar.gz | tar -xz | |
wget -nv -O- https://github.com/texus/TGUI/archive/refs/heads/${{ env.TGUI_VERSION }}.tar.gz | tar -xz | |
wget -nv -O- https://github.com/SFML/CSFML/archive/refs/tags/${{ env.CSFML_VERSION }}.tar.gz | tar -xz | |
wget -nv https://github.com/SFML/CSFML/releases/download/${{ env.CSFML_VERSION }}/CSFML.${{ env.CSFML_VERSION }}.nupkg | |
unzip CSFML.${{ env.CSFML_VERSION }}.nupkg -d CSFML-nuget | |
- name: Build | |
run: | | |
cmake -B TGUI-build -S TGUI-${{ env.TGUI_VERSION }} -G Ninja -DTGUI_BACKEND=Custom -DTGUI_BUILD_GUI_BUILDER=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=TGUI | |
cmake --build TGUI-build --config Release --target install | |
cmake -B CTGUI-build -S CTGUI-${{ env.CTGUI_VERSION }} -G Ninja -DTGUI_ROOT="${GITHUB_WORKSPACE}/TGUI" -DCSFML_INCLUDE_DIR="${GITHUB_WORKSPACE}/CSFML-${{ env.CSFML_VERSION }}/include" -DCSFML_LIBRARIES_DIR="${GITHUB_WORKSPACE}/CSFML-nuget/runtimes/linux-x64/native/" -DCTGUI_HAS_BACKEND_CSFML_GRAPHICS=ON -DBUILD_SHARED_LIBS=ON -DCTGUI_LINK_TGUI_STATICALLY=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON '-DCMAKE_INSTALL_RPATH=$ORIGIN' -DCMAKE_INSTALL_PREFIX=CTGUI | |
cmake --build CTGUI-build --config Release --target install | |
mkdir -p runtimes/linux-x64/native | |
cp -a CTGUI/lib/libctgui.so* runtimes/linux-x64/native/ | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: CTGUI-linux-x64 | |
path: runtimes | |
linux-arm32: | |
name: Linux ARM32 | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Build in an ARM32 container | |
uses: uraimo/[email protected] | |
with: | |
arch: none | |
distro: none | |
base_image: "--platform=linux/arm/v7 arm32v7/ubuntu:22.04" | |
githubToken: ${{ github.token }} | |
dockerRunArgs: | | |
--volume "${PWD}:/build" | |
install: | | |
apt-get update -y | |
apt-get install -y git cmake g++ wget unzip ninja-build libsfml-dev | |
run: | | |
cd /build | |
wget -nv -O- https://github.com/texus/CTGUI/archive/refs/heads/${{ env.CTGUI_VERSION }}.tar.gz | tar -xz | |
wget -nv -O- https://github.com/texus/TGUI/archive/refs/heads/${{ env.TGUI_VERSION }}.tar.gz | tar -xz | |
wget -nv -O- https://github.com/SFML/CSFML/archive/refs/tags/${{ env.CSFML_VERSION }}.tar.gz | tar -xz | |
wget -nv https://github.com/SFML/CSFML/releases/download/${{ env.CSFML_VERSION }}/CSFML.${{ env.CSFML_VERSION }}.nupkg | |
unzip CSFML.${{ env.CSFML_VERSION }}.nupkg -d CSFML-nuget | |
cmake -B TGUI-build -S TGUI-${{ env.TGUI_VERSION }} -G Ninja -DTGUI_BACKEND=Custom -DTGUI_BUILD_GUI_BUILDER=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=TGUI | |
cmake --build TGUI-build --config Release --target install | |
cmake -B CTGUI-build -S CTGUI-${{ env.CTGUI_VERSION }} -G Ninja -DTGUI_ROOT="/build/TGUI" -DCSFML_INCLUDE_DIR="/build/CSFML-${{ env.CSFML_VERSION }}/include" -DCSFML_LIBRARIES_DIR="/build/CSFML-nuget/runtimes/linux-arm/native/" -DCTGUI_HAS_BACKEND_CSFML_GRAPHICS=ON -DBUILD_SHARED_LIBS=ON -DCTGUI_LINK_TGUI_STATICALLY=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON '-DCMAKE_INSTALL_RPATH=$ORIGIN' -DCMAKE_INSTALL_PREFIX=CTGUI | |
cmake --build CTGUI-build --config Release --target install | |
mkdir -p runtimes/linux-arm/native | |
cp -a CTGUI/lib/libctgui.so* runtimes/linux-arm/native/ | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: CTGUI-linux-arm | |
path: runtimes | |
linux-arm64: | |
name: Linux ARM64 | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Build in an ARM64 container | |
uses: uraimo/[email protected] | |
with: | |
arch: none | |
distro: none | |
base_image: "--platform=linux/arm64 arm64v8/ubuntu:22.04" | |
githubToken: ${{ github.token }} | |
dockerRunArgs: | | |
--volume "${PWD}:/build" | |
install: | | |
apt-get update -y | |
apt-get install -y git cmake g++ wget unzip ninja-build libsfml-dev | |
run: | | |
cd /build | |
wget -nv -O- https://github.com/texus/CTGUI/archive/refs/heads/${{ env.CTGUI_VERSION }}.tar.gz | tar -xz | |
wget -nv -O- https://github.com/texus/TGUI/archive/refs/heads/${{ env.TGUI_VERSION }}.tar.gz | tar -xz | |
wget -nv -O- https://github.com/SFML/CSFML/archive/refs/tags/${{ env.CSFML_VERSION }}.tar.gz | tar -xz | |
wget -nv https://github.com/SFML/CSFML/releases/download/${{ env.CSFML_VERSION }}/CSFML.${{ env.CSFML_VERSION }}.nupkg | |
unzip CSFML.${{ env.CSFML_VERSION }}.nupkg -d CSFML-nuget | |
cmake -B TGUI-build -S TGUI-${{ env.TGUI_VERSION }} -G Ninja -DTGUI_BACKEND=Custom -DTGUI_BUILD_GUI_BUILDER=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=TGUI | |
cmake --build TGUI-build --config Release --target install | |
cmake -B CTGUI-build -S CTGUI-${{ env.CTGUI_VERSION }} -G Ninja -DTGUI_ROOT="/build/TGUI" -DCSFML_INCLUDE_DIR="/build/CSFML-${{ env.CSFML_VERSION }}/include" -DCSFML_LIBRARIES_DIR="/build/CSFML-nuget/runtimes/linux-arm64/native/" -DCTGUI_HAS_BACKEND_CSFML_GRAPHICS=ON -DBUILD_SHARED_LIBS=ON -DCTGUI_LINK_TGUI_STATICALLY=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON '-DCMAKE_INSTALL_RPATH=$ORIGIN' -DCMAKE_INSTALL_PREFIX=CTGUI | |
cmake --build CTGUI-build --config Release --target install | |
mkdir -p runtimes/linux-arm64/native | |
cp -a CTGUI/lib/libctgui.so* runtimes/linux-arm64/native/ | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: CTGUI-linux-arm64 | |
path: runtimes | |
linux-musl-x64: | |
name: Linux MUSL x64 | |
runs-on: ubuntu-22.04 | |
container: | |
image: alpine:3.20.3 | |
steps: | |
- name: Download dependencies | |
run: | | |
apk add git cmake make g++ wget unzip samurai sfml | |
wget -nv -O- https://github.com/texus/CTGUI/archive/refs/heads/${{ env.CTGUI_VERSION }}.tar.gz | tar -xz | |
wget -nv -O- https://github.com/texus/TGUI/archive/refs/heads/${{ env.TGUI_VERSION }}.tar.gz | tar -xz | |
wget -nv -O- https://github.com/SFML/CSFML/archive/refs/tags/${{ env.CSFML_VERSION }}.tar.gz | tar -xz | |
wget -nv https://github.com/SFML/CSFML/releases/download/${{ env.CSFML_VERSION }}/CSFML.${{ env.CSFML_VERSION }}.nupkg | |
unzip CSFML.${{ env.CSFML_VERSION }}.nupkg -d CSFML-nuget | |
- name: Build | |
run: | | |
cmake -B TGUI-build -S TGUI-${{ env.TGUI_VERSION }} -G Ninja -DTGUI_BACKEND=Custom -DTGUI_BUILD_GUI_BUILDER=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=TGUI | |
cmake --build TGUI-build --config Release --target install | |
cmake -B CTGUI-build -S CTGUI-${{ env.CTGUI_VERSION }} -G Ninja -DTGUI_ROOT="${GITHUB_WORKSPACE}/TGUI" -DCSFML_INCLUDE_DIR="${GITHUB_WORKSPACE}/CSFML-${{ env.CSFML_VERSION }}/include" -DCSFML_LIBRARIES_DIR="${GITHUB_WORKSPACE}/CSFML-nuget/runtimes/linux-musl-x64/native/" -DCTGUI_HAS_BACKEND_CSFML_GRAPHICS=ON -DBUILD_SHARED_LIBS=ON -DCTGUI_LINK_TGUI_STATICALLY=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON '-DCMAKE_INSTALL_RPATH=$ORIGIN' -DCMAKE_INSTALL_PREFIX=CTGUI | |
cmake --build CTGUI-build --config Release --target install | |
mkdir -p runtimes/linux-musl-x64/native | |
cp -a CTGUI/lib/libctgui.so* runtimes/linux-musl-x64/native/ | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: CTGUI-linux-musl-x64 | |
path: runtimes | |
fedora-x64: | |
name: Fedora x64 | |
runs-on: ubuntu-22.04 | |
container: | |
image: fedora:37 | |
steps: | |
- name: Download dependencies | |
run: | | |
dnf install -y git cmake make gcc-c++ wget unzip ninja-build SFML | |
wget -nv -O- https://github.com/texus/CTGUI/archive/refs/heads/${{ env.CTGUI_VERSION }}.tar.gz | tar -xz | |
wget -nv -O- https://github.com/texus/TGUI/archive/refs/heads/${{ env.TGUI_VERSION }}.tar.gz | tar -xz | |
wget -nv -O- https://github.com/SFML/CSFML/archive/refs/tags/${{ env.CSFML_VERSION }}.tar.gz | tar -xz | |
wget -nv https://github.com/SFML/CSFML/releases/download/${{ env.CSFML_VERSION }}/CSFML.${{ env.CSFML_VERSION }}.nupkg | |
unzip CSFML.${{ env.CSFML_VERSION }}.nupkg -d CSFML-nuget | |
- name: Build | |
run: | | |
cmake -B TGUI-build -S TGUI-${{ env.TGUI_VERSION }} -G Ninja -DTGUI_BACKEND=Custom -DTGUI_BUILD_GUI_BUILDER=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=TGUI | |
cmake --build TGUI-build --config Release --target install | |
cmake -B CTGUI-build -S CTGUI-${{ env.CTGUI_VERSION }} -G Ninja -DTGUI_ROOT="${GITHUB_WORKSPACE}/TGUI" -DCSFML_INCLUDE_DIR="${GITHUB_WORKSPACE}/CSFML-${{ env.CSFML_VERSION }}/include" -DCSFML_LIBRARIES_DIR="${GITHUB_WORKSPACE}/CSFML-nuget/runtimes/fedora-x64/native/" -DCTGUI_HAS_BACKEND_CSFML_GRAPHICS=ON -DBUILD_SHARED_LIBS=ON -DCTGUI_LINK_TGUI_STATICALLY=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON '-DCMAKE_INSTALL_RPATH=$ORIGIN' -DCMAKE_INSTALL_PREFIX=CTGUI | |
cmake --build CTGUI-build --config Release --target install | |
mkdir -p runtimes/fedora-x64/native | |
cp -a CTGUI/lib64/libctgui.so* runtimes/fedora-x64/native/ | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: CTGUI-fedora-x64 | |
path: runtimes | |
macos: | |
name: macOS | |
runs-on: macos-14 | |
steps: | |
- name: Download dependencies | |
run: | | |
brew install coreutils wget | |
wget -nv -O- https://github.com/texus/CTGUI/archive/refs/heads/${{ env.CTGUI_VERSION }}.tar.gz | tar -xz | |
wget -nv -O- https://github.com/texus/TGUI/archive/refs/heads/${{ env.TGUI_VERSION }}.tar.gz | tar -xz | |
wget -nv -O- https://github.com/SFML/CSFML/archive/refs/tags/${{ env.CSFML_VERSION }}.tar.gz | tar -xz | |
wget -nv https://github.com/SFML/CSFML/releases/download/${{ env.CSFML_VERSION }}/CSFML.${{ env.CSFML_VERSION }}.nupkg | |
unzip CSFML.${{ env.CSFML_VERSION }}.nupkg -d CSFML-nuget | |
- name: Build x64 | |
run: | | |
cmake -B TGUI-build-x64 -S TGUI-${{ env.TGUI_VERSION }} -G "Unix Makefiles" -DCMAKE_OSX_ARCHITECTURES=x86_64 -DTGUI_BACKEND=Custom -DTGUI_BUILD_GUI_BUILDER=OFF -DTGUI_BUILD_FRAMEWORK=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=TGUI-x64 | |
cmake --build TGUI-build-x64 --config Release --target install | |
cmake -B CTGUI-build-x64 -S CTGUI-${{ env.CTGUI_VERSION }} -G "Unix Makefiles" -DCMAKE_OSX_ARCHITECTURES=x86_64 -DTGUI_ROOT="${GITHUB_WORKSPACE}/TGUI-x64" -DCSFML_INCLUDE_DIR="${GITHUB_WORKSPACE}/CSFML-${{ env.CSFML_VERSION }}/include" -DCSFML_LIBRARIES_DIR="${GITHUB_WORKSPACE}/CSFML-nuget/runtimes/osx-x64/native/" -DCTGUI_HAS_BACKEND_CSFML_GRAPHICS=ON -DBUILD_SHARED_LIBS=ON -DCTGUI_LINK_TGUI_STATICALLY=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -D 'CMAKE_INSTALL_RPATH=@loader_path' -DCMAKE_INSTALL_PREFIX=CTGUI-x64 | |
cmake --build CTGUI-build-x64 --config Release --target install | |
mkdir -p runtimes/osx-x64/native | |
cp -a CTGUI/lib/libctgui.so* runtimes/osx-x64/native/ | |
- name: Build ARM64 | |
run: | | |
cmake -B TGUI-build-arm64 -S TGUI-${{ env.TGUI_VERSION }} -G "Unix Makefiles" -DCMAKE_OSX_ARCHITECTURES=arm64 -DTGUI_BACKEND=Custom -DTGUI_BUILD_GUI_BUILDER=OFF -DTGUI_BUILD_FRAMEWORK=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=TGUI-arm64 | |
cmake --build TGUI-build-arm64 --config Release --target install | |
cmake -B CTGUI-build-arm64 -S CTGUI-${{ env.CTGUI_VERSION }} -G "Unix Makefiles" -DCMAKE_OSX_ARCHITECTURES=arm64 -DTGUI_ROOT="${GITHUB_WORKSPACE}/TGUI-arm64" -DCSFML_INCLUDE_DIR="${GITHUB_WORKSPACE}/CSFML-${{ env.CSFML_VERSION }}/include" -DCSFML_LIBRARIES_DIR="${GITHUB_WORKSPACE}/CSFML-nuget/runtimes/osx-arm64/native/" -DCTGUI_HAS_BACKEND_CSFML_GRAPHICS=ON -DBUILD_SHARED_LIBS=ON -DCTGUI_LINK_TGUI_STATICALLY=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -D 'CMAKE_INSTALL_RPATH=@loader_path' -DCMAKE_INSTALL_PREFIX=CTGUI-arm64 | |
cmake --build CTGUI-build-arm64 --config Release --target install | |
mkdir -p runtimes/osx-arm64/native | |
cp -a CTGUI/lib/libctgui.so* runtimes/osx-arm64/native/ | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: CTGUI-macOS-x64-arm64 | |
path: runtimes | |