addpkg(main): vulkan-validation-layers

This commit is contained in:
Jia Yuan Lo 2023-07-30 23:42:16 +08:00
parent f980e51316
commit 9810cad994
4 changed files with 76 additions and 0 deletions

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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}"
}