aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYilong Li <liyl@google.com>2025-02-16 01:41:18 -0800
committerCharles Giessen <46324611+charles-lunarg@users.noreply.github.com>2025-02-18 03:54:05 -0600
commitb4061dbbe5392947ad4cc176f823972080197ce4 (patch)
tree9d5e95302adabe79c09a68d76807af726ff07dda
parenta9f88a232a4cd6634e47f0f93c8fac5789387a7a (diff)
downloadusermoji-b4061dbbe5392947ad4cc176f823972080197ce4.tar.xz
vulkaninfo: Support Fuchsia
This change adds Fuchsia-specific build files and metadata for vulkaninfo so that it builds on Fuchsia. Test: vulkaninfo on Fuchsia Bug: https://fxbug.dev/378964821 Change-Id: I069b808394995db94b109c15d18dd6797a97c534
-rw-r--r--vulkaninfo/BUILD.gn79
-rw-r--r--vulkaninfo/fuchsia/meta/vulkaninfo.cml23
2 files changed, 102 insertions, 0 deletions
diff --git a/vulkaninfo/BUILD.gn b/vulkaninfo/BUILD.gn
new file mode 100644
index 00000000..5bc2d03b
--- /dev/null
+++ b/vulkaninfo/BUILD.gn
@@ -0,0 +1,79 @@
+# Copyright (C) 2025 The Fuchsia Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//build_overrides/vulkan_tools.gni")
+if (is_fuchsia) {
+ import("//build/components.gni")
+ import("//src/lib/vulkan/vulkan.gni")
+}
+
+config("vulkaninfo_warnings") {
+ cflags = [
+ "-Wno-conversion",
+ "-Wno-implicit-fallthrough",
+ "-Wno-missing-field-initializers",
+ "-Wno-extra-semi",
+ "-Wno-ambiguous-reversed-operator",
+ ]
+}
+
+executable("vulkaninfo") {
+ sources = [ "vulkaninfo.cpp" ]
+
+ include_dirs = [
+ ".",
+ "generated",
+ ]
+
+ deps = [ "$vulkan_headers_dir:vulkan_headers" ]
+ if (is_fuchsia) {
+ deps += [ "//third_party/Vulkan-Loader:libvulkan" ]
+ }
+
+ configs += [
+ ":vulkaninfo_warnings",
+ "${volk_dir}:volk_config",
+ ]
+ if (is_fuchsia) {
+ configs -= [ "//build/config:no_exceptions" ]
+ }
+
+ defines = [
+ "VK_ENABLE_BETA_EXTENSIONS",
+ "VK_NO_PROTOTYPES",
+ ]
+}
+
+if (is_fuchsia) {
+ fuchsia_test_component("vulkaninfo-component") {
+ manifest = "fuchsia/meta/vulkaninfo.cml"
+ component_name = "vulkaninfo"
+
+ deps = [
+ ":vulkaninfo",
+ "//src/lib/vulkan/swapchain:image_pipe_swapchain_fb_layer",
+ "//src/lib/vulkan/validation_layers",
+ ]
+ test_type = "vulkan"
+ }
+
+ fuchsia_test_package("vulkaninfo-package") {
+ package_name = "vulkaninfo"
+ test_components = [ ":vulkaninfo-component" ]
+
+ test_specs = {
+ environments = vulkan_envs
+ }
+ }
+}
diff --git a/vulkaninfo/fuchsia/meta/vulkaninfo.cml b/vulkaninfo/fuchsia/meta/vulkaninfo.cml
new file mode 100644
index 00000000..c7908172
--- /dev/null
+++ b/vulkaninfo/fuchsia/meta/vulkaninfo.cml
@@ -0,0 +1,23 @@
+// Copyright (C) 2025 The Fuchsia Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+{
+ include: [
+ "sys/testing/elf_test_runner.shard.cml",
+ "syslog/client.shard.cml",
+ "vulkan/client.shard.cml",
+ ],
+ program: {
+ binary: "bin/vulkaninfo",
+ },
+}