Skip to content
Snippets Groups Projects
Commit 69f935aa authored by Alexandre Janniaux's avatar Alexandre Janniaux Committed by Steve Lhomme
Browse files

contrib: vulkan-headers: detect current version

Automatically enable the headers, but detect the currently available
header version with cppcheck since the pkgconfig file will actually
detect the version of the loader.

cppcheck cannot understand the full header version, which was also not
available before 1.3 anyway. Moreover, the major and minor versions are
not defined directly, but instead either through cast or not at all
(before 1.3), so we use the header guards defines and the
VK_HEADER_VERSION for the last patch revision number, which directly
matches the actual package revision.

v1.3.239 is the version provided by the vulkan-loader package on debian
bookworm, and the main constraint we have is the presence of the
vulkan/vulkan_beta.h header which should be present and the presence or
absence of the old/new video_decode extension that was promoted. 238 is
the first revision removing the previous video_decode extension and
adding the new one.

Tested on linux with headers present and android with system header
being obsolete.
parent f6d0107d
No related branches found
No related tags found
1 merge request!5019contrib: vulkan-headers: detect current version
Pipeline #446459 passed with stage
in 52 minutes and 37 seconds
......@@ -3,6 +3,28 @@ VULKAN_HEADERS_URL := $(GITHUB)/KhronosGroup/Vulkan-Headers/archive/v$(VULKAN_HE
DEPS_vulkan-headers =
VULKAN_HEADERS_MIN_VERSION := 1.3.219
VULKAN_HEADERS_MIN_VERSION_LIST := $(subst ., ,$(VULKAN_HEADERS_MIN_VERSION))
VULKAN_HEADERS_MIN_VERSION_NAME := $(subst $() ,_,$(wordlist 1,2,$(VULKAN_HEADERS_MIN_VERSION_LIST)))
# VK_MAKE_API_VERSION uses (uint32_t) casts which prevent the preprocessor
# from understanding comparisons against a specific patch version. Use the
# VK_VERSION_X_Y header guard defines instead to detect major/minor, and
# then use VK_HEADER_VERSION which is not defined as a cast for the patch
# version.
define VULKAN_HEADERS_CHECK := # include <vulkan/vulkan_core.h> \n
# if defined(VK_VERSION_$(VULKAN_HEADERS_MIN_VERSION_NAME))) \\n
# && VK_HEADER_VERSION >= $(lastword $(VULKAN_HEADERS_MIN_VERSION_LIST)) \n
# define VULKAN_HEADERS_OK \n
# endif \n
endef
PKGS += vulkan-headers
ifneq ($(call cppcheck, VULKAN_HEADERS_OK, $(VULKAN_HEADERS_CHECK)),)
PKGS_FOUND += vulkan-headers
endif
$(TARBALLS)/Vulkan-Headers-$(VULKAN_HEADERS_VERSION).tar.gz:
$(call download_pkg,$(VULKAN_HEADERS_URL),vulkan-headers)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment