blob: a15d332c3834d7d33d39a8e15485d0a871d5b125 [file] [log] [blame]
# 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("//garnet/lib/magma/gnbuild/magma.gni")
import("//build/package.gni")
package("vulkan_validation_layers") {
deprecated_system_image = true
deps = [
":layers",
]
libraries = [
{
name = "libVkLayer_core_validation.so"
},
{
name = "libVkLayer_threading.so"
},
{
name = "libVkLayer_unique_objects.so"
},
{
name = "libVkLayer_parameter_validation.so"
},
{
name = "libVkLayer_object_tracker.so"
},
]
resources = [
{
path = rebase_path("fuchsia/VkLayer_core_validation.json")
dest = "vulkan/explicit_layer.d/VkLayer_core_validation.json"
},
{
path = rebase_path("fuchsia/VkLayer_parameter_validation.json")
dest = "vulkan/explicit_layer.d/VkLayer_parameter_validation.json"
},
{
path = rebase_path("fuchsia/VkLayer_threading.json")
dest = "vulkan/explicit_layer.d/VkLayer_threading.json"
},
{
path = rebase_path("fuchsia/VkLayer_unique_objects.json")
dest = "vulkan/explicit_layer.d/VkLayer_unique_objects.json"
},
{
path = rebase_path("fuchsia/VkLayer_object_tracker.json")
dest = "vulkan/explicit_layer.d/VkLayer_object_tracker.json"
},
{
path = rebase_path("fuchsia/VkLayer_standard_validation.json")
dest = "vulkan/explicit_layer.d/VkLayer_standard_validation.json"
},
]
}
package("vulkan_loader_and_layers_tests") {
testonly = true
deps = [
"//third_party/vulkan_loader_and_validation_layers/tests",
]
tests = [
{
name = "loader_validation_tests"
dest = "vulkan_loader_validation_tests"
disabled = true
},
{
name = "layer_validation_tests"
dest = "vulkan_layer_validation_tests"
disabled = true
},
]
}
group("layers") {
public_deps = [
":VkLayer_core_validation",
":VkLayer_object_tracker",
":VkLayer_parameter_validation",
":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 = [
"../:extra_vulkan_headers",
"../:vulkan",
]
}
shared_library("VkLayer_core_validation") {
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",
"shader_validation.cpp",
"vk_format_utils.cpp",
"xxhash.c",
]
deps = [
":layer_common",
"//third_party/shaderc/third_party/glslang",
"//third_party/shaderc/third_party/spirv-tools",
]
}
config("VkLayer_parameter_validation_config") {
cflags_cc = [ "-Wno-unused-const-variable" ]
}
shared_library("VkLayer_parameter_validation") {
configs += [ ":VkLayer_parameter_validation_config" ]
sources = [
"../build-fuchsia/generated/include/parameter_validation.cpp",
"parameter_validation_utils.cpp",
"vk_format_utils.cpp",
]
deps = [
":layer_common",
]
}
shared_library("VkLayer_threading") {
sources = [
"threading.cpp",
]
deps = [
":layer_common",
]
}
shared_library("VkLayer_unique_objects") {
sources = [
"unique_objects.cpp",
]
deps = [
":layer_common",
]
}
shared_library("VkLayer_object_tracker") {
sources = [
"../build-fuchsia/generated/include/object_tracker.cpp",
"object_tracker_utils.cpp",
]
deps = [
":layer_common",
]
}