From 29392287488d87df417d5bdeba121a1cbcbfc2fd Mon Sep 17 00:00:00 2001 From: termux-pacman-bot Date: Sun, 8 Oct 2023 13:01:36 +0000 Subject: [PATCH] addpkg(main): spirv-headers, spirv-tools, shaderc (#18185) * fix(main/glslang): link with system spirv-tools and enable building static --- packages/glslang/build.sh | 16 ++++++++++++-- packages/shaderc/build.sh | 19 ++++++++++++++++ packages/spirv-headers/build.sh | 32 +++++++++++++++++++++++++++ packages/spirv-tools/build.sh | 39 +++++++++++++++++++++++++++++++++ 4 files changed, 104 insertions(+), 2 deletions(-) create mode 100644 packages/shaderc/build.sh create mode 100755 packages/spirv-headers/build.sh create mode 100755 packages/spirv-tools/build.sh diff --git a/packages/glslang/build.sh b/packages/glslang/build.sh index 1db4958110..b7794e8b76 100644 --- a/packages/glslang/build.sh +++ b/packages/glslang/build.sh @@ -3,11 +3,23 @@ TERMUX_PKG_DESCRIPTION="OpenGL and OpenGL ES shader front end and validator" TERMUX_PKG_LICENSE="BSD" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="13.0.0" -TERMUX_PKG_SRCURL=https://github.com/KhronosGroup/glslang/archive/${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_REVISION=1 +TERMUX_PKG_SRCURL=https://github.com/KhronosGroup/glslang/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=bcda732434f829aa74414ea0e06d329ec8ac28637c38a0de45e17c8fd25a4715 TERMUX_PKG_DEPENDS="libc++" +TERMUX_PKG_BUILD_DEPENDS="spirv-tools" TERMUX_PKG_NO_STATICSPLIT=true TERMUX_PKG_AUTO_UPDATE=true TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" --DBUILD_SHARED_LIBS=ON +-DALLOW_EXTERNAL_SPIRV_TOOLS=ON " + +termux_step_post_make_install() { + # build system only build static or shared at a time + TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" + -DBUILD_SHARED_LIBS=ON + " + termux_step_configure + termux_step_make + termux_step_make_install +} diff --git a/packages/shaderc/build.sh b/packages/shaderc/build.sh new file mode 100644 index 0000000000..39ef14aea9 --- /dev/null +++ b/packages/shaderc/build.sh @@ -0,0 +1,19 @@ +TERMUX_PKG_HOMEPAGE=https://github.com/google/shaderc +TERMUX_PKG_DESCRIPTION="Collection of tools, libraries, and tests for Vulkan shader compilation" +TERMUX_PKG_LICENSE="Apache-2.0" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION="2023.6" +TERMUX_PKG_SRCURL=https://github.com/google/shaderc/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_SHA256=e40fd4a87a56f6610e223122179f086d5c4f11a7e0e2aa461f0325c3a0acc6ae +TERMUX_PKG_DEPENDS="libc++" +TERMUX_PKG_CONFLICTS="glslang, spirv-tools" +TERMUX_PKG_NO_STATICSPLIT=true +TERMUX_PKG_AUTO_UPDATE=true +TERMUX_PKG_UPDATE_TAG_TYPE="newest-tag" +TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" +-DSHADERC_SKIP_TESTS=ON +" + +termux_step_post_get_source() { + ./utils/git-sync-deps +} diff --git a/packages/spirv-headers/build.sh b/packages/spirv-headers/build.sh new file mode 100755 index 0000000000..87c655fdea --- /dev/null +++ b/packages/spirv-headers/build.sh @@ -0,0 +1,32 @@ +TERMUX_PKG_HOMEPAGE=https://github.com/KhronosGroup/SPIRV-Headers +TERMUX_PKG_DESCRIPTION="SPIR-V Headers" +TERMUX_PKG_LICENSE="Apache-2.0" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION="1.3.261.1" +TERMUX_PKG_SRCURL=https://github.com/KhronosGroup/SPIRV-Headers/archive/refs/tags/sdk-${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_SHA256=32b4c6ae6a2fa9b56c2c17233c8056da47e331f76e117729925825ea3e77a739 +TERMUX_PKG_PLATFORM_INDEPENDENT=true +TERMUX_PKG_AUTO_UPDATE=true + +termux_pkg_auto_update() { + local e=0 + local api_url="https://api.github.com/repos/KhronosGroup/SPIRV-Headers/git/refs/tags" + local api_url_r=$(curl -s "${api_url}") + local r1=$(echo "${api_url_r}" | jq .[].ref | sed -nE "s|.*/(sdk-.*)\"|\1|p") + local latest_version=$(echo "${r1}" | tail -n1) + [[ -z "${api_url_r}" ]] && e=1 + [[ -z "${r1}" ]] && e=1 + [[ -z "${latest_version}" ]] && e=1 + + if [[ "${e}" != 0 ]]; then + cat <<- EOL >&2 + WARN: Auto update failure! + api_url_r=${api_url_r} + r1=${r1} + latest_version=${latest_version} + EOL + return + fi + + termux_pkg_upgrade_version "${latest_version//sdk-}" +} diff --git a/packages/spirv-tools/build.sh b/packages/spirv-tools/build.sh new file mode 100755 index 0000000000..39fdaaf113 --- /dev/null +++ b/packages/spirv-tools/build.sh @@ -0,0 +1,39 @@ +TERMUX_PKG_HOMEPAGE=https://github.com/KhronosGroup/SPIRV-Tools +TERMUX_PKG_DESCRIPTION="SPIR-V Tools" +TERMUX_PKG_LICENSE="Apache-2.0" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION="1.3.261.1" +TERMUX_PKG_SRCURL=https://github.com/KhronosGroup/SPIRV-Tools/archive/refs/tags/sdk-${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_SHA256=ead95c626ad482882a141d1aa0ce47b9453871f72c42c0b28d39c82f60a52008 +TERMUX_PKG_DEPENDS="libc++" +TERMUX_PKG_BUILD_DEPENDS="spirv-headers (=${TERMUX_PKG_VERSION})" +TERMUX_PKG_NO_STATICSPLIT=true +TERMUX_PKG_AUTO_UPDATE=true +TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" +-DSPIRV-Headers_SOURCE_DIR=${TERMUX_PREFIX} +-DSPIRV_WERROR=OFF +" + +termux_pkg_auto_update() { + # use versions from sdk-* and not vYEAR.* to match spirv-headers + local e=0 + local api_url="https://api.github.com/repos/KhronosGroup/SPIRV-Tools/git/refs/tags" + local api_url_r=$(curl -s "${api_url}") + local r1=$(echo "${api_url_r}" | jq .[].ref | sed -nE "s|.*/(sdk-.*)\"|\1|p") + local latest_version=$(echo "${r1}" | tail -n1) + [[ -z "${api_url_r}" ]] && e=1 + [[ -z "${r1}" ]] && e=1 + [[ -z "${latest_version}" ]] && e=1 + + if [[ "${e}" != 0 ]]; then + cat <<- EOL >&2 + WARN: Auto update failure! + api_url_r=${api_url_r} + r1=${r1} + latest_version=${latest_version} + EOL + return + fi + + termux_pkg_upgrade_version "${latest_version//sdk-}" +}