| # Copyright 2016 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("//magma/gnbuild/magma.gni") |
| |
| group("layers") { |
| deps = [ |
| ":VkLayer_core_validation", |
| ":VkLayer_object_tracker", |
| ":VkLayer_parameter_validation", |
| ":VkLayer_swapchain", |
| ":VkLayer_threading", |
| ":VkLayer_unique_objects", |
| ] |
| } |
| |
| config("layer_include_config") { |
| cflags_cc = [ "-Wno-unused-function" ] |
| include_dirs = [ |
| ".", |
| "../include", |
| "../loader", |
| ] |
| } |
| |
| source_set("layer_common") { |
| public_configs = [ ":layer_include_config" ] |
| sources = [ |
| "vk_layer_config.cpp", |
| "vk_layer_extension_utils.cpp", |
| "vk_layer_table.cpp", |
| "vk_layer_utils.cpp", |
| ] |
| public_deps = [ |
| "../:vulkan", |
| "../:extra_vulkan_headers" |
| ] |
| } |
| |
| shared_library("VkLayer_object_tracker") { |
| deps = [ |
| ":VkLayer_object_tracker_src($magma_shared_toolchain)", |
| ] |
| } |
| |
| source_set("VkLayer_object_tracker_src") { |
| sources = [ |
| "object_tracker.cpp", |
| ] |
| deps = [ |
| ":layer_common", |
| ] |
| } |
| |
| shared_library("VkLayer_core_validation") { |
| deps = [ |
| ":VkLayer_core_validation_src($magma_shared_toolchain)", |
| ] |
| } |
| |
| source_set("VkLayer_core_validation_src") { |
| cflags_cc = [ "-Wno-missing-field-initializers" ] |
| include_dirs = [ |
| "//third_party/shaderc/third_party/spirv-tools/include", |
| "//third_party/shaderc/third_party/glslang", |
| ] |
| sources = [ |
| "buffer_validation.cpp", |
| "core_validation.cpp", |
| "descriptor_sets.cpp", |
| "vk_format_utils.cpp", |
| ] |
| deps = [ |
| ":layer_common", |
| "//third_party/shaderc/third_party/spirv-tools", |
| "//third_party/shaderc/third_party/glslang", |
| ] |
| } |
| |
| shared_library("VkLayer_parameter_validation") { |
| deps = [ |
| ":VkLayer_parameter_validation_src($magma_shared_toolchain)", |
| ] |
| } |
| |
| source_set("VkLayer_parameter_validation_src") { |
| sources = [ |
| "parameter_validation.cpp", |
| "vk_format_utils.cpp", |
| ] |
| deps = [ |
| ":layer_common", |
| ] |
| } |
| |
| shared_library("VkLayer_swapchain") { |
| deps = [ |
| ":VkLayer_swapchain_src($magma_shared_toolchain)", |
| ] |
| } |
| |
| source_set("VkLayer_swapchain_src") { |
| sources = [ |
| "swapchain.cpp", |
| ] |
| deps = [ |
| ":layer_common", |
| ] |
| } |
| |
| shared_library("VkLayer_threading") { |
| cflags_cc = [ "-Wno-unused-function" ] |
| deps = [ |
| ":VkLayer_threading_src($magma_shared_toolchain)", |
| ] |
| } |
| |
| source_set("VkLayer_threading_src") { |
| sources = [ |
| "threading.cpp", |
| ] |
| deps = [ |
| ":layer_common", |
| ] |
| } |
| |
| shared_library("VkLayer_unique_objects") { |
| deps = [ |
| ":VkLayer_unique_objects_src($magma_shared_toolchain)", |
| ] |
| } |
| |
| source_set("VkLayer_unique_objects_src") { |
| sources = [ |
| "unique_objects.cpp", |
| ] |
| deps = [ |
| ":layer_common", |
| ] |
| } |