Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 1 | # Copyright 2018 The Dawn Authors |
| 2 | # |
| 3 | # Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 | # you may not use this file except in compliance with the License. |
| 5 | # You may obtain a copy of the License at |
| 6 | # |
| 7 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 8 | # |
| 9 | # Unless required by applicable law or agreed to in writing, software |
| 10 | # distributed under the License is distributed on an "AS IS" BASIS, |
| 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 12 | # See the License for the specific language governing permissions and |
| 13 | # limitations under the License. |
| 14 | |
Corentin Wallez | e92ad5b | 2018-10-31 10:49:21 +0000 | [diff] [blame] | 15 | import("//build_overrides/build.gni") |
Li, Hao | 0e1bef3 | 2019-11-07 12:13:27 +0000 | [diff] [blame] | 16 | import("//build_overrides/vulkan_validation_layers.gni") |
Idan Raiter | 1c85976 | 2019-05-22 17:18:52 +0000 | [diff] [blame] | 17 | import("generator/dawn_generator.gni") |
Corentin Wallez | abc753c | 2019-03-06 23:17:39 +0000 | [diff] [blame] | 18 | import("scripts/dawn_component.gni") |
Takuto Ikuta | 0e6dad0 | 2019-02-13 18:42:38 +0000 | [diff] [blame] | 19 | import("scripts/dawn_features.gni") |
| 20 | import("scripts/dawn_overrides_with_defaults.gni") |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 21 | |
| 22 | import("//testing/test.gni") |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 23 | |
Corentin Wallez | 74cebd6 | 2019-11-26 18:21:51 +0000 | [diff] [blame] | 24 | # Swiftshader is an optional dependency of Dawn so we only use it if the path |
| 25 | # to it has been set. |
| 26 | use_swiftshader = dawn_use_swiftshader && dawn_swiftshader_dir != "" |
| 27 | |
| 28 | if (use_swiftshader) { |
| 29 | assert(dawn_enable_vulkan, |
| 30 | "dawn_use_swiftshader requires dawn_enable_vulkan=true") |
| 31 | import("${dawn_swiftshader_dir}/src/Vulkan/vulkan.gni") |
| 32 | } |
| 33 | |
Corentin Wallez | 280b96e | 2019-12-11 16:54:51 +0000 | [diff] [blame] | 34 | # Import mac_min_system_version |
| 35 | if (is_mac) { |
| 36 | import("//build/config/mac/mac_sdk.gni") |
| 37 | } |
| 38 | |
Corentin Wallez | 649e2fe | 2018-08-03 15:57:43 +0200 | [diff] [blame] | 39 | ############################################################################### |
Austin Eng | d4ce736 | 2019-08-13 19:00:34 +0000 | [diff] [blame] | 40 | # dawn_platform |
| 41 | ############################################################################### |
| 42 | |
| 43 | source_set("dawn_platform") { |
| 44 | configs += [ "${dawn_root}/src/common:dawn_internal" ] |
| 45 | |
| 46 | sources = [ |
| 47 | "${dawn_root}/src/include/dawn_platform/DawnPlatform.h", |
| 48 | "src/dawn_platform/tracing/EventTracer.cpp", |
| 49 | "src/dawn_platform/tracing/EventTracer.h", |
| 50 | "src/dawn_platform/tracing/TraceEvent.h", |
| 51 | ] |
| 52 | |
| 53 | deps = [ |
| 54 | "${dawn_root}/src/common", |
| 55 | ] |
| 56 | } |
| 57 | |
| 58 | ############################################################################### |
Corentin Wallez | bd48385 | 2019-01-09 09:05:18 +0000 | [diff] [blame] | 59 | # libdawn_native |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 60 | ############################################################################### |
| 61 | |
| 62 | config("libdawn_native_internal") { |
Corentin Wallez | 579cf62 | 2019-03-07 01:46:39 +0000 | [diff] [blame] | 63 | configs = [ "${dawn_root}/src/common:dawn_internal" ] |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 64 | |
Corentin Wallez | 7dda7d0 | 2019-09-18 04:40:32 +0000 | [diff] [blame] | 65 | # Suppress warnings that Metal isn't in the deployment target of Chrome: |
| 66 | # initialization of the Metal backend is behind a IsMetalSupported check so |
| 67 | # Dawn won't call Metal functions on macOS 10.10. |
Corentin Wallez | 280b96e | 2019-12-11 16:54:51 +0000 | [diff] [blame] | 68 | # At the time this is written Chromium supports 10.10.0 and above, so if we |
| 69 | # aren't on 10.11 it means we are on 10.11 and above, and Metal is available. |
| 70 | # Skipping this check on 10.11 and above is important as it allows getting |
| 71 | # proper compilation warning when using 10.12 and above feature for example. |
Corentin Wallez | 7dda7d0 | 2019-09-18 04:40:32 +0000 | [diff] [blame] | 72 | # TODO(cwallez@chromium.org): Consider using API_AVAILABLE annotations on all |
Corentin Wallez | 280b96e | 2019-12-11 16:54:51 +0000 | [diff] [blame] | 73 | # metal code in dawn once crbug.com/1004024 is sorted out if Chromium still |
| 74 | # supports 10.10 then. |
| 75 | if (is_mac && mac_min_system_version == "10.10.0") { |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 76 | cflags_objcc = [ "-Wno-unguarded-availability" ] |
| 77 | } |
| 78 | } |
| 79 | |
Pawel Pluciennik | 3c79cf2 | 2019-10-21 11:35:49 +0000 | [diff] [blame] | 80 | config("libdawn_native_weak_framework") { |
| 81 | if (is_mac && dawn_enable_metal) { |
| 82 | ldflags = [ |
| 83 | "-weak_framework", |
| 84 | "Metal", |
| 85 | ] |
| 86 | } |
| 87 | } |
| 88 | |
Corentin Wallez | 031fbbb | 2019-06-11 18:03:05 +0000 | [diff] [blame] | 89 | dawn_json_generator("libdawn_native_utils_gen") { |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 90 | target = "dawn_native_utils" |
Corentin Wallez | 59e7fad | 2018-08-16 15:32:35 +0200 | [diff] [blame] | 91 | outputs = [ |
Corentin Wallez | 897ebc7 | 2019-09-18 04:33:12 +0000 | [diff] [blame] | 92 | "src/dawn_native/ProcTable.cpp", |
Corentin Wallez | 1f6c8c4 | 2019-10-23 11:57:41 +0000 | [diff] [blame] | 93 | "src/dawn_native/wgpu_structs_autogen.h", |
| 94 | "src/dawn_native/wgpu_structs_autogen.cpp", |
Corentin Wallez | 897ebc7 | 2019-09-18 04:33:12 +0000 | [diff] [blame] | 95 | "src/dawn_native/ValidationUtils_autogen.h", |
| 96 | "src/dawn_native/ValidationUtils_autogen.cpp", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 97 | ] |
| 98 | } |
| 99 | |
Corentin Wallez | df69f24 | 2019-06-13 10:22:32 +0000 | [diff] [blame] | 100 | if (dawn_enable_opengl) { |
| 101 | dawn_generator("libdawn_native_opengl_loader_gen") { |
| 102 | script = "generator/opengl_loader_generator.py" |
| 103 | args = [ |
| 104 | "--gl-xml", |
Corentin Wallez | 8f4046b | 2019-06-17 09:17:29 +0000 | [diff] [blame] | 105 | rebase_path("third_party/khronos/gl.xml", root_build_dir), |
Jiawei Shao | 9d9d76c | 2019-08-22 08:19:13 +0000 | [diff] [blame] | 106 | "--supported-extensions", |
| 107 | rebase_path("src/dawn_native/opengl/supported_extensions.json", |
| 108 | root_build_dir), |
Corentin Wallez | df69f24 | 2019-06-13 10:22:32 +0000 | [diff] [blame] | 109 | ] |
| 110 | outputs = [ |
Corentin Wallez | 897ebc7 | 2019-09-18 04:33:12 +0000 | [diff] [blame] | 111 | "src/dawn_native/opengl/OpenGLFunctionsBase_autogen.cpp", |
| 112 | "src/dawn_native/opengl/OpenGLFunctionsBase_autogen.h", |
| 113 | "src/dawn_native/opengl/opengl_platform_autogen.h", |
Corentin Wallez | df69f24 | 2019-06-13 10:22:32 +0000 | [diff] [blame] | 114 | ] |
| 115 | } |
| 116 | } |
| 117 | |
Corentin Wallez | d2969a7 | 2018-08-12 21:07:46 +0200 | [diff] [blame] | 118 | # Public libdawn_native headers so they can be publically visible for |
| 119 | # dependencies of libdawn_native |
| 120 | source_set("libdawn_native_headers") { |
| 121 | public_deps = [ |
Austin Eng | cc071e4 | 2019-10-16 10:26:01 +0000 | [diff] [blame] | 122 | "${dawn_root}/src/dawn:dawncpp_headers", |
Corentin Wallez | d2969a7 | 2018-08-12 21:07:46 +0200 | [diff] [blame] | 123 | ] |
Corentin Wallez | 91e9492 | 2019-03-26 17:16:28 +0000 | [diff] [blame] | 124 | all_dependent_configs = [ "${dawn_root}/src/common:dawn_public_include_dirs" ] |
Corentin Wallez | d2969a7 | 2018-08-12 21:07:46 +0200 | [diff] [blame] | 125 | sources = [ |
| 126 | "src/include/dawn_native/DawnNative.h", |
| 127 | "src/include/dawn_native/dawn_native_export.h", |
| 128 | |
| 129 | # Include all backend's public headers so that dependencies can include |
| 130 | # them even when the backends are disabled. |
| 131 | "src/include/dawn_native/D3D12Backend.h", |
| 132 | "src/include/dawn_native/MetalBackend.h", |
| 133 | "src/include/dawn_native/NullBackend.h", |
| 134 | "src/include/dawn_native/OpenGLBackend.h", |
| 135 | "src/include/dawn_native/VulkanBackend.h", |
| 136 | ] |
| 137 | } |
| 138 | |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 139 | # The meat of the compilation for libdawn_native so that we can cheaply have |
Corentin Wallez | bd48385 | 2019-01-09 09:05:18 +0000 | [diff] [blame] | 140 | # shared_library / static_library versions of it. It compiles all the files |
| 141 | # except those that define exported symbols. |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 142 | source_set("libdawn_native_sources") { |
| 143 | deps = [ |
Corentin Wallez | bd48385 | 2019-01-09 09:05:18 +0000 | [diff] [blame] | 144 | ":libdawn_native_headers", |
Corentin Wallez | 59e7fad | 2018-08-16 15:32:35 +0200 | [diff] [blame] | 145 | ":libdawn_native_utils_gen", |
Corentin Wallez | 579cf62 | 2019-03-07 01:46:39 +0000 | [diff] [blame] | 146 | "${dawn_root}/src/common", |
Ryan Harrison | 22e73a5 | 2019-11-28 17:14:55 +0000 | [diff] [blame] | 147 | "${dawn_shaderc_dir}:spirv_cross", |
Corentin Wallez | 21d8438 | 2018-09-06 17:25:46 +0200 | [diff] [blame] | 148 | "${dawn_spirv_tools_dir}:spvtools_val", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 149 | ] |
Ryan Harrison | 1954436 | 2019-11-21 18:08:15 +0000 | [diff] [blame] | 150 | defines = [] |
Corentin Wallez | 74cebd6 | 2019-11-26 18:21:51 +0000 | [diff] [blame] | 151 | libs = [] |
| 152 | data_deps = [] |
Ryan Harrison | 48bf745 | 2019-11-21 20:31:05 +0000 | [diff] [blame] | 153 | |
Corentin Wallez | 2ec59d9 | 2018-11-14 21:04:26 +0000 | [diff] [blame] | 154 | configs += [ ":libdawn_native_internal" ] |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 155 | |
Corentin Wallez | 23dd124 | 2019-07-22 23:32:29 +0000 | [diff] [blame] | 156 | # Dependencies that are needed to compile libdawn_native entry points in |
| 157 | # FooBackend.cpp need to be public deps so they are propagated to the |
| 158 | # libdawn_native target |
Austin Eng | d4ce736 | 2019-08-13 19:00:34 +0000 | [diff] [blame] | 159 | public_deps = [ |
| 160 | ":dawn_platform", |
Kai Ninomiya | 47b1504 | 2020-02-04 02:48:43 +0000 | [diff] [blame] | 161 | "${dawn_shaderc_dir}:libshaderc_spvc", |
Austin Eng | d4ce736 | 2019-08-13 19:00:34 +0000 | [diff] [blame] | 162 | ] |
Corentin Wallez | 23dd124 | 2019-07-22 23:32:29 +0000 | [diff] [blame] | 163 | |
Corentin Wallez | 59e7fad | 2018-08-16 15:32:35 +0200 | [diff] [blame] | 164 | sources = get_target_outputs(":libdawn_native_utils_gen") |
| 165 | sources += [ |
Corentin Wallez | ac67fec | 2019-01-04 10:30:40 +0000 | [diff] [blame] | 166 | "src/dawn_native/Adapter.cpp", |
| 167 | "src/dawn_native/Adapter.h", |
Austin Eng | b98f0fa | 2019-07-26 19:08:18 +0000 | [diff] [blame] | 168 | "src/dawn_native/AttachmentState.cpp", |
| 169 | "src/dawn_native/AttachmentState.h", |
Corentin Wallez | ac67fec | 2019-01-04 10:30:40 +0000 | [diff] [blame] | 170 | "src/dawn_native/BackendConnection.cpp", |
| 171 | "src/dawn_native/BackendConnection.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 172 | "src/dawn_native/BindGroup.cpp", |
| 173 | "src/dawn_native/BindGroup.h", |
| 174 | "src/dawn_native/BindGroupLayout.cpp", |
| 175 | "src/dawn_native/BindGroupLayout.h", |
Austin Eng | 7f3f331 | 2019-09-17 19:25:27 +0000 | [diff] [blame] | 176 | "src/dawn_native/BindGroupTracker.h", |
Bryan Bernhart | 35ad522 | 2019-07-30 16:46:10 +0000 | [diff] [blame] | 177 | "src/dawn_native/BuddyAllocator.cpp", |
| 178 | "src/dawn_native/BuddyAllocator.h", |
Bryan Bernhart | 21dfc91 | 2019-10-03 18:17:31 +0000 | [diff] [blame] | 179 | "src/dawn_native/BuddyMemoryAllocator.cpp", |
| 180 | "src/dawn_native/BuddyMemoryAllocator.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 181 | "src/dawn_native/Buffer.cpp", |
| 182 | "src/dawn_native/Buffer.h", |
Austin Eng | 84bcf44 | 2019-10-30 00:20:03 +0000 | [diff] [blame] | 183 | "src/dawn_native/CachedObject.cpp", |
| 184 | "src/dawn_native/CachedObject.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 185 | "src/dawn_native/CommandAllocator.cpp", |
| 186 | "src/dawn_native/CommandAllocator.h", |
| 187 | "src/dawn_native/CommandBuffer.cpp", |
| 188 | "src/dawn_native/CommandBuffer.h", |
| 189 | "src/dawn_native/CommandBufferStateTracker.cpp", |
| 190 | "src/dawn_native/CommandBufferStateTracker.h", |
Corentin Wallez | e1f0d4e | 2019-02-15 12:54:08 +0000 | [diff] [blame] | 191 | "src/dawn_native/CommandEncoder.cpp", |
| 192 | "src/dawn_native/CommandEncoder.h", |
Austin Eng | 3318caa | 2019-08-13 00:22:28 +0000 | [diff] [blame] | 193 | "src/dawn_native/CommandValidation.cpp", |
| 194 | "src/dawn_native/CommandValidation.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 195 | "src/dawn_native/Commands.cpp", |
| 196 | "src/dawn_native/Commands.h", |
Corentin Wallez | 82fbccb | 2018-09-21 00:24:37 +0000 | [diff] [blame] | 197 | "src/dawn_native/ComputePassEncoder.cpp", |
| 198 | "src/dawn_native/ComputePassEncoder.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 199 | "src/dawn_native/ComputePipeline.cpp", |
| 200 | "src/dawn_native/ComputePipeline.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 201 | "src/dawn_native/Device.cpp", |
| 202 | "src/dawn_native/Device.h", |
Bryan Bernhart | 74e95ff | 2019-01-29 00:10:07 +0000 | [diff] [blame] | 203 | "src/dawn_native/DynamicUploader.cpp", |
| 204 | "src/dawn_native/DynamicUploader.h", |
Austin Eng | fde9490 | 2019-07-24 18:15:24 +0000 | [diff] [blame] | 205 | "src/dawn_native/EncodingContext.cpp", |
| 206 | "src/dawn_native/EncodingContext.h", |
Natasha Lee | 0ecc48e | 2020-01-15 19:02:13 +0000 | [diff] [blame] | 207 | "src/dawn_native/Error.cpp", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 208 | "src/dawn_native/Error.h", |
| 209 | "src/dawn_native/ErrorData.cpp", |
| 210 | "src/dawn_native/ErrorData.h", |
Austin Eng | 6ea362c | 2019-12-17 00:47:40 +0000 | [diff] [blame] | 211 | "src/dawn_native/ErrorInjector.cpp", |
| 212 | "src/dawn_native/ErrorInjector.h", |
Austin Eng | f35dcfe | 2019-09-10 23:19:11 +0000 | [diff] [blame] | 213 | "src/dawn_native/ErrorScope.cpp", |
| 214 | "src/dawn_native/ErrorScope.h", |
Austin Eng | be99007 | 2019-09-17 18:24:07 +0000 | [diff] [blame] | 215 | "src/dawn_native/ErrorScopeTracker.cpp", |
| 216 | "src/dawn_native/ErrorScopeTracker.h", |
Jiawei Shao | 574b951 | 2019-08-02 00:06:38 +0000 | [diff] [blame] | 217 | "src/dawn_native/Extensions.cpp", |
| 218 | "src/dawn_native/Extensions.h", |
Austin Eng | f0b761f | 2018-12-03 16:57:34 +0000 | [diff] [blame] | 219 | "src/dawn_native/Fence.cpp", |
| 220 | "src/dawn_native/Fence.h", |
| 221 | "src/dawn_native/FenceSignalTracker.cpp", |
| 222 | "src/dawn_native/FenceSignalTracker.h", |
Corentin Wallez | 1546bfb | 2019-07-18 09:25:04 +0000 | [diff] [blame] | 223 | "src/dawn_native/Format.cpp", |
| 224 | "src/dawn_native/Format.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 225 | "src/dawn_native/Forward.h", |
Corentin Wallez | ac67fec | 2019-01-04 10:30:40 +0000 | [diff] [blame] | 226 | "src/dawn_native/Instance.cpp", |
| 227 | "src/dawn_native/Instance.h", |
Corentin Wallez | 9e4518b | 2018-10-15 12:54:30 +0000 | [diff] [blame] | 228 | "src/dawn_native/ObjectBase.cpp", |
| 229 | "src/dawn_native/ObjectBase.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 230 | "src/dawn_native/PassResourceUsage.h", |
Austin Eng | e9fabf5 | 2019-08-08 17:21:39 +0000 | [diff] [blame] | 231 | "src/dawn_native/PassResourceUsageTracker.cpp", |
| 232 | "src/dawn_native/PassResourceUsageTracker.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 233 | "src/dawn_native/PerStage.cpp", |
| 234 | "src/dawn_native/PerStage.h", |
| 235 | "src/dawn_native/Pipeline.cpp", |
| 236 | "src/dawn_native/Pipeline.h", |
| 237 | "src/dawn_native/PipelineLayout.cpp", |
| 238 | "src/dawn_native/PipelineLayout.h", |
Corentin Wallez | 82fbccb | 2018-09-21 00:24:37 +0000 | [diff] [blame] | 239 | "src/dawn_native/ProgrammablePassEncoder.cpp", |
| 240 | "src/dawn_native/ProgrammablePassEncoder.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 241 | "src/dawn_native/Queue.cpp", |
| 242 | "src/dawn_native/Queue.h", |
| 243 | "src/dawn_native/RefCounted.cpp", |
| 244 | "src/dawn_native/RefCounted.h", |
Austin Eng | 8a488c1 | 2019-08-13 22:12:54 +0000 | [diff] [blame] | 245 | "src/dawn_native/RenderBundle.cpp", |
| 246 | "src/dawn_native/RenderBundle.h", |
| 247 | "src/dawn_native/RenderBundleEncoder.cpp", |
| 248 | "src/dawn_native/RenderBundleEncoder.h", |
Austin Eng | 69f1db7 | 2019-07-20 01:34:56 +0000 | [diff] [blame] | 249 | "src/dawn_native/RenderEncoderBase.cpp", |
| 250 | "src/dawn_native/RenderEncoderBase.h", |
Corentin Wallez | 82fbccb | 2018-09-21 00:24:37 +0000 | [diff] [blame] | 251 | "src/dawn_native/RenderPassEncoder.cpp", |
| 252 | "src/dawn_native/RenderPassEncoder.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 253 | "src/dawn_native/RenderPipeline.cpp", |
| 254 | "src/dawn_native/RenderPipeline.h", |
Bryan Bernhart | 7ffd234 | 2019-08-27 23:36:26 +0000 | [diff] [blame] | 255 | "src/dawn_native/ResourceHeap.h", |
Corentin Wallez | ca35435 | 2019-10-24 21:28:16 +0000 | [diff] [blame] | 256 | "src/dawn_native/ResourceHeapAllocator.h", |
Bryan Bernhart | 7ffd234 | 2019-08-27 23:36:26 +0000 | [diff] [blame] | 257 | "src/dawn_native/ResourceMemoryAllocation.cpp", |
| 258 | "src/dawn_native/ResourceMemoryAllocation.h", |
Bryan Bernhart | 450e212 | 2019-09-18 22:06:41 +0000 | [diff] [blame] | 259 | "src/dawn_native/RingBufferAllocator.cpp", |
| 260 | "src/dawn_native/RingBufferAllocator.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 261 | "src/dawn_native/Sampler.cpp", |
| 262 | "src/dawn_native/Sampler.h", |
| 263 | "src/dawn_native/ShaderModule.cpp", |
| 264 | "src/dawn_native/ShaderModule.h", |
Bryan Bernhart | 74e95ff | 2019-01-29 00:10:07 +0000 | [diff] [blame] | 265 | "src/dawn_native/StagingBuffer.cpp", |
| 266 | "src/dawn_native/StagingBuffer.h", |
Corentin Wallez | 3a1746e | 2020-01-15 13:14:12 +0000 | [diff] [blame] | 267 | "src/dawn_native/Surface.cpp", |
| 268 | "src/dawn_native/Surface.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 269 | "src/dawn_native/SwapChain.cpp", |
| 270 | "src/dawn_native/SwapChain.h", |
| 271 | "src/dawn_native/Texture.cpp", |
| 272 | "src/dawn_native/Texture.h", |
| 273 | "src/dawn_native/ToBackend.h", |
Jiawei Shao | d08611b | 2019-07-30 23:58:52 +0000 | [diff] [blame] | 274 | "src/dawn_native/Toggles.cpp", |
Jiawei Shao | 15d4c2e | 2019-04-26 07:52:57 +0000 | [diff] [blame] | 275 | "src/dawn_native/Toggles.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 276 | "src/dawn_native/dawn_platform.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 277 | ] |
| 278 | |
| 279 | if (dawn_enable_d3d12) { |
Corentin Wallez | d8597b2 | 2018-08-30 14:20:28 +0200 | [diff] [blame] | 280 | libs += [ "dxguid.lib" ] |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 281 | sources += [ |
Corentin Wallez | d77fd5f | 2019-01-30 16:07:48 +0000 | [diff] [blame] | 282 | "src/dawn_native/d3d12/AdapterD3D12.cpp", |
| 283 | "src/dawn_native/d3d12/AdapterD3D12.h", |
| 284 | "src/dawn_native/d3d12/BackendD3D12.cpp", |
| 285 | "src/dawn_native/d3d12/BackendD3D12.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 286 | "src/dawn_native/d3d12/BindGroupD3D12.cpp", |
| 287 | "src/dawn_native/d3d12/BindGroupD3D12.h", |
| 288 | "src/dawn_native/d3d12/BindGroupLayoutD3D12.cpp", |
| 289 | "src/dawn_native/d3d12/BindGroupLayoutD3D12.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 290 | "src/dawn_native/d3d12/BufferD3D12.cpp", |
| 291 | "src/dawn_native/d3d12/BufferD3D12.h", |
| 292 | "src/dawn_native/d3d12/CommandAllocatorManager.cpp", |
| 293 | "src/dawn_native/d3d12/CommandAllocatorManager.h", |
| 294 | "src/dawn_native/d3d12/CommandBufferD3D12.cpp", |
| 295 | "src/dawn_native/d3d12/CommandBufferD3D12.h", |
Rafael Cintron | 8bde031 | 2019-10-10 18:06:58 +0000 | [diff] [blame] | 296 | "src/dawn_native/d3d12/CommandRecordingContext.cpp", |
| 297 | "src/dawn_native/d3d12/CommandRecordingContext.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 298 | "src/dawn_native/d3d12/ComputePipelineD3D12.cpp", |
| 299 | "src/dawn_native/d3d12/ComputePipelineD3D12.h", |
Natasha Lee | f3d50ba | 2019-10-16 09:26:54 +0000 | [diff] [blame] | 300 | "src/dawn_native/d3d12/D3D12Error.cpp", |
| 301 | "src/dawn_native/d3d12/D3D12Error.h", |
Bryan Bernhart | 970101a | 2019-06-12 18:54:57 +0000 | [diff] [blame] | 302 | "src/dawn_native/d3d12/D3D12Info.cpp", |
| 303 | "src/dawn_native/d3d12/D3D12Info.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 304 | "src/dawn_native/d3d12/DescriptorHeapAllocator.cpp", |
| 305 | "src/dawn_native/d3d12/DescriptorHeapAllocator.h", |
| 306 | "src/dawn_native/d3d12/DeviceD3D12.cpp", |
| 307 | "src/dawn_native/d3d12/DeviceD3D12.h", |
| 308 | "src/dawn_native/d3d12/Forward.h", |
Bryan Bernhart | 154badf | 2019-10-17 17:25:28 +0000 | [diff] [blame] | 309 | "src/dawn_native/d3d12/HeapAllocatorD3D12.cpp", |
| 310 | "src/dawn_native/d3d12/HeapAllocatorD3D12.h", |
| 311 | "src/dawn_native/d3d12/HeapD3D12.cpp", |
| 312 | "src/dawn_native/d3d12/HeapD3D12.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 313 | "src/dawn_native/d3d12/NativeSwapChainImplD3D12.cpp", |
| 314 | "src/dawn_native/d3d12/NativeSwapChainImplD3D12.h", |
| 315 | "src/dawn_native/d3d12/PipelineLayoutD3D12.cpp", |
| 316 | "src/dawn_native/d3d12/PipelineLayoutD3D12.h", |
Corentin Wallez | d8597b2 | 2018-08-30 14:20:28 +0200 | [diff] [blame] | 317 | "src/dawn_native/d3d12/PlatformFunctions.cpp", |
| 318 | "src/dawn_native/d3d12/PlatformFunctions.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 319 | "src/dawn_native/d3d12/QueueD3D12.cpp", |
| 320 | "src/dawn_native/d3d12/QueueD3D12.h", |
Brandon Jones | 700cfe7 | 2019-11-12 18:14:21 +0000 | [diff] [blame] | 321 | "src/dawn_native/d3d12/RenderPassBuilderD3D12.cpp", |
| 322 | "src/dawn_native/d3d12/RenderPassBuilderD3D12.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 323 | "src/dawn_native/d3d12/RenderPipelineD3D12.cpp", |
| 324 | "src/dawn_native/d3d12/RenderPipelineD3D12.h", |
Bryan Bernhart | 0da52f2 | 2019-10-02 21:45:09 +0000 | [diff] [blame] | 325 | "src/dawn_native/d3d12/ResourceAllocatorManagerD3D12.cpp", |
| 326 | "src/dawn_native/d3d12/ResourceAllocatorManagerD3D12.h", |
Bryan Bernhart | e16a901 | 2019-10-09 16:50:42 +0000 | [diff] [blame] | 327 | "src/dawn_native/d3d12/ResourceHeapAllocationD3D12.cpp", |
| 328 | "src/dawn_native/d3d12/ResourceHeapAllocationD3D12.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 329 | "src/dawn_native/d3d12/SamplerD3D12.cpp", |
| 330 | "src/dawn_native/d3d12/SamplerD3D12.h", |
| 331 | "src/dawn_native/d3d12/ShaderModuleD3D12.cpp", |
| 332 | "src/dawn_native/d3d12/ShaderModuleD3D12.h", |
Bryan Bernhart | 74e95ff | 2019-01-29 00:10:07 +0000 | [diff] [blame] | 333 | "src/dawn_native/d3d12/StagingBufferD3D12.cpp", |
| 334 | "src/dawn_native/d3d12/StagingBufferD3D12.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 335 | "src/dawn_native/d3d12/SwapChainD3D12.cpp", |
| 336 | "src/dawn_native/d3d12/SwapChainD3D12.h", |
| 337 | "src/dawn_native/d3d12/TextureCopySplitter.cpp", |
| 338 | "src/dawn_native/d3d12/TextureCopySplitter.h", |
| 339 | "src/dawn_native/d3d12/TextureD3D12.cpp", |
| 340 | "src/dawn_native/d3d12/TextureD3D12.h", |
Yan, Shaobo | 93158eb | 2019-01-04 04:56:08 +0000 | [diff] [blame] | 341 | "src/dawn_native/d3d12/UtilsD3D12.cpp", |
| 342 | "src/dawn_native/d3d12/UtilsD3D12.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 343 | "src/dawn_native/d3d12/d3d12_platform.h", |
| 344 | ] |
| 345 | } |
| 346 | |
| 347 | if (dawn_enable_metal) { |
| 348 | libs += [ |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 349 | "Cocoa.framework", |
Li Hao | 813bfbd | 2018-11-29 10:54:03 +0000 | [diff] [blame] | 350 | "IOKit.framework", |
Corentin Wallez | 0cdf9e0 | 2019-03-01 12:01:18 +0000 | [diff] [blame] | 351 | "IOSurface.framework", |
Corentin Wallez | 3a1746e | 2020-01-15 13:14:12 +0000 | [diff] [blame] | 352 | "QuartzCore.framework", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 353 | ] |
| 354 | sources += [ |
Corentin Wallez | 3a1746e | 2020-01-15 13:14:12 +0000 | [diff] [blame] | 355 | "src/dawn_native/Surface_metal.mm", |
Corentin Wallez | 978fa65a | 2019-02-05 13:02:30 +0000 | [diff] [blame] | 356 | "src/dawn_native/metal/BackendMTL.h", |
| 357 | "src/dawn_native/metal/BackendMTL.mm", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 358 | "src/dawn_native/metal/BufferMTL.h", |
| 359 | "src/dawn_native/metal/BufferMTL.mm", |
| 360 | "src/dawn_native/metal/CommandBufferMTL.h", |
| 361 | "src/dawn_native/metal/CommandBufferMTL.mm", |
Austin Eng | 0c66bcd | 2020-01-15 18:22:53 +0000 | [diff] [blame] | 362 | "src/dawn_native/metal/CommandRecordingContext.h", |
| 363 | "src/dawn_native/metal/CommandRecordingContext.mm", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 364 | "src/dawn_native/metal/ComputePipelineMTL.h", |
| 365 | "src/dawn_native/metal/ComputePipelineMTL.mm", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 366 | "src/dawn_native/metal/DeviceMTL.h", |
| 367 | "src/dawn_native/metal/DeviceMTL.mm", |
| 368 | "src/dawn_native/metal/Forward.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 369 | "src/dawn_native/metal/PipelineLayoutMTL.h", |
| 370 | "src/dawn_native/metal/PipelineLayoutMTL.mm", |
| 371 | "src/dawn_native/metal/QueueMTL.h", |
| 372 | "src/dawn_native/metal/QueueMTL.mm", |
| 373 | "src/dawn_native/metal/RenderPipelineMTL.h", |
| 374 | "src/dawn_native/metal/RenderPipelineMTL.mm", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 375 | "src/dawn_native/metal/SamplerMTL.h", |
| 376 | "src/dawn_native/metal/SamplerMTL.mm", |
| 377 | "src/dawn_native/metal/ShaderModuleMTL.h", |
| 378 | "src/dawn_native/metal/ShaderModuleMTL.mm", |
Bryan Bernhart | 67a73bd | 2019-02-15 21:18:40 +0000 | [diff] [blame] | 379 | "src/dawn_native/metal/StagingBufferMTL.h", |
| 380 | "src/dawn_native/metal/StagingBufferMTL.mm", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 381 | "src/dawn_native/metal/SwapChainMTL.h", |
| 382 | "src/dawn_native/metal/SwapChainMTL.mm", |
| 383 | "src/dawn_native/metal/TextureMTL.h", |
| 384 | "src/dawn_native/metal/TextureMTL.mm", |
Yan, Shaobo | 93158eb | 2019-01-04 04:56:08 +0000 | [diff] [blame] | 385 | "src/dawn_native/metal/UtilsMetal.h", |
| 386 | "src/dawn_native/metal/UtilsMetal.mm", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 387 | ] |
| 388 | } |
| 389 | |
| 390 | if (dawn_enable_null) { |
| 391 | sources += [ |
Corentin Wallez | 97d2a71 | 2019-01-09 08:35:16 +0000 | [diff] [blame] | 392 | "src/dawn_native/null/DeviceNull.cpp", |
| 393 | "src/dawn_native/null/DeviceNull.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 394 | ] |
| 395 | } |
| 396 | |
| 397 | if (dawn_enable_opengl) { |
Corentin Wallez | 23dd124 | 2019-07-22 23:32:29 +0000 | [diff] [blame] | 398 | public_deps += [ |
Corentin Wallez | df69f24 | 2019-06-13 10:22:32 +0000 | [diff] [blame] | 399 | ":libdawn_native_opengl_loader_gen", |
Corentin Wallez | 8f4046b | 2019-06-17 09:17:29 +0000 | [diff] [blame] | 400 | "third_party:khronos_platform", |
Corentin Wallez | df69f24 | 2019-06-13 10:22:32 +0000 | [diff] [blame] | 401 | ] |
| 402 | sources += get_target_outputs(":libdawn_native_opengl_loader_gen") |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 403 | sources += [ |
Corentin Wallez | 90e594e | 2019-01-07 09:48:03 +0000 | [diff] [blame] | 404 | "src/dawn_native/opengl/BackendGL.cpp", |
| 405 | "src/dawn_native/opengl/BackendGL.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 406 | "src/dawn_native/opengl/BufferGL.cpp", |
| 407 | "src/dawn_native/opengl/BufferGL.h", |
| 408 | "src/dawn_native/opengl/CommandBufferGL.cpp", |
| 409 | "src/dawn_native/opengl/CommandBufferGL.h", |
| 410 | "src/dawn_native/opengl/ComputePipelineGL.cpp", |
| 411 | "src/dawn_native/opengl/ComputePipelineGL.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 412 | "src/dawn_native/opengl/DeviceGL.cpp", |
| 413 | "src/dawn_native/opengl/DeviceGL.h", |
| 414 | "src/dawn_native/opengl/Forward.h", |
Corentin Wallez | 4e3b218 | 2019-07-23 06:40:54 +0000 | [diff] [blame] | 415 | "src/dawn_native/opengl/GLFormat.cpp", |
| 416 | "src/dawn_native/opengl/GLFormat.h", |
Corentin Wallez | abdb566 | 2019-06-17 09:01:09 +0000 | [diff] [blame] | 417 | "src/dawn_native/opengl/NativeSwapChainImplGL.cpp", |
| 418 | "src/dawn_native/opengl/NativeSwapChainImplGL.h", |
Corentin Wallez | df69f24 | 2019-06-13 10:22:32 +0000 | [diff] [blame] | 419 | "src/dawn_native/opengl/OpenGLFunctions.cpp", |
| 420 | "src/dawn_native/opengl/OpenGLFunctions.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 421 | "src/dawn_native/opengl/PersistentPipelineStateGL.cpp", |
| 422 | "src/dawn_native/opengl/PersistentPipelineStateGL.h", |
| 423 | "src/dawn_native/opengl/PipelineGL.cpp", |
| 424 | "src/dawn_native/opengl/PipelineGL.h", |
| 425 | "src/dawn_native/opengl/PipelineLayoutGL.cpp", |
| 426 | "src/dawn_native/opengl/PipelineLayoutGL.h", |
| 427 | "src/dawn_native/opengl/QueueGL.cpp", |
| 428 | "src/dawn_native/opengl/QueueGL.h", |
| 429 | "src/dawn_native/opengl/RenderPipelineGL.cpp", |
| 430 | "src/dawn_native/opengl/RenderPipelineGL.h", |
| 431 | "src/dawn_native/opengl/SamplerGL.cpp", |
| 432 | "src/dawn_native/opengl/SamplerGL.h", |
| 433 | "src/dawn_native/opengl/ShaderModuleGL.cpp", |
| 434 | "src/dawn_native/opengl/ShaderModuleGL.h", |
| 435 | "src/dawn_native/opengl/SwapChainGL.cpp", |
| 436 | "src/dawn_native/opengl/SwapChainGL.h", |
| 437 | "src/dawn_native/opengl/TextureGL.cpp", |
| 438 | "src/dawn_native/opengl/TextureGL.h", |
Yan, Shaobo | 93158eb | 2019-01-04 04:56:08 +0000 | [diff] [blame] | 439 | "src/dawn_native/opengl/UtilsGL.cpp", |
| 440 | "src/dawn_native/opengl/UtilsGL.h", |
Corentin Wallez | 8f4046b | 2019-06-17 09:17:29 +0000 | [diff] [blame] | 441 | "src/dawn_native/opengl/opengl_platform.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 442 | ] |
| 443 | } |
| 444 | |
| 445 | if (dawn_enable_vulkan) { |
Corentin Wallez | 23dd124 | 2019-07-22 23:32:29 +0000 | [diff] [blame] | 446 | public_deps += [ "third_party:vulkan_headers" ] |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 447 | sources += [ |
Corentin Wallez | d1be0e7 | 2019-02-04 09:31:09 +0000 | [diff] [blame] | 448 | "src/dawn_native/vulkan/AdapterVk.cpp", |
| 449 | "src/dawn_native/vulkan/AdapterVk.h", |
| 450 | "src/dawn_native/vulkan/BackendVk.cpp", |
| 451 | "src/dawn_native/vulkan/BackendVk.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 452 | "src/dawn_native/vulkan/BindGroupLayoutVk.cpp", |
| 453 | "src/dawn_native/vulkan/BindGroupLayoutVk.h", |
| 454 | "src/dawn_native/vulkan/BindGroupVk.cpp", |
| 455 | "src/dawn_native/vulkan/BindGroupVk.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 456 | "src/dawn_native/vulkan/BufferVk.cpp", |
| 457 | "src/dawn_native/vulkan/BufferVk.h", |
| 458 | "src/dawn_native/vulkan/CommandBufferVk.cpp", |
| 459 | "src/dawn_native/vulkan/CommandBufferVk.h", |
Corentin Wallez | 897ebc7 | 2019-09-18 04:33:12 +0000 | [diff] [blame] | 460 | "src/dawn_native/vulkan/CommandRecordingContext.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 461 | "src/dawn_native/vulkan/ComputePipelineVk.cpp", |
| 462 | "src/dawn_native/vulkan/ComputePipelineVk.h", |
Corentin Wallez | 0558f99 | 2019-11-05 15:44:05 +0000 | [diff] [blame] | 463 | "src/dawn_native/vulkan/DescriptorSetService.cpp", |
| 464 | "src/dawn_native/vulkan/DescriptorSetService.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 465 | "src/dawn_native/vulkan/DeviceVk.cpp", |
| 466 | "src/dawn_native/vulkan/DeviceVk.h", |
Idan Raiter | 74e4834 | 2019-08-10 03:17:52 +0000 | [diff] [blame] | 467 | "src/dawn_native/vulkan/ExternalHandle.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 468 | "src/dawn_native/vulkan/FencedDeleter.cpp", |
| 469 | "src/dawn_native/vulkan/FencedDeleter.h", |
| 470 | "src/dawn_native/vulkan/Forward.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 471 | "src/dawn_native/vulkan/NativeSwapChainImplVk.cpp", |
| 472 | "src/dawn_native/vulkan/NativeSwapChainImplVk.h", |
| 473 | "src/dawn_native/vulkan/PipelineLayoutVk.cpp", |
| 474 | "src/dawn_native/vulkan/PipelineLayoutVk.h", |
| 475 | "src/dawn_native/vulkan/QueueVk.cpp", |
| 476 | "src/dawn_native/vulkan/QueueVk.h", |
| 477 | "src/dawn_native/vulkan/RenderPassCache.cpp", |
| 478 | "src/dawn_native/vulkan/RenderPassCache.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 479 | "src/dawn_native/vulkan/RenderPipelineVk.cpp", |
| 480 | "src/dawn_native/vulkan/RenderPipelineVk.h", |
Corentin Wallez | 60a04dd | 2019-10-24 21:24:27 +0000 | [diff] [blame] | 481 | "src/dawn_native/vulkan/ResourceHeapVk.cpp", |
| 482 | "src/dawn_native/vulkan/ResourceHeapVk.h", |
| 483 | "src/dawn_native/vulkan/ResourceMemoryAllocatorVk.cpp", |
| 484 | "src/dawn_native/vulkan/ResourceMemoryAllocatorVk.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 485 | "src/dawn_native/vulkan/SamplerVk.cpp", |
| 486 | "src/dawn_native/vulkan/SamplerVk.h", |
| 487 | "src/dawn_native/vulkan/ShaderModuleVk.cpp", |
| 488 | "src/dawn_native/vulkan/ShaderModuleVk.h", |
Bryan Bernhart | 96e1911 | 2019-02-06 18:10:12 +0000 | [diff] [blame] | 489 | "src/dawn_native/vulkan/StagingBufferVk.cpp", |
| 490 | "src/dawn_native/vulkan/StagingBufferVk.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 491 | "src/dawn_native/vulkan/SwapChainVk.cpp", |
| 492 | "src/dawn_native/vulkan/SwapChainVk.h", |
| 493 | "src/dawn_native/vulkan/TextureVk.cpp", |
| 494 | "src/dawn_native/vulkan/TextureVk.h", |
Yan, Shaobo | 93158eb | 2019-01-04 04:56:08 +0000 | [diff] [blame] | 495 | "src/dawn_native/vulkan/UtilsVulkan.cpp", |
| 496 | "src/dawn_native/vulkan/UtilsVulkan.h", |
Corentin Wallez | e9212df | 2019-01-04 10:18:40 +0000 | [diff] [blame] | 497 | "src/dawn_native/vulkan/VulkanError.cpp", |
| 498 | "src/dawn_native/vulkan/VulkanError.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 499 | "src/dawn_native/vulkan/VulkanFunctions.cpp", |
| 500 | "src/dawn_native/vulkan/VulkanFunctions.h", |
| 501 | "src/dawn_native/vulkan/VulkanInfo.cpp", |
| 502 | "src/dawn_native/vulkan/VulkanInfo.h", |
Idan Raiter | 74e4834 | 2019-08-10 03:17:52 +0000 | [diff] [blame] | 503 | "src/dawn_native/vulkan/external_memory/MemoryService.h", |
| 504 | "src/dawn_native/vulkan/external_semaphore/SemaphoreService.h", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 505 | ] |
Idan Raiter | 74e4834 | 2019-08-10 03:17:52 +0000 | [diff] [blame] | 506 | |
Brian Ho | 899c170 | 2019-11-21 16:02:10 +0000 | [diff] [blame] | 507 | if (is_chromeos) { |
| 508 | sources += [ |
| 509 | "src/dawn_native/vulkan/external_memory/MemoryServiceDmaBuf.cpp", |
| 510 | "src/dawn_native/vulkan/external_semaphore/SemaphoreServiceOpaqueFD.cpp", |
| 511 | ] |
| 512 | } else if (is_linux) { |
Idan Raiter | 74e4834 | 2019-08-10 03:17:52 +0000 | [diff] [blame] | 513 | sources += [ |
| 514 | "src/dawn_native/vulkan/external_memory/MemoryServiceOpaqueFD.cpp", |
| 515 | "src/dawn_native/vulkan/external_semaphore/SemaphoreServiceOpaqueFD.cpp", |
| 516 | ] |
David 'Digit' Turner | fa00c69 | 2019-09-10 10:07:28 +0000 | [diff] [blame] | 517 | } else if (is_fuchsia) { |
| 518 | sources += [ |
| 519 | "src/dawn_native/vulkan/external_memory/MemoryServiceZirconHandle.cpp", |
| 520 | "src/dawn_native/vulkan/external_semaphore/SemaphoreServiceZirconHandle.cpp", |
| 521 | ] |
Idan Raiter | 74e4834 | 2019-08-10 03:17:52 +0000 | [diff] [blame] | 522 | } else { |
| 523 | sources += [ |
| 524 | "src/dawn_native/vulkan/external_memory/MemoryServiceNull.cpp", |
| 525 | "src/dawn_native/vulkan/external_semaphore/SemaphoreServiceNull.cpp", |
| 526 | ] |
| 527 | } |
David 'Digit' Turner | b749d07 | 2019-09-09 10:52:08 +0000 | [diff] [blame] | 528 | if (build_with_chromium && is_fuchsia) { |
| 529 | # Necessary to ensure that the Vulkan libraries will be in the |
| 530 | # final Fuchsia package. |
| 531 | data_deps = [ |
| 532 | # NOTE: The line below is a work around for http://crbug.com/1001081 |
| 533 | "//third_party/fuchsia-sdk/sdk:trace_engine", |
| 534 | "//third_party/fuchsia-sdk:vulkan_base", |
| 535 | "//third_party/fuchsia-sdk:vulkan_validation", |
| 536 | ] |
| 537 | } |
Li, Hao | 0e1bef3 | 2019-11-07 12:13:27 +0000 | [diff] [blame] | 538 | if (dawn_enable_vulkan_validation_layers) { |
Ryan Harrison | 8f3dc58 | 2019-11-20 18:10:11 +0000 | [diff] [blame] | 539 | defines += [ |
Li, Hao | 0e1bef3 | 2019-11-07 12:13:27 +0000 | [diff] [blame] | 540 | "DAWN_ENABLE_VULKAN_VALIDATION_LAYERS", |
| 541 | "DAWN_VK_DATA_DIR=\"$vulkan_data_subdir\"", |
| 542 | ] |
| 543 | } |
Corentin Wallez | 74cebd6 | 2019-11-26 18:21:51 +0000 | [diff] [blame] | 544 | |
| 545 | if (use_swiftshader) { |
Austin Eng | 636e6ce | 2020-01-16 00:34:30 +0000 | [diff] [blame] | 546 | data_deps += [ |
| 547 | "${dawn_swiftshader_dir}/src/Vulkan:icd_file", |
| 548 | "${dawn_swiftshader_dir}/src/Vulkan:swiftshader_libvulkan", |
| 549 | ] |
| 550 | defines += [ |
| 551 | "DAWN_ENABLE_SWIFTSHADER", |
| 552 | "DAWN_SWIFTSHADER_VK_ICD_JSON=\"${swiftshader_icd_file_name}\"", |
| 553 | ] |
Corentin Wallez | 74cebd6 | 2019-11-26 18:21:51 +0000 | [diff] [blame] | 554 | } |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 555 | } |
Corentin Wallez | 3a1746e | 2020-01-15 13:14:12 +0000 | [diff] [blame] | 556 | |
| 557 | if (dawn_use_x11) { |
| 558 | libs += [ "X11" ] |
| 559 | } |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 560 | } |
| 561 | |
Corentin Wallez | bd48385 | 2019-01-09 09:05:18 +0000 | [diff] [blame] | 562 | # The static and shared libraries for libdawn_native. Most of the files are |
| 563 | # already compiled in libdawn_native_sources, but we still need to compile |
| 564 | # files defining exported symbols. |
Corentin Wallez | da8ee83 | 2019-01-25 03:20:20 +0000 | [diff] [blame] | 565 | dawn_component("libdawn_native") { |
Corentin Wallez | bd48385 | 2019-01-09 09:05:18 +0000 | [diff] [blame] | 566 | DEFINE_PREFIX = "DAWN_NATIVE" |
Corentin Wallez | d2969a7 | 2018-08-12 21:07:46 +0200 | [diff] [blame] | 567 | |
| 568 | #Make headers publically visible |
| 569 | public_deps = [ |
| 570 | ":libdawn_native_headers", |
| 571 | ] |
Corentin Wallez | 649e2fe | 2018-08-03 15:57:43 +0200 | [diff] [blame] | 572 | |
Corentin Wallez | bd48385 | 2019-01-09 09:05:18 +0000 | [diff] [blame] | 573 | deps = [ |
Austin Eng | c7f416c | 2019-01-15 20:49:53 +0000 | [diff] [blame] | 574 | ":libdawn_native_sources", |
Corentin Wallez | 579cf62 | 2019-03-07 01:46:39 +0000 | [diff] [blame] | 575 | "${dawn_root}/src/common", |
Corentin Wallez | bd48385 | 2019-01-09 09:05:18 +0000 | [diff] [blame] | 576 | ] |
| 577 | sources = [ |
| 578 | "src/dawn_native/DawnNative.cpp", |
| 579 | ] |
| 580 | configs = [ ":libdawn_native_internal" ] |
Pawel Pluciennik | 20b4162 | 2019-10-24 09:44:13 +0000 | [diff] [blame] | 581 | public_configs = [ ":libdawn_native_weak_framework" ] |
Corentin Wallez | bd48385 | 2019-01-09 09:05:18 +0000 | [diff] [blame] | 582 | |
| 583 | if (dawn_enable_d3d12) { |
| 584 | sources += [ "src/dawn_native/d3d12/D3D12Backend.cpp" ] |
| 585 | } |
| 586 | if (dawn_enable_metal) { |
| 587 | sources += [ "src/dawn_native/metal/MetalBackend.mm" ] |
| 588 | } |
| 589 | if (dawn_enable_null) { |
| 590 | sources += [ "src/dawn_native/null/NullBackend.cpp" ] |
| 591 | } |
| 592 | if (dawn_enable_opengl) { |
| 593 | sources += [ "src/dawn_native/opengl/OpenGLBackend.cpp" ] |
Corentin Wallez | bd48385 | 2019-01-09 09:05:18 +0000 | [diff] [blame] | 594 | } |
| 595 | if (dawn_enable_vulkan) { |
| 596 | sources += [ "src/dawn_native/vulkan/VulkanBackend.cpp" ] |
Li, Hao | 0e1bef3 | 2019-11-07 12:13:27 +0000 | [diff] [blame] | 597 | |
| 598 | if (dawn_enable_vulkan_validation_layers) { |
| 599 | data_deps = [ |
| 600 | "${dawn_vulkan_validation_layers_dir}:vulkan_validation_layers", |
| 601 | ] |
| 602 | if (!is_android) { |
| 603 | data_deps += |
| 604 | [ "${dawn_vulkan_validation_layers_dir}:vulkan_gen_json_files" ] |
| 605 | } |
| 606 | } |
Corentin Wallez | 649e2fe | 2018-08-03 15:57:43 +0200 | [diff] [blame] | 607 | } |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 608 | } |
| 609 | |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 610 | ############################################################################### |
Corentin Wallez | bd48385 | 2019-01-09 09:05:18 +0000 | [diff] [blame] | 611 | # libdawn_wire |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 612 | ############################################################################### |
| 613 | |
Corentin Wallez | 031fbbb | 2019-06-11 18:03:05 +0000 | [diff] [blame] | 614 | dawn_json_generator("libdawn_wire_gen") { |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 615 | target = "dawn_wire" |
Corentin Wallez | 59e7fad | 2018-08-16 15:32:35 +0200 | [diff] [blame] | 616 | outputs = [ |
Corentin Wallez | 897ebc7 | 2019-09-18 04:33:12 +0000 | [diff] [blame] | 617 | "src/dawn_wire/WireCmd_autogen.h", |
| 618 | "src/dawn_wire/WireCmd_autogen.cpp", |
| 619 | "src/dawn_wire/client/ApiObjects_autogen.h", |
| 620 | "src/dawn_wire/client/ApiProcs_autogen.cpp", |
| 621 | "src/dawn_wire/client/ApiProcs_autogen.h", |
| 622 | "src/dawn_wire/client/ClientBase_autogen.h", |
| 623 | "src/dawn_wire/client/ClientHandlers_autogen.cpp", |
| 624 | "src/dawn_wire/client/ClientPrototypes_autogen.inc", |
| 625 | "src/dawn_wire/server/ServerBase_autogen.h", |
| 626 | "src/dawn_wire/server/ServerDoers_autogen.cpp", |
| 627 | "src/dawn_wire/server/ServerHandlers_autogen.cpp", |
| 628 | "src/dawn_wire/server/ServerPrototypes_autogen.inc", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 629 | ] |
| 630 | } |
| 631 | |
Corentin Wallez | da8ee83 | 2019-01-25 03:20:20 +0000 | [diff] [blame] | 632 | dawn_component("libdawn_wire") { |
Corentin Wallez | bd48385 | 2019-01-09 09:05:18 +0000 | [diff] [blame] | 633 | DEFINE_PREFIX = "DAWN_WIRE" |
| 634 | |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 635 | deps = [ |
Corentin Wallez | 59e7fad | 2018-08-16 15:32:35 +0200 | [diff] [blame] | 636 | ":libdawn_wire_gen", |
Corentin Wallez | 579cf62 | 2019-03-07 01:46:39 +0000 | [diff] [blame] | 637 | "${dawn_root}/src/common", |
Austin Eng | 8c1a9019 | 2019-03-08 00:51:27 +0000 | [diff] [blame] | 638 | "${dawn_root}/src/dawn_wire:libdawn_wire_headers", |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 639 | ] |
Corentin Wallez | d2969a7 | 2018-08-12 21:07:46 +0200 | [diff] [blame] | 640 | |
Corentin Wallez | 579cf62 | 2019-03-07 01:46:39 +0000 | [diff] [blame] | 641 | configs = [ "${dawn_root}/src/common:dawn_internal" ] |
Corentin Wallez | 59e7fad | 2018-08-16 15:32:35 +0200 | [diff] [blame] | 642 | sources = get_target_outputs(":libdawn_wire_gen") |
Austin Eng | c7f416c | 2019-01-15 20:49:53 +0000 | [diff] [blame] | 643 | sources += [ |
Austin Eng | e2c8513 | 2019-02-11 21:50:16 +0000 | [diff] [blame] | 644 | "src/dawn_wire/WireClient.cpp", |
Austin Eng | c7f416c | 2019-01-15 20:49:53 +0000 | [diff] [blame] | 645 | "src/dawn_wire/WireDeserializeAllocator.cpp", |
| 646 | "src/dawn_wire/WireDeserializeAllocator.h", |
Austin Eng | e2c8513 | 2019-02-11 21:50:16 +0000 | [diff] [blame] | 647 | "src/dawn_wire/WireServer.cpp", |
Austin Eng | acd8b7d | 2019-01-16 02:18:06 +0000 | [diff] [blame] | 648 | "src/dawn_wire/client/ApiObjects.h", |
| 649 | "src/dawn_wire/client/ApiProcs.cpp", |
| 650 | "src/dawn_wire/client/Buffer.cpp", |
| 651 | "src/dawn_wire/client/Buffer.h", |
| 652 | "src/dawn_wire/client/Client.cpp", |
| 653 | "src/dawn_wire/client/Client.h", |
Austin Eng | 1139d1c | 2019-01-30 03:00:17 +0000 | [diff] [blame] | 654 | "src/dawn_wire/client/ClientDoers.cpp", |
Austin Eng | 6a5418a | 2019-07-19 16:01:48 +0000 | [diff] [blame] | 655 | "src/dawn_wire/client/ClientInlineMemoryTransferService.cpp", |
Austin Eng | cd4fd8e | 2019-01-30 02:31:37 +0000 | [diff] [blame] | 656 | "src/dawn_wire/client/Device.cpp", |
| 657 | "src/dawn_wire/client/Device.h", |
Austin Eng | acd8b7d | 2019-01-16 02:18:06 +0000 | [diff] [blame] | 658 | "src/dawn_wire/client/Fence.cpp", |
| 659 | "src/dawn_wire/client/Fence.h", |
| 660 | "src/dawn_wire/client/ObjectAllocator.h", |
Austin Eng | fd4688e | 2019-01-30 02:20:58 +0000 | [diff] [blame] | 661 | "src/dawn_wire/server/ObjectStorage.h", |
| 662 | "src/dawn_wire/server/Server.cpp", |
| 663 | "src/dawn_wire/server/Server.h", |
| 664 | "src/dawn_wire/server/ServerBuffer.cpp", |
| 665 | "src/dawn_wire/server/ServerDevice.cpp", |
| 666 | "src/dawn_wire/server/ServerFence.cpp", |
Austin Eng | 6a5418a | 2019-07-19 16:01:48 +0000 | [diff] [blame] | 667 | "src/dawn_wire/server/ServerInlineMemoryTransferService.cpp", |
Austin Eng | fd4688e | 2019-01-30 02:20:58 +0000 | [diff] [blame] | 668 | "src/dawn_wire/server/ServerQueue.cpp", |
Austin Eng | c7f416c | 2019-01-15 20:49:53 +0000 | [diff] [blame] | 669 | ] |
Corentin Wallez | 59e7fad | 2018-08-16 15:32:35 +0200 | [diff] [blame] | 670 | |
Corentin Wallez | 2ec59d9 | 2018-11-14 21:04:26 +0000 | [diff] [blame] | 671 | # Make headers publically visible |
| 672 | public_deps = [ |
Austin Eng | 8c1a9019 | 2019-03-08 00:51:27 +0000 | [diff] [blame] | 673 | "${dawn_root}/src/dawn_wire:libdawn_wire_headers", |
Corentin Wallez | 2ec59d9 | 2018-11-14 21:04:26 +0000 | [diff] [blame] | 674 | ] |
Corentin Wallez | 649e2fe | 2018-08-03 15:57:43 +0200 | [diff] [blame] | 675 | } |
| 676 | |
| 677 | ############################################################################### |
David 'Digit' Turner | b749d07 | 2019-09-09 10:52:08 +0000 | [diff] [blame] | 678 | # GLFW wrapping target |
| 679 | ############################################################################### |
| 680 | |
Corentin Wallez | 3a1746e | 2020-01-15 13:14:12 +0000 | [diff] [blame] | 681 | supports_glfw_for_windowing = is_win || (is_linux && !is_chromeos) || is_mac |
| 682 | |
Corentin Wallez | fad96f6 | 2019-09-11 16:53:46 +0000 | [diff] [blame] | 683 | # GLFW does not support ChromeOS, Android or Fuchsia, so provide a small mock |
| 684 | # library that can be linked into the Dawn tests on these platforms. Otherwise, |
| 685 | # use the real library from third_party/. |
Corentin Wallez | 3a1746e | 2020-01-15 13:14:12 +0000 | [diff] [blame] | 686 | if (supports_glfw_for_windowing) { |
Corentin Wallez | fad96f6 | 2019-09-11 16:53:46 +0000 | [diff] [blame] | 687 | group("dawn_glfw") { |
| 688 | public_deps = [ |
| 689 | "third_party:glfw", |
| 690 | ] |
| 691 | } |
| 692 | } else if (is_fuchsia) { |
| 693 | # The mock implementation of GLFW on Fuchsia |
David 'Digit' Turner | b749d07 | 2019-09-09 10:52:08 +0000 | [diff] [blame] | 694 | config("dawn_glfw_public_config") { |
| 695 | # Allow inclusion of <GLFW/glfw3.h> |
David 'Digit' Turner | 47f3b0d | 2019-09-12 12:50:31 +0000 | [diff] [blame] | 696 | include_dirs = [ "${dawn_glfw_dir}/include" ] |
| 697 | |
David 'Digit' Turner | b749d07 | 2019-09-09 10:52:08 +0000 | [diff] [blame] | 698 | # The GLFW/glfw3.h header includes <GL/gl.h> by default, but the latter |
| 699 | # does not exist on Fuchsia. Defining GLFW_INCLUDE_NONE helps work around |
| 700 | # the issue, but it needs to be defined for any file that includes the |
| 701 | # header. |
| 702 | defines = [ |
| 703 | "GLFW_INCLUDE_NONE", |
| 704 | "GLFW_INCLUDE_VULKAN", |
| 705 | ] |
| 706 | } |
| 707 | |
| 708 | static_library("dawn_glfw") { |
| 709 | sources = [ |
| 710 | # NOTE: The header below is required to pass "gn check". |
| 711 | "${dawn_glfw_dir}/include/GLFW/glfw3.h", |
| 712 | "src/utils/Glfw3Fuchsia.cpp", |
| 713 | ] |
| 714 | public_configs = [ ":dawn_glfw_public_config" ] |
| 715 | deps = [ |
| 716 | "${dawn_root}/src/common", |
| 717 | ] |
| 718 | } |
| 719 | } else { |
Corentin Wallez | fad96f6 | 2019-09-11 16:53:46 +0000 | [diff] [blame] | 720 | # Just skip GLFW on other systems |
David 'Digit' Turner | b749d07 | 2019-09-09 10:52:08 +0000 | [diff] [blame] | 721 | group("dawn_glfw") { |
David 'Digit' Turner | b749d07 | 2019-09-09 10:52:08 +0000 | [diff] [blame] | 722 | } |
| 723 | } |
| 724 | |
| 725 | ############################################################################### |
Corentin Wallez | 649e2fe | 2018-08-03 15:57:43 +0200 | [diff] [blame] | 726 | # Utils for tests and samples |
| 727 | ############################################################################### |
| 728 | |
| 729 | static_library("dawn_utils") { |
Corentin Wallez | 579cf62 | 2019-03-07 01:46:39 +0000 | [diff] [blame] | 730 | configs += [ "${dawn_root}/src/common:dawn_internal" ] |
Corentin Wallez | 649e2fe | 2018-08-03 15:57:43 +0200 | [diff] [blame] | 731 | |
| 732 | sources = [ |
Austin Eng | 8a488c1 | 2019-08-13 22:12:54 +0000 | [diff] [blame] | 733 | "src/utils/ComboRenderBundleEncoderDescriptor.cpp", |
| 734 | "src/utils/ComboRenderBundleEncoderDescriptor.h", |
Yan, Shaobo | a492427 | 2018-12-10 19:47:22 +0000 | [diff] [blame] | 735 | "src/utils/ComboRenderPipelineDescriptor.cpp", |
| 736 | "src/utils/ComboRenderPipelineDescriptor.h", |
Corentin Wallez | 649e2fe | 2018-08-03 15:57:43 +0200 | [diff] [blame] | 737 | "src/utils/SystemUtils.cpp", |
| 738 | "src/utils/SystemUtils.h", |
| 739 | "src/utils/TerribleCommandBuffer.cpp", |
| 740 | "src/utils/TerribleCommandBuffer.h", |
Austin Eng | ca0eac3 | 2019-08-28 23:18:10 +0000 | [diff] [blame] | 741 | "src/utils/Timer.h", |
Corentin Wallez | 04863c4 | 2019-10-25 11:36:47 +0000 | [diff] [blame] | 742 | "src/utils/WGPUHelpers.cpp", |
| 743 | "src/utils/WGPUHelpers.h", |
Corentin Wallez | 649e2fe | 2018-08-03 15:57:43 +0200 | [diff] [blame] | 744 | ] |
Corentin Wallez | 649e2fe | 2018-08-03 15:57:43 +0200 | [diff] [blame] | 745 | deps = [ |
Corentin Wallez | 649e2fe | 2018-08-03 15:57:43 +0200 | [diff] [blame] | 746 | ":libdawn_native", |
Corentin Wallez | d2969a7 | 2018-08-12 21:07:46 +0200 | [diff] [blame] | 747 | ":libdawn_wire", |
Corentin Wallez | 579cf62 | 2019-03-07 01:46:39 +0000 | [diff] [blame] | 748 | "${dawn_root}/src/common", |
Corentin Wallez | 16092fa | 2018-10-04 17:17:57 +0000 | [diff] [blame] | 749 | "${dawn_shaderc_dir}:libshaderc", |
Brian Ho | 2fb628d | 2019-08-13 21:45:44 +0000 | [diff] [blame] | 750 | ] |
Corentin Wallez | 3a1746e | 2020-01-15 13:14:12 +0000 | [diff] [blame] | 751 | libs = [] |
| 752 | |
| 753 | if (is_win) { |
| 754 | sources += [ "src/utils/WindowsTimer.cpp" ] |
| 755 | } else if (is_mac) { |
| 756 | sources += [ |
| 757 | "src/utils/OSXTimer.cpp", |
| 758 | "src/utils/ObjCUtils.h", |
| 759 | "src/utils/ObjCUtils.mm", |
| 760 | ] |
| 761 | libs += [ "QuartzCore.framework" ] |
| 762 | } else { |
| 763 | sources += [ "src/utils/PosixTimer.cpp" ] |
| 764 | } |
| 765 | |
| 766 | if (supports_glfw_for_windowing) { |
| 767 | sources += [ |
| 768 | "src/utils/GLFWUtils.cpp", |
| 769 | "src/utils/GLFWUtils.h", |
| 770 | ] |
| 771 | deps += [ ":dawn_glfw" ] |
| 772 | |
| 773 | if (dawn_enable_metal) { |
| 774 | sources += [ "src/utils/GLFWUtils_metal.mm" ] |
| 775 | libs += [ "Metal.framework" ] |
| 776 | } |
| 777 | } |
| 778 | |
| 779 | public_deps = [ |
| 780 | "${dawn_root}/src/dawn:dawncpp_headers", |
| 781 | ] |
Brian Ho | 2fb628d | 2019-08-13 21:45:44 +0000 | [diff] [blame] | 782 | } |
| 783 | |
Corentin Wallez | 649e2fe | 2018-08-03 15:57:43 +0200 | [diff] [blame] | 784 | ############################################################################### |
| 785 | # Dawn test targets |
| 786 | ############################################################################### |
| 787 | |
Corentin Wallez | 45b51f5 | 2019-10-28 22:15:47 +0000 | [diff] [blame] | 788 | dawn_json_generator("mock_webgpu_gen") { |
| 789 | target = "mock_webgpu" |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 790 | outputs = [ |
Corentin Wallez | 45b51f5 | 2019-10-28 22:15:47 +0000 | [diff] [blame] | 791 | "src/dawn/mock_webgpu.h", |
| 792 | "src/dawn/mock_webgpu.cpp", |
Corentin Wallez | 649e2fe | 2018-08-03 15:57:43 +0200 | [diff] [blame] | 793 | ] |
| 794 | } |
| 795 | |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 796 | test("dawn_unittests") { |
Corentin Wallez | 579cf62 | 2019-03-07 01:46:39 +0000 | [diff] [blame] | 797 | configs += [ "${dawn_root}/src/common:dawn_internal" ] |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 798 | |
Corentin Wallez | 649e2fe | 2018-08-03 15:57:43 +0200 | [diff] [blame] | 799 | deps = [ |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 800 | ":dawn_utils", |
Corentin Wallez | bd48385 | 2019-01-09 09:05:18 +0000 | [diff] [blame] | 801 | ":libdawn_native", |
Austin Eng | c7f416c | 2019-01-15 20:49:53 +0000 | [diff] [blame] | 802 | ":libdawn_native_sources", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 803 | ":libdawn_wire", |
Corentin Wallez | 45b51f5 | 2019-10-28 22:15:47 +0000 | [diff] [blame] | 804 | ":mock_webgpu_gen", |
Corentin Wallez | 579cf62 | 2019-03-07 01:46:39 +0000 | [diff] [blame] | 805 | "${dawn_root}/src/common", |
Corentin Wallez | 9649682 | 2019-10-15 11:44:38 +0000 | [diff] [blame] | 806 | "${dawn_root}/src/dawn:dawncpp", |
| 807 | "${dawn_root}/src/dawn:libdawn_proc", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 808 | "third_party:gmock_and_gtest", |
Corentin Wallez | 649e2fe | 2018-08-03 15:57:43 +0200 | [diff] [blame] | 809 | ] |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 810 | |
| 811 | # Add internal Dawn Native headers and config for internal unittests. |
| 812 | deps += [ ":libdawn_native_headers" ] |
| 813 | configs += [ ":libdawn_native_internal" ] |
| 814 | |
Corentin Wallez | 45b51f5 | 2019-10-28 22:15:47 +0000 | [diff] [blame] | 815 | sources = get_target_outputs(":mock_webgpu_gen") |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 816 | sources += [ |
Austin Eng | 72724b8 | 2019-07-19 16:16:58 +0000 | [diff] [blame] | 817 | "src/dawn_wire/client/ClientMemoryTransferService_mock.cpp", |
| 818 | "src/dawn_wire/client/ClientMemoryTransferService_mock.h", |
| 819 | "src/dawn_wire/server/ServerMemoryTransferService_mock.cpp", |
| 820 | "src/dawn_wire/server/ServerMemoryTransferService_mock.h", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 821 | "src/tests/unittests/BitSetIteratorTests.cpp", |
Bryan Bernhart | 35ad522 | 2019-07-30 16:46:10 +0000 | [diff] [blame] | 822 | "src/tests/unittests/BuddyAllocatorTests.cpp", |
Bryan Bernhart | 21dfc91 | 2019-10-03 18:17:31 +0000 | [diff] [blame] | 823 | "src/tests/unittests/BuddyMemoryAllocatorTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 824 | "src/tests/unittests/CommandAllocatorTests.cpp", |
| 825 | "src/tests/unittests/EnumClassBitmasksTests.cpp", |
| 826 | "src/tests/unittests/ErrorTests.cpp", |
Jiawei Shao | 574b951 | 2019-08-02 00:06:38 +0000 | [diff] [blame] | 827 | "src/tests/unittests/ExtensionTests.cpp", |
Corentin Wallez | c57b180 | 2019-10-15 12:08:48 +0000 | [diff] [blame] | 828 | "src/tests/unittests/GetProcAddressTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 829 | "src/tests/unittests/MathTests.cpp", |
| 830 | "src/tests/unittests/ObjectBaseTests.cpp", |
| 831 | "src/tests/unittests/PerStageTests.cpp", |
| 832 | "src/tests/unittests/RefCountedTests.cpp", |
| 833 | "src/tests/unittests/ResultTests.cpp", |
Bryan Bernhart | 450e212 | 2019-09-18 22:06:41 +0000 | [diff] [blame] | 834 | "src/tests/unittests/RingBufferAllocatorTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 835 | "src/tests/unittests/SerialMapTests.cpp", |
| 836 | "src/tests/unittests/SerialQueueTests.cpp", |
Li, Hao | 0e1bef3 | 2019-11-07 12:13:27 +0000 | [diff] [blame] | 837 | "src/tests/unittests/SystemUtilsTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 838 | "src/tests/unittests/ToBackendTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 839 | "src/tests/unittests/validation/BindGroupValidationTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 840 | "src/tests/unittests/validation/BufferValidationTests.cpp", |
| 841 | "src/tests/unittests/validation/CommandBufferValidationTests.cpp", |
Idan Raiter | 05f7ad5 | 2019-06-10 20:56:27 +0000 | [diff] [blame] | 842 | "src/tests/unittests/validation/ComputeIndirectValidationTests.cpp", |
Austin Eng | 7b3cc35 | 2019-10-22 17:28:20 +0000 | [diff] [blame] | 843 | "src/tests/unittests/validation/ComputePassValidationTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 844 | "src/tests/unittests/validation/ComputeValidationTests.cpp", |
| 845 | "src/tests/unittests/validation/CopyCommandsValidationTests.cpp", |
Brandon Jones | 11d32c8 | 2019-02-20 20:21:00 +0000 | [diff] [blame] | 846 | "src/tests/unittests/validation/DebugMarkerValidationTests.cpp", |
Idan Raiter | 05f7ad5 | 2019-06-10 20:56:27 +0000 | [diff] [blame] | 847 | "src/tests/unittests/validation/DrawIndirectValidationTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 848 | "src/tests/unittests/validation/DynamicStateCommandValidationTests.cpp", |
Austin Eng | f35dcfe | 2019-09-10 23:19:11 +0000 | [diff] [blame] | 849 | "src/tests/unittests/validation/ErrorScopeValidationTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 850 | "src/tests/unittests/validation/FenceValidationTests.cpp", |
Austin Eng | f6eb890 | 2019-11-22 17:02:22 +0000 | [diff] [blame] | 851 | "src/tests/unittests/validation/GetBindGroupLayoutValidationTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 852 | "src/tests/unittests/validation/QueueSubmitValidationTests.cpp", |
Austin Eng | 8a488c1 | 2019-08-13 22:12:54 +0000 | [diff] [blame] | 853 | "src/tests/unittests/validation/RenderBundleValidationTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 854 | "src/tests/unittests/validation/RenderPassDescriptorValidationTests.cpp", |
Austin Eng | 27a294c | 2019-03-28 15:28:01 +0000 | [diff] [blame] | 855 | "src/tests/unittests/validation/RenderPassValidationTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 856 | "src/tests/unittests/validation/RenderPipelineValidationTests.cpp", |
Idan Raiter | 1c85976 | 2019-05-22 17:18:52 +0000 | [diff] [blame] | 857 | "src/tests/unittests/validation/SamplerValidationTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 858 | "src/tests/unittests/validation/ShaderModuleValidationTests.cpp", |
Jiawei Shao | 8bff3b2 | 2018-12-12 09:27:16 +0000 | [diff] [blame] | 859 | "src/tests/unittests/validation/TextureValidationTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 860 | "src/tests/unittests/validation/TextureViewValidationTests.cpp", |
Jiawei Shao | 15d4c2e | 2019-04-26 07:52:57 +0000 | [diff] [blame] | 861 | "src/tests/unittests/validation/ToggleValidationTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 862 | "src/tests/unittests/validation/ValidationTest.cpp", |
| 863 | "src/tests/unittests/validation/ValidationTest.h", |
| 864 | "src/tests/unittests/validation/VertexBufferValidationTests.cpp", |
Kai Ninomiya | ae1f25f | 2019-11-07 22:23:29 +0000 | [diff] [blame] | 865 | "src/tests/unittests/validation/VertexStateValidationTests.cpp", |
Austin Eng | 1198270 | 2019-02-14 18:47:07 +0000 | [diff] [blame] | 866 | "src/tests/unittests/wire/WireArgumentTests.cpp", |
| 867 | "src/tests/unittests/wire/WireBasicTests.cpp", |
| 868 | "src/tests/unittests/wire/WireBufferMappingTests.cpp", |
Corentin Wallez | 0ae00a1 | 2019-03-28 17:12:47 +0000 | [diff] [blame] | 869 | "src/tests/unittests/wire/WireErrorCallbackTests.cpp", |
Austin Eng | 1198270 | 2019-02-14 18:47:07 +0000 | [diff] [blame] | 870 | "src/tests/unittests/wire/WireFenceTests.cpp", |
Corentin Wallez | 339bd9d | 2019-03-28 12:57:11 +0000 | [diff] [blame] | 871 | "src/tests/unittests/wire/WireInjectTextureTests.cpp", |
Austin Eng | 72724b8 | 2019-07-19 16:16:58 +0000 | [diff] [blame] | 872 | "src/tests/unittests/wire/WireMemoryTransferServiceTests.cpp", |
Austin Eng | 1198270 | 2019-02-14 18:47:07 +0000 | [diff] [blame] | 873 | "src/tests/unittests/wire/WireOptionalTests.cpp", |
| 874 | "src/tests/unittests/wire/WireTest.cpp", |
| 875 | "src/tests/unittests/wire/WireTest.h", |
Corentin Wallez | 1fdcb16 | 2019-10-24 22:27:27 +0000 | [diff] [blame] | 876 | "src/tests/unittests/wire/WireWGPUDevicePropertiesTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 877 | ] |
| 878 | |
| 879 | if (dawn_enable_d3d12) { |
| 880 | sources += [ "src/tests/unittests/d3d12/CopySplitTests.cpp" ] |
| 881 | } |
| 882 | |
| 883 | # When building inside Chromium, use their gtest main function because it is |
| 884 | # needed to run in swarming correctly. |
| 885 | if (build_with_chromium) { |
| 886 | sources += [ "//gpu/dawn_unittests_main.cc" ] |
| 887 | } else { |
| 888 | sources += [ "src/tests/UnittestsMain.cpp" ] |
| 889 | } |
| 890 | } |
| 891 | |
Idan Raiter | 74e4834 | 2019-08-10 03:17:52 +0000 | [diff] [blame] | 892 | source_set("dawn_end2end_tests_sources") { |
Corentin Wallez | 579cf62 | 2019-03-07 01:46:39 +0000 | [diff] [blame] | 893 | configs += [ "${dawn_root}/src/common:dawn_internal" ] |
Idan Raiter | 74e4834 | 2019-08-10 03:17:52 +0000 | [diff] [blame] | 894 | testonly = true |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 895 | |
| 896 | deps = [ |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 897 | ":dawn_utils", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 898 | ":libdawn_native", |
| 899 | ":libdawn_wire", |
Corentin Wallez | 579cf62 | 2019-03-07 01:46:39 +0000 | [diff] [blame] | 900 | "${dawn_root}/src/common", |
Corentin Wallez | 9649682 | 2019-10-15 11:44:38 +0000 | [diff] [blame] | 901 | "${dawn_root}/src/dawn:dawncpp", |
| 902 | "${dawn_root}/src/dawn:libdawn_proc", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 903 | "third_party:gmock_and_gtest", |
| 904 | ] |
| 905 | |
| 906 | sources = [ |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 907 | "src/tests/DawnTest.h", |
| 908 | "src/tests/end2end/BasicTests.cpp", |
| 909 | "src/tests/end2end/BindGroupTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 910 | "src/tests/end2end/BufferTests.cpp", |
Jiawei Shao | 5490e9a | 2019-03-27 00:01:33 +0000 | [diff] [blame] | 911 | "src/tests/end2end/ClipSpaceTests.cpp", |
Yunchao He | 7775258 | 2019-02-16 02:27:30 +0000 | [diff] [blame] | 912 | "src/tests/end2end/ColorStateTests.cpp", |
Jiawei Shao | 72508d6 | 2019-07-02 23:55:55 +0000 | [diff] [blame] | 913 | "src/tests/end2end/CompressedTextureFormatTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 914 | "src/tests/end2end/ComputeCopyStorageBufferTests.cpp", |
Idan Raiter | 05f7ad5 | 2019-06-10 20:56:27 +0000 | [diff] [blame] | 915 | "src/tests/end2end/ComputeIndirectTests.cpp", |
Kai Ninomiya | 8e97b4c | 2019-04-26 02:08:12 +0000 | [diff] [blame] | 916 | "src/tests/end2end/ComputeSharedMemoryTests.cpp", |
Austin Eng | 7b3cc35 | 2019-10-22 17:28:20 +0000 | [diff] [blame] | 917 | "src/tests/end2end/ComputeStorageBufferBarrierTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 918 | "src/tests/end2end/CopyTests.cpp", |
Yunchao He | d2631f8 | 2019-07-06 00:11:10 +0000 | [diff] [blame] | 919 | "src/tests/end2end/CullingTests.cpp", |
Brandon Jones | 11d32c8 | 2019-02-20 20:21:00 +0000 | [diff] [blame] | 920 | "src/tests/end2end/DebugMarkerTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 921 | "src/tests/end2end/DepthStencilStateTests.cpp", |
Natasha Lee | cae68ff | 2019-03-27 22:04:10 +0000 | [diff] [blame] | 922 | "src/tests/end2end/DestroyTests.cpp", |
Natasha Lee | 0ecc48e | 2020-01-15 19:02:13 +0000 | [diff] [blame] | 923 | "src/tests/end2end/DeviceLostTests.cpp", |
Idan Raiter | 05f7ad5 | 2019-06-10 20:56:27 +0000 | [diff] [blame] | 924 | "src/tests/end2end/DrawIndexedIndirectTests.cpp", |
Jiawei Shao | ff9562f | 2018-12-13 01:05:26 +0000 | [diff] [blame] | 925 | "src/tests/end2end/DrawIndexedTests.cpp", |
Idan Raiter | 05f7ad5 | 2019-06-10 20:56:27 +0000 | [diff] [blame] | 926 | "src/tests/end2end/DrawIndirectTests.cpp", |
Li Hao | 45da8c0 | 2019-01-30 09:01:08 +0000 | [diff] [blame] | 927 | "src/tests/end2end/DrawTests.cpp", |
Yan, Shaobo | 34f2fe8 | 2019-05-23 00:45:12 +0000 | [diff] [blame] | 928 | "src/tests/end2end/DynamicBufferOffsetTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 929 | "src/tests/end2end/FenceTests.cpp", |
Yunchao He | 612a63a | 2019-11-18 04:28:24 +0000 | [diff] [blame] | 930 | "src/tests/end2end/GpuMemorySynchronizationTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 931 | "src/tests/end2end/IndexFormatTests.cpp", |
Jiawei Shao | 0bc168e | 2019-03-28 14:18:11 +0000 | [diff] [blame] | 932 | "src/tests/end2end/MultisampledRenderingTests.cpp", |
Natasha Lee | 97f08fa | 2019-05-11 00:21:50 +0000 | [diff] [blame] | 933 | "src/tests/end2end/NonzeroTextureCreationTests.cpp", |
Corentin Wallez | 0ee9859 | 2019-05-01 12:57:27 +0000 | [diff] [blame] | 934 | "src/tests/end2end/ObjectCachingTests.cpp", |
Corentin Wallez | bfc9cee | 2019-08-02 18:15:08 +0000 | [diff] [blame] | 935 | "src/tests/end2end/OpArrayLengthTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 936 | "src/tests/end2end/PrimitiveTopologyTests.cpp", |
Austin Eng | 40618d0 | 2019-08-14 02:01:14 +0000 | [diff] [blame] | 937 | "src/tests/end2end/RenderBundleTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 938 | "src/tests/end2end/RenderPassLoadOpTests.cpp", |
Jiawei Shao | c8b067d | 2019-02-15 10:55:08 +0000 | [diff] [blame] | 939 | "src/tests/end2end/RenderPassTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 940 | "src/tests/end2end/SamplerTests.cpp", |
| 941 | "src/tests/end2end/ScissorTests.cpp", |
Corentin Wallez | 431d618 | 2019-07-01 09:58:07 +0000 | [diff] [blame] | 942 | "src/tests/end2end/TextureFormatTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 943 | "src/tests/end2end/TextureViewTests.cpp", |
Natasha Lee | 28232ce | 2019-06-11 18:11:05 +0000 | [diff] [blame] | 944 | "src/tests/end2end/TextureZeroInitTests.cpp", |
Yan, Shaobo | 9286adc | 2019-04-26 15:25:18 +0000 | [diff] [blame] | 945 | "src/tests/end2end/VertexFormatTests.cpp", |
Kai Ninomiya | ae1f25f | 2019-11-07 22:23:29 +0000 | [diff] [blame] | 946 | "src/tests/end2end/VertexStateTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 947 | "src/tests/end2end/ViewportOrientationTests.cpp", |
Yunchao He | d6f13c6 | 2019-07-16 19:27:09 +0000 | [diff] [blame] | 948 | "src/tests/end2end/ViewportTests.cpp", |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 949 | ] |
| 950 | |
Corentin Wallez | d87e676 | 2020-01-23 17:20:38 +0000 | [diff] [blame] | 951 | # Validation tests that need OS windows live in end2end tests. |
| 952 | sources += [ |
| 953 | "src/tests/unittests/validation/ValidationTest.cpp", |
| 954 | "src/tests/unittests/validation/ValidationTest.h", |
| 955 | ] |
| 956 | |
Corentin Wallez | 0cdf9e0 | 2019-03-01 12:01:18 +0000 | [diff] [blame] | 957 | libs = [] |
| 958 | |
Rafael Cintron | 179d7b2 | 2019-09-02 19:19:34 +0000 | [diff] [blame] | 959 | if (dawn_enable_d3d12) { |
| 960 | sources += [ "src/tests/end2end/D3D12ResourceWrappingTests.cpp" ] |
| 961 | libs += [ |
| 962 | "d3d11.lib", |
| 963 | "dxgi.lib", |
| 964 | ] |
| 965 | } |
| 966 | |
Corentin Wallez | 3a1746e | 2020-01-15 13:14:12 +0000 | [diff] [blame] | 967 | if (dawn_enable_metal) { |
| 968 | sources += [ "src/tests/end2end/IOSurfaceWrappingTests.cpp" ] |
| 969 | libs += [ "IOSurface.framework" ] |
| 970 | } |
| 971 | |
Brian Ho | 2fb628d | 2019-08-13 21:45:44 +0000 | [diff] [blame] | 972 | if (dawn_enable_opengl) { |
Corentin Wallez | 3a1746e | 2020-01-15 13:14:12 +0000 | [diff] [blame] | 973 | assert(supports_glfw_for_windowing) |
| 974 | } |
| 975 | |
| 976 | if (supports_glfw_for_windowing) { |
Corentin Wallez | d87e676 | 2020-01-23 17:20:38 +0000 | [diff] [blame] | 977 | sources += [ |
| 978 | "src/tests/end2end/SwapChainValidationTests.cpp", |
| 979 | "src/tests/end2end/WindowSurfaceTests.cpp", |
| 980 | ] |
David 'Digit' Turner | b749d07 | 2019-09-09 10:52:08 +0000 | [diff] [blame] | 981 | deps += [ ":dawn_glfw" ] |
Brian Ho | 2fb628d | 2019-08-13 21:45:44 +0000 | [diff] [blame] | 982 | } |
Idan Raiter | 74e4834 | 2019-08-10 03:17:52 +0000 | [diff] [blame] | 983 | } |
| 984 | |
| 985 | source_set("dawn_white_box_tests_sources") { |
Austin Eng | 0c66bcd | 2020-01-15 18:22:53 +0000 | [diff] [blame] | 986 | configs += [ ":libdawn_native_internal" ] |
Idan Raiter | 74e4834 | 2019-08-10 03:17:52 +0000 | [diff] [blame] | 987 | testonly = true |
| 988 | |
| 989 | deps = [ |
| 990 | ":dawn_utils", |
Idan Raiter | 74e4834 | 2019-08-10 03:17:52 +0000 | [diff] [blame] | 991 | ":libdawn_native_sources", |
Austin Eng | 470921f | 2020-01-06 19:56:17 +0000 | [diff] [blame] | 992 | ":libdawn_native_static", # Static because the tests both link against and have libdawn_native |
| 993 | # sources. MSVC errors when both importing and exporting symbols. |
Idan Raiter | 74e4834 | 2019-08-10 03:17:52 +0000 | [diff] [blame] | 994 | ":libdawn_wire", |
| 995 | "${dawn_root}/src/common", |
Corentin Wallez | 9649682 | 2019-10-15 11:44:38 +0000 | [diff] [blame] | 996 | "${dawn_root}/src/dawn:dawncpp", |
| 997 | "${dawn_root}/src/dawn:libdawn_proc", |
Idan Raiter | 74e4834 | 2019-08-10 03:17:52 +0000 | [diff] [blame] | 998 | "third_party:gmock_and_gtest", |
| 999 | ] |
| 1000 | |
| 1001 | sources = [ |
| 1002 | "src/tests/DawnTest.h", |
| 1003 | ] |
| 1004 | |
| 1005 | if (dawn_enable_vulkan) { |
| 1006 | deps += [ "third_party:vulkan_headers" ] |
| 1007 | |
| 1008 | if (is_linux) { |
| 1009 | sources += [ "src/tests/white_box/VulkanImageWrappingTests.cpp" ] |
| 1010 | } |
Austin Eng | 6ea362c | 2019-12-17 00:47:40 +0000 | [diff] [blame] | 1011 | |
| 1012 | if (dawn_enable_error_injection) { |
| 1013 | sources += [ "src/tests/white_box/VulkanErrorInjectorTests.cpp" ] |
| 1014 | } |
Idan Raiter | 74e4834 | 2019-08-10 03:17:52 +0000 | [diff] [blame] | 1015 | } |
| 1016 | |
Bryan Bernhart | 2cdf132 | 2019-11-05 19:34:45 +0000 | [diff] [blame] | 1017 | if (dawn_enable_d3d12) { |
| 1018 | sources += [ "src/tests/white_box/D3D12SmallTextureTests.cpp" ] |
| 1019 | } |
| 1020 | |
Austin Eng | 0c66bcd | 2020-01-15 18:22:53 +0000 | [diff] [blame] | 1021 | if (dawn_enable_metal) { |
| 1022 | sources += [ "src/tests/white_box/MetalAutoreleasePoolTests.mm" ] |
| 1023 | } |
| 1024 | |
Brian Ho | 2fb628d | 2019-08-13 21:45:44 +0000 | [diff] [blame] | 1025 | if (dawn_enable_opengl) { |
David 'Digit' Turner | b749d07 | 2019-09-09 10:52:08 +0000 | [diff] [blame] | 1026 | deps += [ ":dawn_glfw" ] |
Brian Ho | 2fb628d | 2019-08-13 21:45:44 +0000 | [diff] [blame] | 1027 | } |
| 1028 | |
Idan Raiter | 74e4834 | 2019-08-10 03:17:52 +0000 | [diff] [blame] | 1029 | libs = [] |
| 1030 | } |
| 1031 | |
| 1032 | test("dawn_end2end_tests") { |
| 1033 | configs += [ "${dawn_root}/src/common:dawn_internal" ] |
| 1034 | |
| 1035 | deps = [ |
| 1036 | ":dawn_end2end_tests_sources", |
| 1037 | ":dawn_utils", |
| 1038 | ":dawn_white_box_tests_sources", |
| 1039 | ":libdawn_native", |
| 1040 | ":libdawn_wire", |
| 1041 | "${dawn_root}/src/common", |
Corentin Wallez | 9649682 | 2019-10-15 11:44:38 +0000 | [diff] [blame] | 1042 | "${dawn_root}/src/dawn:dawncpp", |
| 1043 | "${dawn_root}/src/dawn:libdawn_proc", |
Idan Raiter | 74e4834 | 2019-08-10 03:17:52 +0000 | [diff] [blame] | 1044 | "third_party:gmock_and_gtest", |
| 1045 | ] |
| 1046 | |
| 1047 | sources = [ |
| 1048 | "src/tests/DawnTest.cpp", |
| 1049 | "src/tests/DawnTest.h", |
| 1050 | ] |
| 1051 | |
| 1052 | libs = [] |
Corentin Wallez | 0cdf9e0 | 2019-03-01 12:01:18 +0000 | [diff] [blame] | 1053 | |
Corentin Wallez | 48a1923 | 2018-12-08 10:35:53 +0000 | [diff] [blame] | 1054 | # When building inside Chromium, use their gtest main function because it is |
| 1055 | # needed to run in swarming correctly. |
| 1056 | if (build_with_chromium) { |
| 1057 | sources += [ "//gpu/dawn_end2end_tests_main.cc" ] |
| 1058 | } else { |
| 1059 | sources += [ "src/tests/End2EndTestsMain.cpp" ] |
| 1060 | } |
Brian Ho | 2fb628d | 2019-08-13 21:45:44 +0000 | [diff] [blame] | 1061 | |
| 1062 | if (dawn_enable_opengl) { |
David 'Digit' Turner | b749d07 | 2019-09-09 10:52:08 +0000 | [diff] [blame] | 1063 | deps += [ ":dawn_glfw" ] |
Brian Ho | 2fb628d | 2019-08-13 21:45:44 +0000 | [diff] [blame] | 1064 | } |
Corentin Wallez | 21a2385 | 2018-07-31 18:50:03 +0200 | [diff] [blame] | 1065 | } |
Corentin Wallez | 4d7d169 | 2018-08-13 08:23:27 +0200 | [diff] [blame] | 1066 | |
Austin Eng | ca0eac3 | 2019-08-28 23:18:10 +0000 | [diff] [blame] | 1067 | test("dawn_perf_tests") { |
| 1068 | configs += [ "${dawn_root}/src/common:dawn_internal" ] |
| 1069 | |
| 1070 | deps = [ |
Austin Eng | 92a011a | 2019-10-17 19:00:32 +0000 | [diff] [blame] | 1071 | ":dawn_platform", |
Austin Eng | ca0eac3 | 2019-08-28 23:18:10 +0000 | [diff] [blame] | 1072 | ":dawn_utils", |
| 1073 | ":libdawn_native", |
| 1074 | ":libdawn_wire", |
| 1075 | "${dawn_root}/src/common", |
Corentin Wallez | 9649682 | 2019-10-15 11:44:38 +0000 | [diff] [blame] | 1076 | "${dawn_root}/src/dawn:dawncpp", |
| 1077 | "${dawn_root}/src/dawn:libdawn_proc", |
Austin Eng | ca0eac3 | 2019-08-28 23:18:10 +0000 | [diff] [blame] | 1078 | "third_party:gmock_and_gtest", |
| 1079 | ] |
| 1080 | |
| 1081 | sources = [ |
| 1082 | "src/tests/DawnTest.cpp", |
| 1083 | "src/tests/DawnTest.h", |
| 1084 | "src/tests/ParamGenerator.h", |
| 1085 | "src/tests/perf_tests/BufferUploadPerf.cpp", |
| 1086 | "src/tests/perf_tests/DawnPerfTest.cpp", |
| 1087 | "src/tests/perf_tests/DawnPerfTest.h", |
Austin Eng | 92a011a | 2019-10-17 19:00:32 +0000 | [diff] [blame] | 1088 | "src/tests/perf_tests/DawnPerfTestPlatform.cpp", |
| 1089 | "src/tests/perf_tests/DawnPerfTestPlatform.h", |
Austin Eng | 64a3bb9 | 2019-10-31 03:20:31 +0000 | [diff] [blame] | 1090 | "src/tests/perf_tests/DrawCallPerf.cpp", |
Austin Eng | ca0eac3 | 2019-08-28 23:18:10 +0000 | [diff] [blame] | 1091 | ] |
| 1092 | |
| 1093 | libs = [] |
| 1094 | |
| 1095 | # When building inside Chromium, use their gtest main function because it is |
| 1096 | # needed to run in swarming correctly. |
| 1097 | if (build_with_chromium) { |
| 1098 | sources += [ "//gpu/dawn_perf_tests_main.cc" ] |
| 1099 | } else { |
| 1100 | sources += [ "src/tests/PerfTestsMain.cpp" ] |
| 1101 | } |
| 1102 | |
| 1103 | if (dawn_enable_metal) { |
| 1104 | libs += [ "IOSurface.framework" ] |
| 1105 | } |
| 1106 | |
| 1107 | if (dawn_enable_opengl) { |
David 'Digit' Turner | b749d07 | 2019-09-09 10:52:08 +0000 | [diff] [blame] | 1108 | deps += [ ":dawn_glfw" ] |
Austin Eng | ca0eac3 | 2019-08-28 23:18:10 +0000 | [diff] [blame] | 1109 | } |
| 1110 | } |
| 1111 | |
Corentin Wallez | 07df605 | 2018-12-10 16:45:24 +0000 | [diff] [blame] | 1112 | # Temporary groups to make a 5-way patch to fix crbug.com/913171 |
| 1113 | group("dawn_unittests_temp_group") { |
| 1114 | testonly = true |
Jiawei Shao | 8bff3b2 | 2018-12-12 09:27:16 +0000 | [diff] [blame] | 1115 | deps = [ |
| 1116 | ":dawn_unittests", |
| 1117 | ] |
Corentin Wallez | 07df605 | 2018-12-10 16:45:24 +0000 | [diff] [blame] | 1118 | } |
| 1119 | |
| 1120 | group("dawn_end2end_tests_temp_group") { |
| 1121 | testonly = true |
Jiawei Shao | 8bff3b2 | 2018-12-12 09:27:16 +0000 | [diff] [blame] | 1122 | deps = [ |
| 1123 | ":dawn_end2end_tests", |
| 1124 | ] |
Corentin Wallez | 07df605 | 2018-12-10 16:45:24 +0000 | [diff] [blame] | 1125 | } |
| 1126 | |
Austin Eng | ca0eac3 | 2019-08-28 23:18:10 +0000 | [diff] [blame] | 1127 | group("dawn_perf_tests_temp_group") { |
| 1128 | testonly = true |
| 1129 | deps = [ |
| 1130 | ":dawn_perf_tests", |
| 1131 | ] |
Austin Eng | 3c26e42 | 2019-08-30 19:16:46 +0000 | [diff] [blame] | 1132 | data_deps = [ |
| 1133 | ":dawn_perf_tests", |
| 1134 | ] |
Austin Eng | ca0eac3 | 2019-08-28 23:18:10 +0000 | [diff] [blame] | 1135 | } |
| 1136 | |
Corentin Wallez | 4d7d169 | 2018-08-13 08:23:27 +0200 | [diff] [blame] | 1137 | ############################################################################### |
| 1138 | # Dawn samples, only in standalone builds |
| 1139 | ############################################################################### |
| 1140 | |
| 1141 | if (dawn_standalone) { |
Corentin Wallez | 54e5072 | 2019-11-19 18:58:50 +0000 | [diff] [blame] | 1142 | # Library to handle the interaction of Dawn with GLFW windows in samples |
| 1143 | static_library("dawn_bindings") { |
| 1144 | configs += [ "${dawn_root}/src/common:dawn_internal" ] |
| 1145 | |
| 1146 | sources = [ |
| 1147 | "src/utils/BackendBinding.cpp", |
| 1148 | "src/utils/BackendBinding.h", |
| 1149 | ] |
| 1150 | |
| 1151 | public_deps = [ |
| 1152 | "${dawn_root}/src/dawn:dawn_headers", |
| 1153 | ] |
| 1154 | |
| 1155 | deps = [ |
| 1156 | ":dawn_glfw", |
| 1157 | ":libdawn_native", |
| 1158 | "${dawn_root}/src/common", |
| 1159 | ] |
| 1160 | libs = [] |
| 1161 | |
| 1162 | if (dawn_enable_d3d12) { |
| 1163 | sources += [ "src/utils/D3D12Binding.cpp" ] |
| 1164 | } |
| 1165 | |
| 1166 | if (dawn_enable_metal) { |
| 1167 | sources += [ "src/utils/MetalBinding.mm" ] |
| 1168 | libs += [ |
| 1169 | "Metal.framework", |
| 1170 | "QuartzCore.framework", |
| 1171 | ] |
| 1172 | |
| 1173 | # Suppress warnings that Metal isn't in the deployment target of Chrome |
| 1174 | if (is_mac) { |
| 1175 | cflags_objcc = [ "-Wno-unguarded-availability" ] |
| 1176 | } |
| 1177 | } |
| 1178 | |
| 1179 | if (dawn_enable_null) { |
| 1180 | sources += [ "src/utils/NullBinding.cpp" ] |
| 1181 | } |
| 1182 | |
| 1183 | if (dawn_enable_opengl) { |
| 1184 | sources += [ "src/utils/OpenGLBinding.cpp" ] |
| 1185 | } |
| 1186 | |
| 1187 | if (dawn_enable_vulkan) { |
| 1188 | sources += [ "src/utils/VulkanBinding.cpp" ] |
| 1189 | } |
| 1190 | } |
| 1191 | |
Corentin Wallez | 4d7d169 | 2018-08-13 08:23:27 +0200 | [diff] [blame] | 1192 | # Static library to contain code and dependencies common to all samples |
| 1193 | static_library("dawn_sample_utils") { |
| 1194 | sources = [ |
| 1195 | "examples/SampleUtils.cpp", |
| 1196 | "examples/SampleUtils.h", |
| 1197 | ] |
| 1198 | |
| 1199 | # Export all of these as public deps so that `gn check` allows includes |
| 1200 | public_deps = [ |
Brian Ho | 2fb628d | 2019-08-13 21:45:44 +0000 | [diff] [blame] | 1201 | ":dawn_bindings", |
David 'Digit' Turner | b749d07 | 2019-09-09 10:52:08 +0000 | [diff] [blame] | 1202 | ":dawn_glfw", |
Corentin Wallez | 4d7d169 | 2018-08-13 08:23:27 +0200 | [diff] [blame] | 1203 | ":dawn_utils", |
Corentin Wallez | 4d7d169 | 2018-08-13 08:23:27 +0200 | [diff] [blame] | 1204 | ":libdawn_native", |
| 1205 | ":libdawn_wire", |
Corentin Wallez | 579cf62 | 2019-03-07 01:46:39 +0000 | [diff] [blame] | 1206 | "${dawn_root}/src/common", |
Corentin Wallez | 9649682 | 2019-10-15 11:44:38 +0000 | [diff] [blame] | 1207 | "${dawn_root}/src/dawn:dawncpp", |
| 1208 | "${dawn_root}/src/dawn:libdawn_proc", |
Corentin Wallez | 4d7d169 | 2018-08-13 08:23:27 +0200 | [diff] [blame] | 1209 | ] |
Corentin Wallez | 579cf62 | 2019-03-07 01:46:39 +0000 | [diff] [blame] | 1210 | public_configs = [ "${dawn_root}/src/common:dawn_internal" ] |
Corentin Wallez | 4d7d169 | 2018-08-13 08:23:27 +0200 | [diff] [blame] | 1211 | } |
| 1212 | |
| 1213 | # Template for samples to avoid listing dawn_sample_utils as a dep every time |
| 1214 | template("dawn_sample") { |
| 1215 | executable(target_name) { |
| 1216 | deps = [ |
| 1217 | ":dawn_sample_utils", |
| 1218 | ] |
| 1219 | forward_variables_from(invoker, "*", [ "deps" ]) |
| 1220 | |
| 1221 | if (defined(invoker.deps)) { |
| 1222 | deps += invoker.deps |
| 1223 | } |
| 1224 | } |
| 1225 | } |
| 1226 | |
| 1227 | dawn_sample("CppHelloTriangle") { |
| 1228 | sources = [ |
| 1229 | "examples/CppHelloTriangle.cpp", |
| 1230 | ] |
| 1231 | } |
| 1232 | |
| 1233 | dawn_sample("CHelloTriangle") { |
| 1234 | sources = [ |
| 1235 | "examples/CHelloTriangle.cpp", |
| 1236 | ] |
| 1237 | } |
| 1238 | |
| 1239 | dawn_sample("ComputeBoids") { |
| 1240 | sources = [ |
| 1241 | "examples/ComputeBoids.cpp", |
| 1242 | ] |
| 1243 | deps = [ |
| 1244 | "third_party:glm", |
| 1245 | ] |
| 1246 | } |
| 1247 | |
| 1248 | dawn_sample("Animometer") { |
| 1249 | sources = [ |
| 1250 | "examples/Animometer.cpp", |
| 1251 | ] |
| 1252 | } |
| 1253 | |
| 1254 | dawn_sample("CubeReflection") { |
| 1255 | sources = [ |
| 1256 | "examples/CubeReflection.cpp", |
| 1257 | ] |
| 1258 | deps = [ |
| 1259 | "third_party:glm", |
| 1260 | ] |
| 1261 | } |
| 1262 | |
Corentin Wallez | 31d1e78 | 2018-09-20 21:17:14 +0000 | [diff] [blame] | 1263 | group("dawn_samples") { |
| 1264 | deps = [ |
Stephen White | d380fdd | 2018-10-04 16:59:05 +0000 | [diff] [blame] | 1265 | ":Animometer", |
Corentin Wallez | 31d1e78 | 2018-09-20 21:17:14 +0000 | [diff] [blame] | 1266 | ":CHelloTriangle", |
| 1267 | ":ComputeBoids", |
Stephen White | d380fdd | 2018-10-04 16:59:05 +0000 | [diff] [blame] | 1268 | ":CppHelloTriangle", |
Corentin Wallez | 31d1e78 | 2018-09-20 21:17:14 +0000 | [diff] [blame] | 1269 | ":CubeReflection", |
Corentin Wallez | 31d1e78 | 2018-09-20 21:17:14 +0000 | [diff] [blame] | 1270 | ] |
| 1271 | } |
Corentin Wallez | 4d7d169 | 2018-08-13 08:23:27 +0200 | [diff] [blame] | 1272 | } |
Ryan Harrison | 9854295 | 2018-11-12 12:20:21 +0000 | [diff] [blame] | 1273 | |
| 1274 | ############################################################################### |
| 1275 | # Fuzzers |
| 1276 | ############################################################################### |
Ryan Harrison | 9854295 | 2018-11-12 12:20:21 +0000 | [diff] [blame] | 1277 | |
Corentin Wallez | 597e158 | 2018-11-12 18:09:56 +0000 | [diff] [blame] | 1278 | group("dawn_fuzzers") { |
| 1279 | testonly = true |
| 1280 | deps = [ |
Ryan Harrison | 00b1e38 | 2019-11-27 20:56:14 +0000 | [diff] [blame] | 1281 | "src/fuzzers:dawn_spirv_cross_glsl_fast_fuzzer", |
| 1282 | "src/fuzzers:dawn_spirv_cross_hlsl_fast_fuzzer", |
| 1283 | "src/fuzzers:dawn_spirv_cross_msl_fast_fuzzer", |
Sarah Mashayekhi | af094e6 | 2019-12-11 19:03:01 +0000 | [diff] [blame] | 1284 | "src/fuzzers:dawn_spvc_glsl_fast_fuzzer", |
| 1285 | "src/fuzzers:dawn_spvc_hlsl_fast_fuzzer", |
| 1286 | "src/fuzzers:dawn_spvc_msl_fast_fuzzer", |
Corentin Wallez | 597e158 | 2018-11-12 18:09:56 +0000 | [diff] [blame] | 1287 | "src/fuzzers:dawn_wire_server_and_frontend_fuzzer", |
| 1288 | ] |
Ryan Harrison | 9854295 | 2018-11-12 12:20:21 +0000 | [diff] [blame] | 1289 | } |