From 3eab5b3ec9eb160655799ac59bbfaca72f458fa6 Mon Sep 17 00:00:00 2001 From: Bruno Van de Velde Date: Fri, 29 Nov 2024 22:41:52 +0100 Subject: [PATCH] WIP CTGUI nuget runtimes --- .github/workflows/CTGUI-nuget-runtimes.yml | 178 +-------------------- 1 file changed, 5 insertions(+), 173 deletions(-) diff --git a/.github/workflows/CTGUI-nuget-runtimes.yml b/.github/workflows/CTGUI-nuget-runtimes.yml index f744690..8c7a6cc 100644 --- a/.github/workflows/CTGUI-nuget-runtimes.yml +++ b/.github/workflows/CTGUI-nuget-runtimes.yml @@ -25,10 +25,10 @@ jobs: 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 + ren 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 + ren 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 @@ -58,174 +58,6 @@ jobs: 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/run-on-arch-action@v2.7.2 - 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/run-on-arch-action@v2.7.2 - 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 @@ -233,7 +65,7 @@ jobs: steps: - name: Download dependencies run: | - brew install coreutils wget + brew install coreutils 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 @@ -247,7 +79,7 @@ jobs: 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/ + cp -a CTGUI/lib/libctgui*.dylib runtimes/osx-x64/native/ - name: Build ARM64 run: | @@ -256,7 +88,7 @@ jobs: 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/ + cp -a CTGUI/lib/libctgui*.dylib runtimes/osx-arm64/native/ - name: Upload Artifact uses: actions/upload-artifact@v4