BUILD.gn 25 KB

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