Make the Vulkan Validation Layers an optional dependency.

The build_overrides directory for the VVL will default to "" which
causes support for them to be skipped if the dependents don't set the
dawn_vulkan_validation_layers_dir variable.

Bug: chromium:1064305
Change-Id: I0a31f5d1d55982b5c953ce8ac6542d38829eedb5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19085
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@google.com>
This commit is contained in:
Zhenyao Mo 2020-04-08 20:00:12 +00:00 committed by Commit Bot service account
parent 7119a0278d
commit d9d9d1ec73
3 changed files with 24 additions and 33 deletions

View File

@ -62,6 +62,7 @@ if (!defined(dawn_swiftshader_dir)) {
dawn_swiftshader_dir = "" dawn_swiftshader_dir = ""
} }
if (!defined(dawn_vulkan_validaion_layers_dir)) { if (!defined(dawn_vulkan_validation_layers_dir)) {
dawn_vulkan_validaion_layers_dir = "//third_party/vulkan-validation-layers" # Default to VVLs not being available.
dawn_vulkan_validation_layers_dir = ""
} }

View File

@ -28,7 +28,9 @@ if (is_mac) {
} }
} }
if (dawn_enable_vulkan_validation_layers) { enable_vulkan_validation_layers = dawn_enable_vulkan_validation_layers &&
dawn_vulkan_validation_layers_dir != ""
if (enable_vulkan_validation_layers) {
import("//build_overrides/vulkan_validation_layers.gni") import("//build_overrides/vulkan_validation_layers.gni")
} }
@ -100,9 +102,7 @@ if (dawn_enable_opengl) {
# Public dawn_native headers so they can be publicly visible for # Public dawn_native headers so they can be publicly visible for
# dependencies of dawn_native # dependencies of dawn_native
source_set("dawn_native_headers") { source_set("dawn_native_headers") {
public_deps = [ public_deps = [ "${dawn_root}/src/dawn:dawncpp_headers" ]
"${dawn_root}/src/dawn:dawncpp_headers",
]
all_dependent_configs = [ "${dawn_root}/src/common:dawn_public_include_dirs" ] all_dependent_configs = [ "${dawn_root}/src/common:dawn_public_include_dirs" ]
sources = [ sources = [
"${dawn_root}/src/include/dawn_native/DawnNative.h", "${dawn_root}/src/include/dawn_native/DawnNative.h",
@ -531,13 +531,14 @@ source_set("dawn_native_sources") {
# Necessary to ensure that the Vulkan libraries will be in the # Necessary to ensure that the Vulkan libraries will be in the
# final Fuchsia package. # final Fuchsia package.
data_deps = [ data_deps = [
# NOTE: The line below is a work around for http://crbug.com/1001081
"//third_party/fuchsia-sdk/sdk:trace_engine",
"//third_party/fuchsia-sdk:vulkan_base", "//third_party/fuchsia-sdk:vulkan_base",
"//third_party/fuchsia-sdk:vulkan_validation", "//third_party/fuchsia-sdk:vulkan_validation",
# NOTE: The line below is a work around for http://crbug.com/1001081
"//third_party/fuchsia-sdk/sdk:trace_engine",
] ]
} }
if (dawn_enable_vulkan_validation_layers) { if (enable_vulkan_validation_layers) {
defines += [ defines += [
"DAWN_ENABLE_VULKAN_VALIDATION_LAYERS", "DAWN_ENABLE_VULKAN_VALIDATION_LAYERS",
"DAWN_VK_DATA_DIR=\"$vulkan_data_subdir\"", "DAWN_VK_DATA_DIR=\"$vulkan_data_subdir\"",
@ -568,17 +569,13 @@ dawn_component("dawn_native") {
DEFINE_PREFIX = "DAWN_NATIVE" DEFINE_PREFIX = "DAWN_NATIVE"
#Make headers publically visible #Make headers publically visible
public_deps = [ public_deps = [ ":dawn_native_headers" ]
":dawn_native_headers",
]
deps = [ deps = [
":dawn_native_sources", ":dawn_native_sources",
"${dawn_root}/src/common", "${dawn_root}/src/common",
] ]
sources = [ sources = [ "DawnNative.cpp" ]
"DawnNative.cpp",
]
configs = [ ":dawn_native_internal" ] configs = [ ":dawn_native_internal" ]
public_configs = [ ":dawn_native_weak_framework" ] public_configs = [ ":dawn_native_weak_framework" ]
@ -597,10 +594,9 @@ dawn_component("dawn_native") {
if (dawn_enable_vulkan) { if (dawn_enable_vulkan) {
sources += [ "vulkan/VulkanBackend.cpp" ] sources += [ "vulkan/VulkanBackend.cpp" ]
if (dawn_enable_vulkan_validation_layers) { if (enable_vulkan_validation_layers) {
data_deps = [ data_deps =
"${dawn_vulkan_validation_layers_dir}:vulkan_validation_layers", [ "${dawn_vulkan_validation_layers_dir}:vulkan_validation_layers" ]
]
if (!is_android) { if (!is_android) {
data_deps += data_deps +=
[ "${dawn_vulkan_validation_layers_dir}:vulkan_gen_json_files" ] [ "${dawn_vulkan_validation_layers_dir}:vulkan_gen_json_files" ]
@ -611,7 +607,5 @@ dawn_component("dawn_native") {
# Temporary group for a 3-way patch with Chromium # Temporary group for a 3-way patch with Chromium
group("libdawn_native_headers") { group("libdawn_native_headers") {
public_deps = [ public_deps = [ ":dawn_native_headers" ]
":dawn_native_headers",
]
} }

14
third_party/BUILD.gn vendored
View File

@ -47,9 +47,7 @@ source_set("vulkan_headers") {
} }
source_set("khronos_platform") { source_set("khronos_platform") {
sources = [ sources = [ "khronos/KHR/khrplatform.h" ]
"khronos/KHR/khrplatform.h",
]
public_configs = [ ":khronos_headers_public" ] public_configs = [ ":khronos_headers_public" ]
} }
@ -77,9 +75,7 @@ if (!build_with_chromium) {
static_library("gtest") { static_library("gtest") {
testonly = true testonly = true
sources = [ sources = [ "${googletest_dir}/googletest/src/gtest-all.cc" ]
"${googletest_dir}/googletest/src/gtest-all.cc",
]
public_configs = [ ":gtest_config" ] public_configs = [ ":gtest_config" ]
} }
@ -93,9 +89,7 @@ if (!build_with_chromium) {
static_library("gmock") { static_library("gmock") {
testonly = true testonly = true
sources = [ sources = [ "${googletest_dir}/googlemock/src/gmock-all.cc" ]
"${googletest_dir}/googlemock/src/gmock-all.cc",
]
public_configs = [ ":gmock_config" ] public_configs = [ ":gmock_config" ]
} }
@ -149,8 +143,10 @@ if (is_win || (is_linux && !is_chromeos) || is_mac) {
static_library("glfw") { static_library("glfw") {
public_configs = [ ":glfw_public" ] public_configs = [ ":glfw_public" ]
if (dawn_has_build) {
configs -= [ "//build/config/compiler:chromium_code" ] configs -= [ "//build/config/compiler:chromium_code" ]
configs += [ "//build/config/compiler:no_chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code" ]
}
if (is_win && !is_clang) { if (is_win && !is_clang) {
# nonstandard extension, function/data pointer conversion in expression # nonstandard extension, function/data pointer conversion in expression