vulkan/registry: Feed vk_android_native_buffer.xml to gen_enum_to_str.py
Tested on Android and Fedora. Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
This commit is contained in:
parent
7f57e58e27
commit
2d1fac119f
|
@ -44,11 +44,16 @@ LOCAL_GENERATED_SOURCES := $(addprefix $(intermediates)/, \
|
|||
LOCAL_SRC_FILES := $(VULKAN_UTIL_FILES)
|
||||
|
||||
vulkan_api_xml = $(MESA_TOP)/src/vulkan/registry/vk.xml
|
||||
vk_android_native_buffer_xml = $(MESA_TOP)/src/vulkan/registry/vk_android_native_buffer.xml
|
||||
|
||||
$(LOCAL_GENERATED_SOURCES): $(MESA_TOP)/src/vulkan/util/gen_enum_to_str.py $(vulkan_api_xml)
|
||||
$(LOCAL_GENERATED_SOURCES): $(MESA_TOP)/src/vulkan/util/gen_enum_to_str.py \
|
||||
$(vulkan_api_xml) $(vk_android_native_buffer_xml)
|
||||
@echo "target Generated: $(PRIVATE_MODULE) <= $(notdir $(@))"
|
||||
@mkdir -p $(dir $@)
|
||||
$(hide) $(MESA_PYTHON2) $(MESA_TOP)/src/vulkan/util/gen_enum_to_str.py --xml $(vulkan_api_xml) --outdir $(dir $@)
|
||||
$(hide) $(MESA_PYTHON2) $(MESA_TOP)/src/vulkan/util/gen_enum_to_str.py \
|
||||
--xml $(vulkan_api_xml) \
|
||||
--xml $(vk_android_native_buffer_xml) \
|
||||
--outdir $(dir $@)
|
||||
|
||||
LOCAL_EXPORT_C_INCLUDE_DIRS := \
|
||||
$(intermediates)
|
||||
|
|
|
@ -4,6 +4,7 @@ noinst_LTLIBRARIES = libvulkan_wsi.la libvulkan_util.la
|
|||
|
||||
vulkan_includedir = $(includedir)/vulkan
|
||||
vulkan_api_xml = $(top_srcdir)/src/vulkan/registry/vk.xml
|
||||
vk_android_native_buffer_xml = $(top_srcdir)/src/vulkan/registry/vk_android_native_buffer.xml
|
||||
|
||||
MKDIR_GEN = $(AM_V_at)$(MKDIR_P) $(@D)
|
||||
PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS)
|
||||
|
@ -18,9 +19,13 @@ VULKAN_UTIL_SOURCES = \
|
|||
BUILT_SOURCES = \
|
||||
$(VULKAN_UTIL_GENERATED_FILES)
|
||||
|
||||
util/vk_enum_to_str.c util/vk_enum_to_str.h: util/gen_enum_to_str.py $(vulkan_api_xml)
|
||||
util/vk_enum_to_str.c util/vk_enum_to_str.h: util/gen_enum_to_str.py \
|
||||
$(vulkan_api_xml) $(vk_android_native_buffer_xml)
|
||||
$(MKDIR_GEN)
|
||||
$(PYTHON_GEN) $(srcdir)/util/gen_enum_to_str.py --xml $(vulkan_api_xml) --outdir $(top_builddir)/src/vulkan/util
|
||||
$(PYTHON_GEN) $(srcdir)/util/gen_enum_to_str.py \
|
||||
--xml $(vulkan_api_xml) \
|
||||
--xml $(vk_android_native_buffer_xml) \
|
||||
--outdir $(top_builddir)/src/vulkan/util
|
||||
|
||||
libvulkan_util_la_SOURCES = $(VULKAN_UTIL_SOURCES)
|
||||
|
||||
|
|
|
@ -58,6 +58,7 @@ C_TEMPLATE = Template(textwrap.dedent(u"""\
|
|||
*/
|
||||
|
||||
#include <vulkan/vulkan.h>
|
||||
#include <vulkan/vk_android_native_buffer.h>
|
||||
#include "util/macros.h"
|
||||
#include "vk_enum_to_str.h"
|
||||
|
||||
|
@ -68,8 +69,17 @@ C_TEMPLATE = Template(textwrap.dedent(u"""\
|
|||
{
|
||||
switch(input) {
|
||||
% for v in enum.values:
|
||||
% if v in FOREIGN_ENUM_VALUES:
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wswitch"
|
||||
% endif
|
||||
case ${v}:
|
||||
return "${v}";
|
||||
% if v in FOREIGN_ENUM_VALUES:
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
% endif
|
||||
% endfor
|
||||
default:
|
||||
unreachable("Undefined enum value.");
|
||||
|
@ -89,6 +99,7 @@ H_TEMPLATE = Template(textwrap.dedent(u"""\
|
|||
#define MESA_VK_ENUM_TO_STR_H
|
||||
|
||||
#include <vulkan/vulkan.h>
|
||||
#include <vulkan/vk_android_native_buffer.h>
|
||||
|
||||
% for enum in enums:
|
||||
const char * vk_${enum.name[2:]}_to_str(${enum.name} input);
|
||||
|
@ -97,6 +108,12 @@ H_TEMPLATE = Template(textwrap.dedent(u"""\
|
|||
#endif"""),
|
||||
output_encoding='utf-8')
|
||||
|
||||
# These enums are defined outside their respective enum blocks, and thus cause
|
||||
# -Wswitch warnings.
|
||||
FOREIGN_ENUM_VALUES = [
|
||||
"VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID",
|
||||
]
|
||||
|
||||
|
||||
class EnumFactory(object):
|
||||
"""Factory for creating enums."""
|
||||
|
@ -175,7 +192,8 @@ def main():
|
|||
f.write(template.render(
|
||||
file=os.path.basename(__file__),
|
||||
enums=efactory.registry.values(),
|
||||
copyright=COPYRIGHT))
|
||||
copyright=COPYRIGHT,
|
||||
FOREIGN_ENUM_VALUES=FOREIGN_ENUM_VALUES))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
Loading…
Reference in New Issue