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 15dawn_root = "../externals/dawn" 16import("$dawn_root/generator/dawn_generator.gni") 17import("$dawn_root/scripts/dawn_features.gni") 18 19############################################################################### 20# Template to wrap the Dawn code generator 21############################################################################### 22 23# Template to help with invocation of the Dawn code generator, looks like this: 24# 25# dawn_json_generator("my_target_gen") { 26# # Which generator target to output 27# target = "my_target" 28# # The list of expected outputs, generation fails if there's a mismatch 29# outputs = [ 30# "MyTarget.cpp", 31# "MyTarget.h", 32# ] 33# } 34# 35# Using the generated files is done like so: 36# 37# shared_library("my_target") { 38# deps = [ ":my_target_gen "] 39# sources = get_target_outputs(":my_target_gen") 40# } 41# 42############################################################################### 43# Common dawn libraries and configs 44############################################################################### 45 46config("libdawn_public") { 47 include_dirs = [ 48 target_gen_dir, 49 "$dawn_root/src/include", 50 "$dawn_root/src", 51 ] 52} 53 54config("dawn_internal") { 55 include_dirs = [ "$dawn_root/src" ] 56 57 defines = [] 58 if (dawn_always_assert || is_debug) { 59 defines += [ "DAWN_ENABLE_ASSERTS" ] 60 } 61 62 if (dawn_enable_d3d12) { 63 defines += [ "DAWN_ENABLE_BACKEND_D3D12" ] 64 } 65 if (dawn_enable_metal) { 66 defines += [ "DAWN_ENABLE_BACKEND_METAL" ] 67 } 68 if (dawn_enable_null) { 69 defines += [ "DAWN_ENABLE_BACKEND_NULL" ] 70 } 71 if (dawn_enable_opengl) { 72 defines += [ "DAWN_ENABLE_BACKEND_OPENGL" ] 73 } 74 if (dawn_enable_vulkan) { 75 defines += [ "DAWN_ENABLE_BACKEND_VULKAN" ] 76 } 77 78 configs = [ ":libdawn_public" ] 79 80 # Only internal Dawn targets can use this config, this means only targets in 81 # this BUILD.gn file. 82 visibility = [ ":*" ] 83} 84 85static_library("dawn_common") { 86 sources = rebase_path([ 87 "src/common/Assert.cpp", 88 "src/common/Assert.h", 89 "src/common/BitSetIterator.h", 90 "src/common/Compiler.h", 91 "src/common/DynamicLib.cpp", 92 "src/common/DynamicLib.h", 93 "src/common/HashUtils.h", 94 "src/common/Math.cpp", 95 "src/common/Math.h", 96 "src/common/Platform.h", 97 "src/common/Result.cpp", 98 "src/common/Result.h", 99 "src/common/Serial.h", 100 "src/common/SerialMap.h", 101 "src/common/SerialQueue.h", 102 "src/common/SerialStorage.h", 103 "src/common/SwapChainUtils.h", 104 "src/common/vulkan_platform.h", 105 "src/common/windows_with_undefs.h", 106 ], 107 ".", 108 "$dawn_root") 109 110 configs += [ ":dawn_internal" ] 111 deps = [ ":dawn_headers" ] 112} 113 114############################################################################### 115# Dawn headers and libdawn.so 116############################################################################### 117 118dawn_json_generator("dawn_headers_gen") { 119 target = "dawn_headers" 120 outputs = [ 121 "dawn/dawncpp.h", 122 "dawn/dawn.h", 123 ] 124} 125 126source_set("dawn_headers") { 127 public_configs = [ ":libdawn_public" ] 128 deps = [ ":dawn_headers_gen" ] 129 130 sources = get_target_outputs(":dawn_headers_gen") 131 sources += [ 132 "src/include/dawn/EnumClassBitmasks.h", 133 "src/include/dawn/dawn_export.h", 134 "src/include/dawn/dawn_wsi.h", 135 ] 136} 137 138dawn_json_generator("libdawn_gen") { 139 target = "libdawn" 140 outputs = [ 141 "dawn/dawncpp.cpp", 142 "dawn/dawn.c", 143 ] 144} 145 146static_library("libdawn") { 147 public_deps = [ ":dawn_headers" ] 148 149 defines = [ "DAWN_IMPLEMENTATION" ] 150 deps = [ ":libdawn_gen" ] 151 sources = get_target_outputs(":libdawn_gen") 152} 153 154############################################################################### 155# libdawn_native.so 156############################################################################### 157 158config("libdawn_native_internal") { 159 configs = [ ":dawn_internal" ] 160 defines = [ "DAWN_NATIVE_IMPLEMENTATION" ] 161 162 # Suppress warnings that Metal isn't in the deployment target of Chrome 163 if (is_mac) { 164 cflags_objcc = [ "-Wno-unguarded-availability" ] 165 } 166} 167 168dawn_json_generator("libdawn_native_utils_gen") { 169 target = "dawn_native_utils" 170 outputs = [ 171 "dawn_native/ProcTable.cpp", 172 "dawn_native/dawn_structs_autogen.h", 173 "dawn_native/dawn_structs_autogen.cpp", 174 "dawn_native/ValidationUtils_autogen.h", 175 "dawn_native/ValidationUtils_autogen.cpp", 176 ] 177} 178 179if (dawn_enable_opengl) { 180 dawn_generator("libdawn_native_opengl_loader_gen") { 181 script = "${dawn_root}/generator/opengl_loader_generator.py" 182 args = [ 183 "--gl-xml", 184 rebase_path("${dawn_root}/third_party/khronos/gl.xml", root_build_dir), 185 ] 186 outputs = [ 187 "dawn_native/opengl/OpenGLFunctionsBase_autogen.cpp", 188 "dawn_native/opengl/OpenGLFunctionsBase_autogen.h", 189 "dawn_native/opengl/opengl_platform_autogen.h", 190 ] 191 } 192} 193 194# Public libdawn_native headers so they can be publically visible for 195# dependencies of libdawn_native 196source_set("libdawn_native_headers") { 197 public_deps = [ ":dawn_headers" ] 198 sources = rebase_path( 199 [ 200 "src/include/dawn_native/DawnNative.h", 201 "src/include/dawn_native/dawn_native_export.h", 202 203 # Include all backend's public headers so that dependencies can include 204 # them even when the backends are disabled. 205 "src/include/dawn_native/D3D12Backend.h", 206 "src/include/dawn_native/MetalBackend.h", 207 "src/include/dawn_native/NullBackend.h", 208 "src/include/dawn_native/OpenGLBackend.h", 209 "src/include/dawn_native/VulkanBackend.h", 210 ], 211 ".", 212 "$dawn_root") 213} 214 215# The meat of the compilation for libdawn_native so that we can cheaply have 216# shared_library / static_library / component versions of it. 217source_set("libdawn_native_sources") { 218 deps = [ 219 ":dawn_common", 220 ":libdawn_native_utils_gen", 221 "third_party:spirv_cross", 222 "third_party:spvtools_val", 223 ] 224 225 # Put the internal config public so that unittests can see internal headers 226 public_configs = [ ":libdawn_native_internal" ] 227 228 # Set the headers as a public dependency so they are visible to unittests 229 public_deps = [ ":libdawn_native_headers" ] 230 231 libs = [] 232 233 sources = rebase_path(get_target_outputs(":libdawn_native_utils_gen"), 234 ".", 235 "$dawn_root") 236 sources += rebase_path([ 237 "src/dawn_native/Adapter.cpp", 238 "src/dawn_native/Adapter.h", 239 "src/dawn_native/BackendConnection.cpp", 240 "src/dawn_native/BackendConnection.h", 241 "src/dawn_native/BindGroup.cpp", 242 "src/dawn_native/BindGroup.h", 243 "src/dawn_native/BindGroupLayout.cpp", 244 "src/dawn_native/BindGroupLayout.h", 245 "src/dawn_native/Buffer.cpp", 246 "src/dawn_native/Buffer.h", 247 "src/dawn_native/CommandAllocator.cpp", 248 "src/dawn_native/CommandAllocator.h", 249 "src/dawn_native/CommandBuffer.cpp", 250 "src/dawn_native/CommandBuffer.h", 251 "src/dawn_native/CommandBufferStateTracker.cpp", 252 "src/dawn_native/CommandBufferStateTracker.h", 253 "src/dawn_native/CommandEncoder.cpp", 254 "src/dawn_native/CommandEncoder.h", 255 "src/dawn_native/Commands.cpp", 256 "src/dawn_native/Commands.h", 257 "src/dawn_native/ComputePassEncoder.cpp", 258 "src/dawn_native/ComputePassEncoder.h", 259 "src/dawn_native/ComputePipeline.cpp", 260 "src/dawn_native/ComputePipeline.h", 261 "src/dawn_native/DawnNative.cpp", 262 "src/dawn_native/Device.cpp", 263 "src/dawn_native/Device.h", 264 "src/dawn_native/DynamicUploader.cpp", 265 "src/dawn_native/DynamicUploader.h", 266 "src/dawn_native/Device.h", 267 "src/dawn_native/Error.cpp", 268 "src/dawn_native/Error.h", 269 "src/dawn_native/ErrorData.cpp", 270 "src/dawn_native/ErrorData.h", 271 "src/dawn_native/Fence.cpp", 272 "src/dawn_native/Fence.h", 273 "src/dawn_native/FenceSignalTracker.cpp", 274 "src/dawn_native/FenceSignalTracker.h", 275 "src/dawn_native/Format.cpp", 276 "src/dawn_native/Format.h", 277 "src/dawn_native/Forward.h", 278 "src/dawn_native/Instance.cpp", 279 "src/dawn_native/Instance.h", 280 "src/dawn_native/ObjectBase.h", 281 "src/dawn_native/ObjectBase.cpp", 282 "src/dawn_native/PassResourceUsage.h", 283 "src/dawn_native/PerStage.cpp", 284 "src/dawn_native/PerStage.h", 285 "src/dawn_native/Pipeline.cpp", 286 "src/dawn_native/Pipeline.h", 287 "src/dawn_native/PipelineLayout.cpp", 288 "src/dawn_native/PipelineLayout.h", 289 "src/dawn_native/ProgrammablePassEncoder.cpp", 290 "src/dawn_native/ProgrammablePassEncoder.h", 291 "src/dawn_native/Queue.cpp", 292 "src/dawn_native/Queue.h", 293 "src/dawn_native/RefCounted.cpp", 294 "src/dawn_native/RefCounted.h", 295 "src/dawn_native/RenderPassEncoder.cpp", 296 "src/dawn_native/RenderPassEncoder.h", 297 "src/dawn_native/RenderPipeline.cpp", 298 "src/dawn_native/RenderPipeline.h", 299 "src/dawn_native/RingBuffer.cpp", 300 "src/dawn_native/RingBuffer.h", 301 "src/dawn_native/Sampler.cpp", 302 "src/dawn_native/Sampler.h", 303 "src/dawn_native/ShaderModule.cpp", 304 "src/dawn_native/ShaderModule.h", 305 "src/dawn_native/StagingBuffer.cpp", 306 "src/dawn_native/StagingBuffer.h", 307 "src/dawn_native/SwapChain.cpp", 308 "src/dawn_native/SwapChain.h", 309 "src/dawn_native/Texture.cpp", 310 "src/dawn_native/Texture.h", 311 "src/dawn_native/ToBackend.h", 312 "src/dawn_native/dawn_platform.h", 313 ], 314 ".", 315 "$dawn_root") 316 317 if (dawn_enable_d3d12) { 318 libs += [ "dxguid.lib" ] 319 sources += 320 rebase_path([ 321 "src/dawn_native/d3d12/AdapterD3D12.cpp", 322 "src/dawn_native/d3d12/AdapterD3D12.h", 323 "src/dawn_native/d3d12/BackendD3D12.cpp", 324 "src/dawn_native/d3d12/BackendD3D12.h", 325 "src/dawn_native/d3d12/BindGroupD3D12.cpp", 326 "src/dawn_native/d3d12/BindGroupD3D12.h", 327 "src/dawn_native/d3d12/BindGroupLayoutD3D12.cpp", 328 "src/dawn_native/d3d12/BindGroupLayoutD3D12.h", 329 "src/dawn_native/d3d12/BufferD3D12.cpp", 330 "src/dawn_native/d3d12/BufferD3D12.h", 331 "src/dawn_native/d3d12/CommandAllocatorManager.cpp", 332 "src/dawn_native/d3d12/CommandAllocatorManager.h", 333 "src/dawn_native/d3d12/CommandBufferD3D12.cpp", 334 "src/dawn_native/d3d12/CommandBufferD3D12.h", 335 "src/dawn_native/d3d12/ComputePipelineD3D12.cpp", 336 "src/dawn_native/d3d12/ComputePipelineD3D12.h", 337 "src/dawn_native/d3d12/D3D12Backend.cpp", 338 "src/dawn_native/d3d12/D3D12Info.cpp", 339 "src/dawn_native/d3d12/D3D12Info.h", 340 "src/dawn_native/d3d12/DescriptorHeapAllocator.cpp", 341 "src/dawn_native/d3d12/DescriptorHeapAllocator.h", 342 "src/dawn_native/d3d12/DeviceD3D12.cpp", 343 "src/dawn_native/d3d12/DeviceD3D12.h", 344 "src/dawn_native/d3d12/Forward.h", 345 "src/dawn_native/d3d12/NativeSwapChainImplD3D12.cpp", 346 "src/dawn_native/d3d12/NativeSwapChainImplD3D12.h", 347 "src/dawn_native/d3d12/PipelineLayoutD3D12.cpp", 348 "src/dawn_native/d3d12/PipelineLayoutD3D12.h", 349 "src/dawn_native/d3d12/PlatformFunctions.cpp", 350 "src/dawn_native/d3d12/PlatformFunctions.h", 351 "src/dawn_native/d3d12/QueueD3D12.cpp", 352 "src/dawn_native/d3d12/QueueD3D12.h", 353 "src/dawn_native/d3d12/RenderPipelineD3D12.cpp", 354 "src/dawn_native/d3d12/RenderPipelineD3D12.h", 355 "src/dawn_native/d3d12/ResourceAllocator.cpp", 356 "src/dawn_native/d3d12/ResourceAllocator.h", 357 "src/dawn_native/d3d12/SamplerD3D12.cpp", 358 "src/dawn_native/d3d12/SamplerD3D12.h", 359 "src/dawn_native/d3d12/ShaderModuleD3D12.cpp", 360 "src/dawn_native/d3d12/ShaderModuleD3D12.h", 361 "src/dawn_native/d3d12/StagingBufferD3D12.cpp", 362 "src/dawn_native/d3d12/StagingBufferD3D12.h", 363 "src/dawn_native/d3d12/SwapChainD3D12.cpp", 364 "src/dawn_native/d3d12/SwapChainD3D12.h", 365 "src/dawn_native/d3d12/TextureCopySplitter.cpp", 366 "src/dawn_native/d3d12/TextureCopySplitter.h", 367 "src/dawn_native/d3d12/TextureD3D12.cpp", 368 "src/dawn_native/d3d12/TextureD3D12.h", 369 "src/dawn_native/d3d12/UtilsD3D12.cpp", 370 "src/dawn_native/d3d12/UtilsD3D12.h", 371 "src/dawn_native/d3d12/d3d12_platform.h", 372 ], 373 ".", 374 "$dawn_root") 375 } 376 377 if (dawn_enable_metal) { 378 libs += [ 379 "Metal.framework", 380 "Cocoa.framework", 381 "IOKit.framework", 382 "IOSurface.framework", 383 ] 384 sources += rebase_path([ 385 "src/dawn_native/metal/BackendMTL.h", 386 "src/dawn_native/metal/BackendMTL.mm", 387 "src/dawn_native/metal/BufferMTL.h", 388 "src/dawn_native/metal/BufferMTL.mm", 389 "src/dawn_native/metal/CommandBufferMTL.h", 390 "src/dawn_native/metal/CommandBufferMTL.mm", 391 "src/dawn_native/metal/ComputePipelineMTL.h", 392 "src/dawn_native/metal/ComputePipelineMTL.mm", 393 "src/dawn_native/metal/DeviceMTL.h", 394 "src/dawn_native/metal/DeviceMTL.mm", 395 "src/dawn_native/metal/Forward.h", 396 "src/dawn_native/metal/MetalBackend.mm", 397 "src/dawn_native/metal/PipelineLayoutMTL.h", 398 "src/dawn_native/metal/PipelineLayoutMTL.mm", 399 "src/dawn_native/metal/QueueMTL.h", 400 "src/dawn_native/metal/QueueMTL.mm", 401 "src/dawn_native/metal/RenderPipelineMTL.h", 402 "src/dawn_native/metal/RenderPipelineMTL.mm", 403 "src/dawn_native/metal/SamplerMTL.h", 404 "src/dawn_native/metal/SamplerMTL.mm", 405 "src/dawn_native/metal/ShaderModuleMTL.h", 406 "src/dawn_native/metal/ShaderModuleMTL.mm", 407 "src/dawn_native/metal/StagingBufferMTL.h", 408 "src/dawn_native/metal/StagingBufferMTL.mm", 409 "src/dawn_native/metal/SwapChainMTL.h", 410 "src/dawn_native/metal/SwapChainMTL.mm", 411 "src/dawn_native/metal/TextureMTL.h", 412 "src/dawn_native/metal/TextureMTL.mm", 413 "src/dawn_native/metal/UtilsMetal.h", 414 "src/dawn_native/metal/UtilsMetal.mm", 415 ], 416 ".", 417 "$dawn_root") 418 } 419 420 if (dawn_enable_null) { 421 sources += rebase_path([ 422 "src/dawn_native/null/DeviceNull.cpp", 423 "src/dawn_native/null/DeviceNull.h", 424 "src/dawn_native/null/NullBackend.cpp", 425 ], 426 ".", 427 "$dawn_root") 428 } 429 430 if (dawn_enable_opengl) { 431 deps += [ 432 ":libdawn_native_opengl_loader_gen", 433 "third_party:khronos_platform", 434 ] 435 sources += get_target_outputs(":libdawn_native_opengl_loader_gen") 436 sources += 437 rebase_path([ 438 "src/dawn_native/opengl/BackendGL.cpp", 439 "src/dawn_native/opengl/BackendGL.h", 440 "src/dawn_native/opengl/BufferGL.cpp", 441 "src/dawn_native/opengl/BufferGL.h", 442 "src/dawn_native/opengl/CommandBufferGL.cpp", 443 "src/dawn_native/opengl/CommandBufferGL.h", 444 "src/dawn_native/opengl/ComputePipelineGL.cpp", 445 "src/dawn_native/opengl/ComputePipelineGL.h", 446 "src/dawn_native/opengl/DeviceGL.cpp", 447 "src/dawn_native/opengl/DeviceGL.h", 448 "src/dawn_native/opengl/Forward.h", 449 "src/dawn_native/opengl/NativeSwapChainImplGL.cpp", 450 "src/dawn_native/opengl/NativeSwapChainImplGL.h", 451 "src/dawn_native/opengl/OpenGLFunctions.cpp", 452 "src/dawn_native/opengl/OpenGLFunctions.h", 453 "src/dawn_native/opengl/OpenGLBackend.cpp", 454 "src/dawn_native/opengl/PersistentPipelineStateGL.cpp", 455 "src/dawn_native/opengl/PersistentPipelineStateGL.h", 456 "src/dawn_native/opengl/PipelineGL.cpp", 457 "src/dawn_native/opengl/PipelineGL.h", 458 "src/dawn_native/opengl/PipelineLayoutGL.cpp", 459 "src/dawn_native/opengl/PipelineLayoutGL.h", 460 "src/dawn_native/opengl/QueueGL.cpp", 461 "src/dawn_native/opengl/QueueGL.h", 462 "src/dawn_native/opengl/RenderPipelineGL.cpp", 463 "src/dawn_native/opengl/RenderPipelineGL.h", 464 "src/dawn_native/opengl/SamplerGL.cpp", 465 "src/dawn_native/opengl/SamplerGL.h", 466 "src/dawn_native/opengl/ShaderModuleGL.cpp", 467 "src/dawn_native/opengl/ShaderModuleGL.h", 468 "src/dawn_native/opengl/SwapChainGL.cpp", 469 "src/dawn_native/opengl/SwapChainGL.h", 470 "src/dawn_native/opengl/TextureGL.cpp", 471 "src/dawn_native/opengl/TextureGL.h", 472 "src/dawn_native/opengl/UtilsGL.cpp", 473 "src/dawn_native/opengl/UtilsGL.h", 474 "src/dawn_native/opengl/opengl_platform.h", 475 ], 476 ".", 477 "$dawn_root") 478 } 479 480 configs -= [ "//gn:warnings" ] 481 if (dawn_enable_vulkan) { 482 deps += [ "third_party:vulkan_headers" ] 483 sources += rebase_path([ 484 "src/dawn_native/vulkan/AdapterVk.cpp", 485 "src/dawn_native/vulkan/AdapterVk.h", 486 "src/dawn_native/vulkan/BackendVk.cpp", 487 "src/dawn_native/vulkan/BackendVk.h", 488 "src/dawn_native/vulkan/BindGroupLayoutVk.cpp", 489 "src/dawn_native/vulkan/BindGroupLayoutVk.h", 490 "src/dawn_native/vulkan/BindGroupVk.cpp", 491 "src/dawn_native/vulkan/BindGroupVk.h", 492 "src/dawn_native/vulkan/BufferVk.cpp", 493 "src/dawn_native/vulkan/BufferVk.h", 494 "src/dawn_native/vulkan/CommandBufferVk.cpp", 495 "src/dawn_native/vulkan/CommandBufferVk.h", 496 "src/dawn_native/vulkan/ComputePipelineVk.cpp", 497 "src/dawn_native/vulkan/ComputePipelineVk.h", 498 "src/dawn_native/vulkan/DeviceVk.cpp", 499 "src/dawn_native/vulkan/DeviceVk.h", 500 "src/dawn_native/vulkan/FencedDeleter.cpp", 501 "src/dawn_native/vulkan/FencedDeleter.h", 502 "src/dawn_native/vulkan/Forward.h", 503 "src/dawn_native/vulkan/MemoryAllocator.cpp", 504 "src/dawn_native/vulkan/MemoryAllocator.h", 505 "src/dawn_native/vulkan/NativeSwapChainImplVk.cpp", 506 "src/dawn_native/vulkan/NativeSwapChainImplVk.h", 507 "src/dawn_native/vulkan/PipelineLayoutVk.cpp", 508 "src/dawn_native/vulkan/PipelineLayoutVk.h", 509 "src/dawn_native/vulkan/QueueVk.cpp", 510 "src/dawn_native/vulkan/QueueVk.h", 511 "src/dawn_native/vulkan/RenderPassCache.cpp", 512 "src/dawn_native/vulkan/RenderPassCache.h", 513 "src/dawn_native/vulkan/RenderPipelineVk.cpp", 514 "src/dawn_native/vulkan/RenderPipelineVk.h", 515 "src/dawn_native/vulkan/SamplerVk.cpp", 516 "src/dawn_native/vulkan/SamplerVk.h", 517 "src/dawn_native/vulkan/ShaderModuleVk.cpp", 518 "src/dawn_native/vulkan/ShaderModuleVk.h", 519 "src/dawn_native/vulkan/StagingBufferVk.cpp", 520 "src/dawn_native/vulkan/StagingBufferVk.h", 521 "src/dawn_native/vulkan/SwapChainVk.cpp", 522 "src/dawn_native/vulkan/SwapChainVk.h", 523 "src/dawn_native/vulkan/TextureVk.cpp", 524 "src/dawn_native/vulkan/TextureVk.h", 525 "src/dawn_native/vulkan/UtilsVulkan.cpp", 526 "src/dawn_native/vulkan/UtilsVulkan.h", 527 "src/dawn_native/vulkan/VulkanBackend.cpp", 528 "src/dawn_native/vulkan/VulkanError.cpp", 529 "src/dawn_native/vulkan/VulkanError.h", 530 "src/dawn_native/vulkan/VulkanFunctions.cpp", 531 "src/dawn_native/vulkan/VulkanFunctions.h", 532 "src/dawn_native/vulkan/VulkanInfo.cpp", 533 "src/dawn_native/vulkan/VulkanInfo.h", 534 ], 535 ".", 536 "$dawn_root") 537 } 538} 539 540# The shared library for libdawn_native for use by samples, tests, etc. 541shared_library("libdawn_native") { 542 deps = [ ":libdawn_native_sources" ] 543 544 #Make headers publically visible 545 public_deps = [ ":libdawn_native_headers" ] 546 public_configs = [ ":libdawn_public" ] 547 548 # Tell dependents where to find this shared library 549 if (is_mac) { 550 ldflags = [ 551 "-install_name", 552 "@rpath/${target_name}.dylib", 553 ] 554 } 555} 556