| # Copyright 2017 The Fuchsia Authors |
| # |
| # 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. |
| |
| import("//build/cpp/sdk_shared_library.gni") |
| import("//build/package.gni") |
| |
| declare_args() { |
| vk_loader_debug = "warn,error" |
| } |
| |
| package("vulkan_loader") { |
| deprecated_system_image = true |
| |
| deps = [ |
| ":loader", |
| ] |
| |
| libraries = [ |
| { |
| name = "libvulkan.so" |
| }, |
| ] |
| } |
| |
| sdk_shared_library("loader") { |
| # The Vulkan loader is named libvulkan |
| output_name = "vulkan" |
| |
| category = "partner" |
| |
| # The Vulkan loader's interface is defined by standard Khronos vulkan headers |
| # which can be obtained separately from the loader implementation itself. |
| no_headers = true |
| |
| configs += [ |
| "../:vulkan_build_config", |
| "../:include_extra_vulkan_headers", |
| ] |
| |
| include_dirs = [ "." ] |
| |
| cflags_c = [ |
| "-Wno-missing-field-initializers", |
| "-DSYSCONFDIR=\"/config\"", |
| "-DEXTRASYSCONFDIR=\"/pkg/data\"", |
| "-DDATADIR=\"/usr/share\"", |
| ] |
| |
| defines = [ "VK_LOADER_DEBUG=\"$vk_loader_debug\"" ] |
| |
| sources = [ |
| "cJSON.c", |
| "debug_utils.c", |
| "dev_ext_trampoline.c", |
| "dlopen_fuchsia.c", |
| "extension_manual.c", |
| "loader.c", |
| "murmurhash.c", |
| "phys_dev_ext.c", |
| "trampoline.c", |
| "unknown_ext_chain.c", |
| "wsi.c", |
| ] |
| |
| deps = [ |
| "//garnet/public/fidl/fuchsia.vulkan.loader:fuchsia.vulkan.loader_c_client", |
| "//zircon/public/lib/fdio", |
| ] |
| |
| # TODO(MA-488) - while these shared libraries are needed by vulkan icd |
| # the app must provide them, so we add the deps here. |
| deps += [ "//zircon/public/lib/trace-engine" ] |
| deps += [ "//zircon/public/lib/async-default" ] |
| |
| # This is a C only library, but we have to tell the linker driver that |
| # explicitly or it assumes we want to dynamically link against the C++ |
| # standard library. |
| ldflags = [ "-nostdlib++" ] |
| |
| libs = [ |
| "zircon" |
| ] |
| |
| runtime_deps = [ |
| "//zircon/public/lib/fdio:fdio_sdk", |
| ] |
| # TODO(MA-488): remove this too |
| runtime_deps += [ "//zircon/public/lib/trace-engine:trace-engine_sdk" ] |
| runtime_deps += [ "//zircon/public/lib/async-default:async-default_sdk" ] |
| } |