Export Vulkan headers in build config files

Change-Id: I2a9d2c86e8dbd2a394d23922dbce6e18336527fa
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..5ef59a0
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,27 @@
+package {
+    default_applicable_licenses: ["external_gfxstream-protocols_license"],
+}
+
+license {
+    name: "external_gfxstream-protocols_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-Apache-2.0",
+        "SPDX-license-identifier-BSD",
+        "SPDX-license-identifier-CC-BY-4.0",
+        "SPDX-license-identifier-MIT",
+    ],
+    license_text: [
+        "LICENSE",
+    ],
+}
+
+cc_library_headers {
+    name: "gfxstream_vulkan_headers",
+    export_include_dirs: ["include/vulkan/include"],
+    host_supported: true,
+    apex_available: [
+        "//apex_available:platform",
+        "com.android.virt",
+    ],
+}
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..2f40bec
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,7 @@
+project(gfxstream-protocols)
+cmake_minimum_required(VERSION 3.11)
+
+add_library(gfxstream_vulkan_headers INTERFACE)
+target_include_directories(
+    gfxstream_vulkan_headers
+    INTERFACE include/vulkan/include)
diff --git a/include/vulkan/include/vulkan/vulkan_core.h b/include/vulkan/include/vulkan/vulkan_core.h
index 03d6f7a..0e54314 100644
--- a/include/vulkan/include/vulkan/vulkan_core.h
+++ b/include/vulkan/include/vulkan/vulkan_core.h
@@ -910,6 +910,7 @@
     VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE = 1000385000,
     VK_STRUCTURE_TYPE_IMPORT_PHYSICAL_ADDRESS_GOOGLE = 1000385001,
     VK_STRUCTURE_TYPE_IMPORT_BUFFER_HANDLE_GOOGLE = 1000385002,
+    VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE = 1000385003,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
diff --git a/registry/vulkan/scripts/cerealgenerator.py b/registry/vulkan/scripts/cerealgenerator.py
index 3b43a91..0ffc632 100644
--- a/registry/vulkan/scripts/cerealgenerator.py
+++ b/registry/vulkan/scripts/cerealgenerator.py
@@ -138,6 +138,7 @@
             envGetOrDefault("VK_CEREAL_BASELIB_PREFIX", "android/base")
         self.baseLibLinkName = \
             envGetOrDefault("VK_CEREAL_BASELIB_LINKNAME", "android-emu-base")
+        self.vulkanHeaderTargetName = envGetOrDefault("VK_CEREAL_VK_HEADER_TARGET", "")
 
         self.host_cmake_generator = lambda cppFiles: f"""{autogeneratedMkTemplate % banner_command(sys.argv)}
 add_library(OpenglRender_vulkan_cereal {cppFiles})
@@ -145,7 +146,7 @@
 if (WIN32)
     target_compile_definitions(OpenglRender_vulkan_cereal PRIVATE -DVK_USE_PLATFORM_WIN32_KHR)
 endif()
-target_link_libraries(OpenglRender_vulkan_cereal PUBLIC {self.baseLibLinkName})
+target_link_libraries(OpenglRender_vulkan_cereal PUBLIC {self.baseLibLinkName} {self.vulkanHeaderTargetName})
 
 target_include_directories(OpenglRender_vulkan_cereal
                            PUBLIC
diff --git a/registry/vulkan/xml/vk.xml b/registry/vulkan/xml/vk.xml
index 89d400f..d9e0bce 100644
--- a/registry/vulkan/xml/vk.xml
+++ b/registry/vulkan/xml/vk.xml
@@ -17651,6 +17651,7 @@
                 <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE"/>
                 <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_IMPORT_PHYSICAL_ADDRESS_GOOGLE"/>
                 <enum offset="2" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_IMPORT_BUFFER_HANDLE_GOOGLE"/>
+                <enum offset="3" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE"/>
                 <type name="VkImportColorBufferGOOGLE"/>
                 <type name="VkImportBufferGOOGLE"/>
                 <type name="VkImportPhysicalAddressGOOGLE"/>
diff --git a/scripts/generate-vulkan-sources.sh b/scripts/generate-vulkan-sources.sh
index 937f821..f870e28 100755
--- a/scripts/generate-vulkan-sources.sh
+++ b/scripts/generate-vulkan-sources.sh
@@ -42,6 +42,7 @@
 export VK_CEREAL_HOST_INCLUDE_DIR=$AOSP_DIR/device/generic/vulkan-cereal/stream-servers
 export VK_CEREAL_BASELIB_PREFIX=base
 export VK_CEREAL_BASELIB_LINKNAME=gfxstream-base.headers
+export VK_CEREAL_VK_HEADER_TARGET=gfxstream_vulkan_headers
 
 VK_CEREAL_OUTPUT_DIR=$VK_CEREAL_HOST_DECODER_DIR/cereal
 mkdir -p $VK_CEREAL_GUEST_HAL_DIR
diff --git a/scripts/print_gfx_logs/vulkan_printer.py b/scripts/print_gfx_logs/vulkan_printer.py
index 2873225..2f61e4b 100644
--- a/scripts/print_gfx_logs/vulkan_printer.py
+++ b/scripts/print_gfx_logs/vulkan_printer.py
@@ -2376,6 +2376,7 @@
     1000385000: "VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE",
     1000385001: "VK_STRUCTURE_TYPE_IMPORT_PHYSICAL_ADDRESS_GOOGLE",
     1000385002: "VK_STRUCTURE_TYPE_IMPORT_BUFFER_HANDLE_GOOGLE",
+    1000385003: "VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE",
 }
 
 VkSubpassContents = {