diff --git a/packages/vulkan-validation-layers/0001-no-android.patch b/packages/vulkan-validation-layers/0001-no-android.patch new file mode 100644 index 0000000000..ae0e52abf5 --- /dev/null +++ b/packages/vulkan-validation-layers/0001-no-android.patch @@ -0,0 +1,31 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -41,7 +41,7 @@ + + # Allow usage of unsafe CRT functions and minimize what Windows.h leaks + add_compile_definitions(_CRT_SECURE_NO_WARNINGS NOMINMAX WIN32_LEAN_AND_MEAN) +-elseif(ANDROID) ++elseif(0 AND ANDROID) + add_compile_definitions(VK_USE_PLATFORM_ANDROID_KHR) + elseif(APPLE) + add_compile_definitions(VK_USE_PLATFORM_METAL_EXT) +--- a/layers/CMakeLists.txt ++++ b/layers/CMakeLists.txt +@@ -350,7 +350,7 @@ + endif() + # Both Apple and IOS + target_link_options(vvl PRIVATE -exported_symbols_list ${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.exp) +-elseif(ANDROID) ++elseif(0 AND ANDROID) + target_link_options(vvl PRIVATE LINKER:--version-script=${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}-android.map) + else() + target_link_options(vvl PRIVATE LINKER:--version-script=${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.map) +@@ -384,7 +384,7 @@ + + target_include_directories(vvl SYSTEM PRIVATE external) + +-if (ANDROID) ++if (0 AND ANDROID) + # https://gitlab.kitware.com/cmake/cmake/issues/18787 + # https://github.com/android-ndk/ndk/issues/463 + # "Users should be able to reliably use the toolchain provided by the NDK r23 or later when using CMake 3.21 or later" - Professional CMake diff --git a/packages/vulkan-validation-layers/0002-getenv.patch b/packages/vulkan-validation-layers/0002-getenv.patch new file mode 100644 index 0000000000..60595fa77a --- /dev/null +++ b/packages/vulkan-validation-layers/0002-getenv.patch @@ -0,0 +1,11 @@ +--- a/layers/vk_layer_config.cpp ++++ b/layers/vk_layer_config.cpp +@@ -74,7 +74,7 @@ + #endif + + std::string GetEnvironment(const char *variable) { +-#if !defined(__ANDROID__) && !defined(_WIN32) ++#if !defined(__ANDROID__) && !defined(_WIN32) || defined(__TERMUX__) + const char *output = getenv(variable); + return output == NULL ? "" : output; + #elif defined(_WIN32) diff --git a/packages/vulkan-validation-layers/0003-layers-utils-android_ndk_types.h.patch b/packages/vulkan-validation-layers/0003-layers-utils-android_ndk_types.h.patch new file mode 100644 index 0000000000..d27a23758b --- /dev/null +++ b/packages/vulkan-validation-layers/0003-layers-utils-android_ndk_types.h.patch @@ -0,0 +1,11 @@ +--- a/layers/utils/android_ndk_types.h ++++ b/layers/utils/android_ndk_types.h +@@ -29,7 +29,7 @@ + + #pragma once + +-#if defined(__ANDROID__) && !defined(VK_USE_PLATFORM_ANDROID_KHR) ++#if defined(__ANDROID__) && !defined(VK_USE_PLATFORM_ANDROID_KHR) && !defined(__TERMUX__) + #error "VK_USE_PLATFORM_ANDROID_KHR not defined for Android build!" + #endif + diff --git a/packages/vulkan-validation-layers/build.sh b/packages/vulkan-validation-layers/build.sh new file mode 100644 index 0000000000..8b36304fb6 --- /dev/null +++ b/packages/vulkan-validation-layers/build.sh @@ -0,0 +1,23 @@ +TERMUX_PKG_HOMEPAGE=https://github.com/KhronosGroup/Vulkan-ValidationLayers +TERMUX_PKG_DESCRIPTION="Vulkan Validation Layers" +TERMUX_PKG_LICENSE="Apache-2.0" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION="1.3.281" +TERMUX_PKG_SRCURL=https://github.com/KhronosGroup/Vulkan-ValidationLayers/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_SHA256=7b13853d81ac106dceeb8768f010fade7b94ee2283ee09e356a74a27ca468da5 +TERMUX_PKG_DEPENDS="libc++, vulkan-loader" +TERMUX_PKG_BUILD_DEPENDS="libwayland, libx11, libxcb, libxrandr, spirv-headers, spirv-tools, vulkan-headers (=${TERMUX_PKG_VERSION}), vulkan-utility-libraries (=${TERMUX_PKG_VERSION})" +TERMUX_PKG_ANTI_BUILD_DEPENDS="vulkan-loader" +TERMUX_PKG_AUTO_UPDATE=true +TERMUX_PKG_UPDATE_VERSION_REGEXP="\d+\.\d+\.\d+" + +termux_pkg_auto_update() { + local api_url="https://api.github.com/repos/KhronosGroup/Vulkan-ValidationLayers/git/refs/tags" + local latest_refs_tags=$(curl -s "${api_url}" | jq .[].ref | grep -oP v${TERMUX_PKG_UPDATE_VERSION_REGEXP} | sort) + if [[ -z "${latest_refs_tags}" ]]; then + echo "WARN: Unable to get latest refs tags from upstream. Try again later." >&2 + return + fi + local latest_version=$(echo "${latest_refs_tags}" | tail -n1) + termux_pkg_upgrade_version "${latest_version}" +}