android: vulkan: add support for libmesa_vulkan_util
authorMauro Rossi <issor.oruam@gmail.com>
Tue, 28 Feb 2017 00:24:41 +0000 (01:24 +0100)
committerEmil Velikov <emil.l.velikov@gmail.com>
Tue, 28 Feb 2017 00:24:41 +0000 (01:24 +0100)
The following changes are implemented:

Add src/vulkan/Android.mk to build libmesa_vulkan_util
Android.mk: add src/vulkan to SUBDIR to build new module
intel/vulkan: fix libmesa_vulkan_util,vk_enum_to_str.h dependencies
Add -o OUTPUT_PATH option in src/vulkan/util/gen_enum_to_str.py script
Use -o OUTPUT_PATH option in automake generation rules for vk_enum_to_str.{c,h}

Fixes: e9dcb17 "vulkan/util: Add generator for enum_to_str functions"
Fixes: 8e03250 "vulkan: Combine wsi and util makefiles"
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
[Emil Velikov]
 - Move parser within main()
 - Use --outdir instead of -o
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Android.mk
src/intel/vulkan/Android.mk
src/vulkan/Android.mk [new file with mode: 0644]
src/vulkan/Makefile.am
src/vulkan/util/gen_enum_to_str.py

index 33f1d1411315b0934afa6d3f8d1b796bd3f2b9e2..9afa415dd7447fcadd607ef11654f5494ee300c9 100644 (file)
@@ -97,7 +97,8 @@ SUBDIRS := \
        src/egl \
        src/amd \
        src/intel \
-       src/mesa/drivers/dri
+       src/mesa/drivers/dri \
+       src/vulkan
 
 INC_DIRS := $(call all-named-subdir-makefiles,$(SUBDIRS))
 
index 1e5397019a0cc07c30806e2d5dfad2e9b6b1508a..a6a7d263f6d9b11195aed46f99a442b951325dd5 100644 (file)
@@ -74,7 +74,8 @@ include $(BUILD_STATIC_LIBRARY)
 ANV_INCLUDES := \
        $(VULKAN_COMMON_INCLUDES) \
        $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_anv_entrypoints,,) \
-       $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_nir,,)/nir
+       $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_nir,,)/nir \
+       $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_vulkan_util,,)/util
 
 #
 # libanv for gen7
@@ -172,7 +173,10 @@ LOCAL_C_INCLUDES := \
        $(ANV_INCLUDES) \
        $(MESA_TOP)/src/compiler
 
-LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_anv_entrypoints libmesa_genxml
+LOCAL_WHOLE_STATIC_LIBRARIES := \
+       libmesa_anv_entrypoints \
+       libmesa_genxml \
+       libmesa_vulkan_util
 
 LOCAL_GENERATED_SOURCES += $(intermediates)/anv_entrypoints.c
 
diff --git a/src/vulkan/Android.mk b/src/vulkan/Android.mk
new file mode 100644 (file)
index 0000000..b8ed706
--- /dev/null
@@ -0,0 +1,55 @@
+# Copyright © 2017 Mauro Rossi <issor.oruam@gmail.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+
+LOCAL_PATH := $(call my-dir)
+
+# Import variables
+include $(LOCAL_PATH)/Makefile.sources
+
+#
+# libmesa_vulkan_util
+#
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libmesa_vulkan_util
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+
+intermediates := $(call local-generated-sources-dir)
+
+LOCAL_C_INCLUDES := \
+       $(MESA_TOP)/include/vulkan
+
+LOCAL_GENERATED_SOURCES := \
+       $(intermediates)/util/vk_enum_to_str.c \
+       $(intermediates)/util/vk_enum_to_str.h
+
+vulkan_api_xml = $(MESA_TOP)/src/vulkan/registry/vk.xml
+
+$(LOCAL_GENERATED_SOURCES): $(MESA_TOP)/src/vulkan/util/gen_enum_to_str.py $(vulkan_api_xml)
+       @echo "target Generated: $(PRIVATE_MODULE) <= $(notdir $(@))"
+       @mkdir -p $(dir $@)
+       $(hide) $(MESA_PYTHON2) $(MESA_TOP)/src/vulkan/util/gen_enum_to_str.py --outdir $(intermediates)/util
+
+LOCAL_EXPORT_C_INCLUDE_DIRS := \
+        $(intermediates)
+
+include $(MESA_COMMON_MK)
+include $(BUILD_STATIC_LIBRARY)
index 5cdffbf901e6e2410bb9eaeeeb1f707289112dc1..072e45e3469b966eaf7856ec88f3ee643cc670d3 100644 (file)
@@ -17,7 +17,7 @@ BUILT_SOURCES = \
 
 util/vk_enum_to_str.c util/vk_enum_to_str.h: util/gen_enum_to_str.py $(vulkan_api_xml)
        $(MKDIR_GEN)
-       $(PYTHON_GEN) $(srcdir)/util/gen_enum_to_str.py
+       $(PYTHON_GEN) $(srcdir)/util/gen_enum_to_str.py --outdir $(top_builddir)/src/vulkan/util
 
 libvulkan_util_la_SOURCES = $(VULKAN_UTIL_FILES)
 
index 4b6fdf3b3de59a6ebdf293f4cd9b970e6c82ed7f..8c11569b6aed3dda75079116efae832b3762151c 100644 (file)
@@ -22,6 +22,7 @@
 """Create enum to string functions for vulking using vk.xml."""
 
 from __future__ import print_function
+import argparse
 import os
 import textwrap
 import xml.etree.cElementTree as et
@@ -158,9 +159,16 @@ def xml_parser(filename):
 
 
 def main():
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--outdir',
+                        help='Directory to put the generated files in',
+                        required=True)
+
+    args = parser.parse_args()
+
     enums = xml_parser(VK_XML)
-    for template, file_ in [(C_TEMPLATE, 'util/vk_enum_to_str.c'),
-                            (H_TEMPLATE, 'util/vk_enum_to_str.h')]:
+    for template, file_ in [(C_TEMPLATE, os.path.join(args.outdir, 'vk_enum_to_str.c')),
+                            (H_TEMPLATE, os.path.join(args.outdir, 'vk_enum_to_str.h'))]:
         with open(file_, 'wb') as f:
             f.write(template.render(
                 file=os.path.basename(__file__),