mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-05-16 12:21:35 +00:00
An earlier CL [1] enabled Vulkan validation layers on Linux which also enables validation layers on Chrome OS. Unfortunately, this changes breaks the Chrome OS build of Dawn: .../vulkan.h:63:10: fatal error: 'xcb/xcb.h' file not found This is because including the validation layers also includes the Vulkan-Headers repo which has a BUILD file that defines VK_USE_PLATFORM_XCB_KHR [2]. XCB (and all of X11, for that matter) is not supported on Chrome OS even though it is a Linux platform. This is a quick fix for the problem to unbreak the BUILD, but I think we should discuss what a long-term fix looks like. Do we send a patch to Khronos to add an "is_chromeos" branch to their BUILD file a la Fuchsia? Also, as mentioned by cwallez@ in a different CL of mine, we should really set up a Chrome OS trybot to catch these earlier. I can assign a bug to myself for that! [1] https://dawn-review.googlesource.com/c/dawn/+/13787 [2] https://github.com/KhronosGroup/Vulkan-Headers/blob/master/BUILD.gn#L23 Change-Id: Ic5fb4fa7990cc2232a7416145877e24b10a2a7b6 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/13880 Reviewed-by: Austin Eng <enga@chromium.org> Commit-Queue: Brian Ho <hob@chromium.org>
62 lines
2.3 KiB
Plaintext
62 lines
2.3 KiB
Plaintext
# Copyright 2018 The Dawn 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
|
|
#
|
|
# http://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.
|
|
|
|
declare_args() {
|
|
# Enable Dawn's ASSERTs even in release builds
|
|
dawn_always_assert = false
|
|
|
|
# Should the Dawn static libraries be fully linked vs. GN's default of
|
|
# treating them as source sets. This is useful for people using Dawn
|
|
# standalone to produce static libraries to use in their projects.
|
|
dawn_complete_static_libs = false
|
|
|
|
# Enables the compilation of Dawn's D3D12 backend
|
|
dawn_enable_d3d12 = is_win
|
|
|
|
# Enables the compilation of Dawn's Metal backend
|
|
dawn_enable_metal = is_mac
|
|
|
|
# Enables the compilation of Dawn's Null backend
|
|
# (required for unittests, obviously non-conformant)
|
|
dawn_enable_null = true
|
|
|
|
# Enables the compilation of Dawn's OpenGL backend
|
|
# (best effort, non-conformant)
|
|
dawn_enable_opengl = is_linux && !is_chromeos
|
|
|
|
# Enables the compilation of Dawn's Vulkan backend
|
|
dawn_enable_vulkan = is_linux || is_win || is_fuchsia
|
|
|
|
# Enable use of reflection compiler in spirv-cross. This is needed
|
|
# if performing reflection on systems that the platform language
|
|
# shader is SPIR-V, since there isn't an instance of the
|
|
# GLSL/HLSL/MSL compiler. This implicitly pulls in the GLSL
|
|
# compiler, since it is a sub-class of if.
|
|
dawn_enable_cross_reflection = false
|
|
|
|
# Enables using spvc for accessing SPIR-V toolchain, instead of
|
|
# directly accessing it in Dawn.
|
|
dawn_use_spvc = false
|
|
}
|
|
|
|
# GN does not allow reading a variable defined in the same declare_args().
|
|
# Put them in two separate declare_args() when setting the value of one
|
|
# argument based on another.
|
|
if (dawn_enable_vulkan) {
|
|
declare_args() {
|
|
# Uses our built version of Vulkan validation layers
|
|
dawn_enable_vulkan_validation_layers = (is_linux && !is_chromeos) || is_win
|
|
}
|
|
}
|