diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4f3ca3e..d51c3d3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -119,7 +119,7 @@ jobs: - name: Build (iOS) run: | - modules=("SDL3" "SDL3_image" "SDL3_ttf" "SDL3_mixer") + modules=("SDL3" "SDL3_image" "SDL3_ttf" "SDL3_mixer" "SDL_shadercross") architectures=("ios-arm64" "ios-arm64_x86_64-simulator") for module in "${modules[@]}"; do diff --git a/.gitmodules b/.gitmodules index 9d6b2af..ad5ce7f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,3 +13,6 @@ path = External/SDL_mixer url = https://github.com/libsdl-org/SDL_mixer.git branch = main +[submodule "External/SDL_shadercross"] + path = External/SDL_shadercross + url = https://github.com/libsdl-org/SDL_shadercross.git diff --git a/External/SDL_shadercross b/External/SDL_shadercross new file mode 160000 index 0000000..4ce7483 --- /dev/null +++ b/External/SDL_shadercross @@ -0,0 +1 @@ +Subproject commit 4ce748310f57d405b4eb2a79fbbc7e974d6491ec diff --git a/External/build.sh b/External/build.sh index ca01125..f0316ac 100755 --- a/External/build.sh +++ b/External/build.sh @@ -52,6 +52,7 @@ if [[ $BUILD_PLATFORM != 'Android' ]]; then wayland-scanner++ \ wayland-protocols \ meson \ + patchelf \ pkg-config$TARGET_APT_ARCH \ libasound2-dev$TARGET_APT_ARCH \ libdbus-1-dev$TARGET_APT_ARCH \ @@ -115,6 +116,7 @@ if [[ $RUNNER_OS == 'Linux' ]]; then git config --global --add safe.directory $PWD/SDL_image git config --global --add safe.directory $PWD/SDL_ttf git config --global --add safe.directory $PWD/SDL_mixer + git config --global --add safe.directory $PWD/SDL_shadercross fi CMAKE_INSTALL_PREFIX="$PWD/install_output" @@ -159,9 +161,20 @@ run_cmake() { cmake --build build/ --config $BUILD_TYPE --verbose cmake --install build/ --prefix $CMAKE_INSTALL_PREFIX --config $BUILD_TYPE + # Add loader rpath + if [[ $BUILD_PLATFORM == 'Linux' ]]; then + patchelf $CMAKE_INSTALL_PREFIX/$LIB_OUTPUT --add-rpath "\$ORIGIN" + elif [[ $BUILD_PLATFORM == 'macOS' ]]; then + install_name_tool $CMAKE_INSTALL_PREFIX/$LIB_OUTPUT -add_rpath "@loader_path" + fi + # Move build lib into correct folders cp $CMAKE_INSTALL_PREFIX/$LIB_OUTPUT ../../native/$NATIVE_PATH + if [[ $LIB_NAME == 'SDL_shadercross' ]]; then + cp $CMAKE_INSTALL_PREFIX/${OUTPUT_LIB/SDL3variant/spirv-cross-c-shared} ../../native/$NATIVE_PATH + fi + popd } @@ -181,4 +194,8 @@ run_cmake SDL_image ${OUTPUT_LIB/variant/_image} -DCMAKE_PREFIX_PATH=$CMAKE_PREF # See: https://github.com/libsdl-org/SDL_mixer/issues/745 run_cmake SDL_mixer ${OUTPUT_LIB/variant/_mixer} -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH -DSDLMIXER_MP3_MPG123=OFF -DSDLMIXER_FLAC_LIBFLAC=OFF -DSDLMIXER_DEPS_SHARED=OFF -DSDLMIXER_VENDORED=ON +# Build SDL_shadercross +run_cmake SDL_shadercross ${OUTPUT_LIB/variant/_shadercross} -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH -DSDLSHADERCROSS_DXC=OFF -DSDLSHADERCROSS_INSTALL=ON -DSDLSHADERCROSS_SHARED=ON -DSDLSHADERCROSS_VENDORED=ON + popd +