BUILD.gn 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710
  1. dawn_thirdparty_root = "../../externals/dawn/third_party"
  2. spirv_cross = "${dawn_thirdparty_root}/spirv-cross"
  3. config("spirv_cross_config") {
  4. include_dirs = [ "$dawn_thirdparty_root" ]
  5. defines = [ "SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS" ]
  6. }
  7. static_library("spirv_cross") {
  8. public_configs = [ ":spirv_cross_config" ]
  9. configs -= [ "//gn:warnings" ]
  10. cflags = []
  11. if (is_win) {
  12. cflags += [
  13. "/wd5850",
  14. "/wd4245",
  15. "/wd4702",
  16. "/wd4706",
  17. "/wd4715",
  18. ]
  19. }
  20. sources = rebase_path([
  21. "GLSL.std.450.h",
  22. "spirv.hpp",
  23. "spirv_cfg.cpp",
  24. "spirv_cfg.hpp",
  25. "spirv_common.hpp",
  26. "spirv_cpp.cpp",
  27. "spirv_cpp.hpp",
  28. "spirv_cross.cpp",
  29. "spirv_cross.hpp",
  30. "spirv_cross_parsed_ir.cpp",
  31. "spirv_cross_parsed_ir.hpp",
  32. "spirv_glsl.cpp",
  33. "spirv_glsl.hpp",
  34. "spirv_hlsl.cpp",
  35. "spirv_hlsl.hpp",
  36. "spirv_msl.cpp",
  37. "spirv_msl.hpp",
  38. "spirv_parser.cpp",
  39. "spirv_parser.hpp",
  40. ],
  41. ".",
  42. "${spirv_cross}")
  43. }
  44. # Empty targets to add the include dirs and list the sources of Khronos headers for header inclusion check.
  45. config("khronos_headers_public") {
  46. include_dirs = [ "../../externals/dawn/third_party/khronos" ]
  47. }
  48. source_set("vulkan_headers") {
  49. sources = [
  50. "khronos/vulkan/vk_platform.h",
  51. "khronos/vulkan/vulkan.h",
  52. ]
  53. public_configs = [ ":khronos_headers_public" ]
  54. }
  55. source_set("khronos_platform") {
  56. sources = [
  57. "khronos/KHR/khrplatform.h",
  58. ]
  59. public_configs = [ ":khronos_headers_public" ]
  60. }
  61. spirv_tools = "$dawn_thirdparty_root/SPIRV-Tools"
  62. spirv_tools_spirv_headers_dir = "$dawn_thirdparty_root/spirv-headers"
  63. build_with_chromium = false
  64. linux_use_bundled_binutils_override = false
  65. spirv_headers = spirv_tools_spirv_headers_dir
  66. template("spvtools_core_tables") {
  67. assert(defined(invoker.version), "Need version in $target_name generation.")
  68. action("spvtools_core_tables_" + target_name) {
  69. script = "${spirv_tools}/utils/generate_grammar_tables.py"
  70. version = invoker.version
  71. core_json_file =
  72. "${spirv_headers}/include/spirv/$version/spirv.core.grammar.json"
  73. core_insts_file = "${target_gen_dir}/core.insts-$version.inc"
  74. operand_kinds_file = "${target_gen_dir}/operand.kinds-$version.inc"
  75. extinst_file = "${spirv_tools}/source/extinst.debuginfo.grammar.json"
  76. sources = [
  77. core_json_file,
  78. ]
  79. outputs = [
  80. core_insts_file,
  81. operand_kinds_file,
  82. ]
  83. args = [
  84. "--spirv-core-grammar",
  85. rebase_path(core_json_file, root_build_dir),
  86. "--core-insts-output",
  87. rebase_path(core_insts_file, root_build_dir),
  88. "--extinst-debuginfo-grammar",
  89. rebase_path(extinst_file, root_build_dir),
  90. "--operand-kinds-output",
  91. rebase_path(operand_kinds_file, root_build_dir),
  92. ]
  93. }
  94. }
  95. template("spvtools_core_enums") {
  96. assert(defined(invoker.version), "Need version in $target_name generation.")
  97. action("spvtools_core_enums_" + target_name) {
  98. script = "${spirv_tools}/utils/generate_grammar_tables.py"
  99. version = invoker.version
  100. core_json_file =
  101. "${spirv_headers}/include/spirv/$version/spirv.core.grammar.json"
  102. debug_insts_file = "${spirv_tools}/source/extinst.debuginfo.grammar.json"
  103. extension_enum_file = "${target_gen_dir}/extension_enum.inc"
  104. extension_map_file = "${target_gen_dir}/enum_string_mapping.inc"
  105. args = [
  106. "--spirv-core-grammar",
  107. rebase_path(core_json_file, root_build_dir),
  108. "--extinst-debuginfo-grammar",
  109. rebase_path(debug_insts_file, root_build_dir),
  110. "--extension-enum-output",
  111. rebase_path(extension_enum_file, root_build_dir),
  112. "--enum-string-mapping-output",
  113. rebase_path(extension_map_file, root_build_dir),
  114. ]
  115. inputs = [
  116. core_json_file,
  117. ]
  118. outputs = [
  119. extension_enum_file,
  120. extension_map_file,
  121. ]
  122. }
  123. }
  124. template("spvtools_glsl_tables") {
  125. assert(defined(invoker.version), "Need version in $target_name generation.")
  126. action("spvtools_glsl_tables_" + target_name) {
  127. script = "${spirv_tools}/utils/generate_grammar_tables.py"
  128. version = invoker.version
  129. core_json_file =
  130. "${spirv_headers}/include/spirv/$version/spirv.core.grammar.json"
  131. glsl_json_file = "${spirv_headers}/include/spirv/${version}/extinst.glsl.std.450.grammar.json"
  132. glsl_insts_file = "${target_gen_dir}/glsl.std.450.insts.inc"
  133. debug_insts_file = "${spirv_tools}/source/extinst.debuginfo.grammar.json"
  134. args = [
  135. "--spirv-core-grammar",
  136. rebase_path(core_json_file, root_build_dir),
  137. "--extinst-glsl-grammar",
  138. rebase_path(glsl_json_file, root_build_dir),
  139. "--glsl-insts-output",
  140. rebase_path(glsl_insts_file, root_build_dir),
  141. "--extinst-debuginfo-grammar",
  142. rebase_path(debug_insts_file, root_build_dir),
  143. ]
  144. inputs = [
  145. core_json_file,
  146. glsl_json_file,
  147. ]
  148. outputs = [
  149. glsl_insts_file,
  150. ]
  151. }
  152. }
  153. template("spvtools_opencl_tables") {
  154. assert(defined(invoker.version), "Need version in $target_name generation.")
  155. action("spvtools_opencl_tables_" + target_name) {
  156. script = "${spirv_tools}/utils/generate_grammar_tables.py"
  157. version = invoker.version
  158. core_json_file =
  159. "${spirv_headers}/include/spirv/$version/spirv.core.grammar.json"
  160. opengl_json_file = "${spirv_headers}/include/spirv/${version}/extinst.opencl.std.100.grammar.json"
  161. opencl_insts_file = "${target_gen_dir}/opencl.std.insts.inc"
  162. debug_insts_file = "${spirv_tools}/source/extinst.debuginfo.grammar.json"
  163. args = [
  164. "--spirv-core-grammar",
  165. rebase_path(core_json_file, root_build_dir),
  166. "--extinst-opencl-grammar",
  167. rebase_path(opengl_json_file, root_build_dir),
  168. "--opencl-insts-output",
  169. rebase_path(opencl_insts_file, root_build_dir),
  170. "--extinst-debuginfo-grammar",
  171. rebase_path(debug_insts_file, root_build_dir),
  172. ]
  173. inputs = [
  174. core_json_file,
  175. opengl_json_file,
  176. ]
  177. outputs = [
  178. opencl_insts_file,
  179. ]
  180. }
  181. }
  182. template("spvtools_language_header") {
  183. assert(defined(invoker.name), "Need name in $target_name generation.")
  184. action("spvtools_language_header_" + target_name) {
  185. script = "${spirv_tools}/utils/generate_language_headers.py"
  186. name = invoker.name
  187. extinst_output_base = "${target_gen_dir}/${name}"
  188. debug_insts_file = "${spirv_tools}/source/extinst.debuginfo.grammar.json"
  189. args = [
  190. "--extinst-name",
  191. "${name}",
  192. "--extinst-grammar",
  193. rebase_path(debug_insts_file, root_build_dir),
  194. "--extinst-output-base",
  195. rebase_path(extinst_output_base, root_build_dir),
  196. ]
  197. inputs = [
  198. debug_insts_file,
  199. ]
  200. outputs = [
  201. "${extinst_output_base}.h",
  202. ]
  203. }
  204. }
  205. template("spvtools_vendor_table") {
  206. assert(defined(invoker.name), "Need name in $target_name generation.")
  207. action("spvtools_vendor_tables_" + target_name) {
  208. script = "${spirv_tools}/utils/generate_grammar_tables.py"
  209. name = invoker.name
  210. extinst_vendor_grammar =
  211. "${spirv_tools}/source/extinst.${name}.grammar.json"
  212. extinst_file = "${target_gen_dir}/${name}.insts.inc"
  213. args = [
  214. "--extinst-vendor-grammar",
  215. rebase_path(extinst_vendor_grammar, root_build_dir),
  216. "--vendor-insts-output",
  217. rebase_path(extinst_file, root_build_dir),
  218. ]
  219. inputs = [
  220. extinst_vendor_grammar,
  221. ]
  222. outputs = [
  223. extinst_file,
  224. ]
  225. }
  226. }
  227. action("spvtools_generators_inc") {
  228. script = "${spirv_tools}/utils/generate_registry_tables.py"
  229. # TODO(dsinclair): Make work for chrome
  230. xml_file = "${spirv_headers}/include/spirv/spir-v.xml"
  231. inc_file = "${target_gen_dir}/generators.inc"
  232. sources = [
  233. xml_file,
  234. ]
  235. outputs = [
  236. inc_file,
  237. ]
  238. args = [
  239. "--xml",
  240. rebase_path(xml_file, root_build_dir),
  241. "--generator",
  242. rebase_path(inc_file, root_build_dir),
  243. ]
  244. }
  245. action("spvtools_build_version") {
  246. script = "${spirv_tools}/utils/update_build_version.py"
  247. src_dir = "${spirv_tools}"
  248. inc_file = "${target_gen_dir}/build-version.inc"
  249. outputs = [
  250. inc_file,
  251. ]
  252. args = [
  253. rebase_path(src_dir, root_build_dir),
  254. rebase_path(inc_file, root_build_dir),
  255. ]
  256. }
  257. spvtools_core_tables("unified1") {
  258. version = "unified1"
  259. }
  260. spvtools_core_enums("unified1") {
  261. version = "unified1"
  262. }
  263. spvtools_glsl_tables("glsl1-0") {
  264. version = "1.0"
  265. }
  266. spvtools_opencl_tables("opencl1-0") {
  267. version = "1.0"
  268. }
  269. spvtools_language_header("unified1") {
  270. name = "DebugInfo"
  271. }
  272. spvtools_vendor_tables = [
  273. "spv-amd-shader-explicit-vertex-parameter",
  274. "spv-amd-shader-trinary-minmax",
  275. "spv-amd-gcn-shader",
  276. "spv-amd-shader-ballot",
  277. "debuginfo",
  278. ]
  279. foreach(table, spvtools_vendor_tables) {
  280. spvtools_vendor_table(table) {
  281. name = table
  282. }
  283. }
  284. config("spvtools_public_config") {
  285. include_dirs = [ "${spirv_tools}/include" ]
  286. }
  287. config("spvtools_internal_config") {
  288. include_dirs = [
  289. "${spirv_tools}",
  290. "$target_gen_dir",
  291. "${spirv_headers}/include",
  292. ]
  293. configs = [ ":spvtools_public_config" ]
  294. if (is_clang) {
  295. cflags = [
  296. "-Wno-implicit-fallthrough",
  297. "-Wno-extra-semi",
  298. "-Wno-range-loop-analysis",
  299. "-Wno-conditional-uninitialized",
  300. ]
  301. }
  302. }
  303. source_set("spvtools_headers") {
  304. sources = [
  305. "include/SPIRV-Tools/libspirv.h",
  306. "include/SPIRV-Tools/libspirv.hpp",
  307. "include/SPIRV-Tools/linker.hpp",
  308. "include/SPIRV-Tools/optimizer.hpp",
  309. ]
  310. public_configs = [ ":spvtools_public_config" ]
  311. }
  312. static_library("spvtools") {
  313. deps = [
  314. ":spvtools_core_enums_unified1",
  315. ":spvtools_core_tables_unified1",
  316. ":spvtools_generators_inc",
  317. ":spvtools_glsl_tables_glsl1-0",
  318. ":spvtools_language_header_unified1",
  319. ":spvtools_opencl_tables_opencl1-0",
  320. ]
  321. foreach(target_name, spvtools_vendor_tables) {
  322. deps += [ ":spvtools_vendor_tables_$target_name" ]
  323. }
  324. sources = rebase_path([
  325. "source/assembly_grammar.cpp",
  326. "source/assembly_grammar.h",
  327. "source/binary.cpp",
  328. "source/binary.h",
  329. "source/diagnostic.cpp",
  330. "source/diagnostic.h",
  331. "source/disassemble.cpp",
  332. "source/enum_set.h",
  333. "source/enum_string_mapping.cpp",
  334. "source/ext_inst.cpp",
  335. "source/ext_inst.h",
  336. "source/extensions.cpp",
  337. "source/extensions.h",
  338. "source/instruction.h",
  339. "source/libspirv.cpp",
  340. "source/macro.h",
  341. "source/name_mapper.cpp",
  342. "source/name_mapper.h",
  343. "source/opcode.cpp",
  344. "source/opcode.h",
  345. "source/operand.cpp",
  346. "source/operand.h",
  347. "source/parsed_operand.cpp",
  348. "source/parsed_operand.h",
  349. "source/print.cpp",
  350. "source/print.h",
  351. "source/spirv_constant.h",
  352. "source/spirv_definition.h",
  353. "source/spirv_endian.cpp",
  354. "source/spirv_endian.h",
  355. "source/spirv_target_env.cpp",
  356. "source/spirv_target_env.h",
  357. "source/spirv_validator_options.cpp",
  358. "source/spirv_validator_options.h",
  359. "source/table.cpp",
  360. "source/table.h",
  361. "source/text.cpp",
  362. "source/text.h",
  363. "source/text_handler.cpp",
  364. "source/text_handler.h",
  365. "source/util/bit_vector.cpp",
  366. "source/util/bit_vector.h",
  367. "source/util/bitutils.h",
  368. "source/util/hex_float.h",
  369. "source/util/ilist.h",
  370. "source/util/ilist_node.h",
  371. "source/util/make_unique.h",
  372. "source/util/parse_number.cpp",
  373. "source/util/parse_number.h",
  374. "source/util/small_vector.h",
  375. "source/util/string_utils.cpp",
  376. "source/util/string_utils.h",
  377. "source/util/timer.cpp",
  378. "source/util/timer.h",
  379. ],
  380. ".",
  381. "$dawn_thirdparty_root/SPIRV-Tools")
  382. public_deps = [
  383. ":spvtools_headers",
  384. ]
  385. configs += [ ":spvtools_internal_config" ]
  386. }
  387. static_library("spvtools_val") {
  388. sources = rebase_path([
  389. "source/val/basic_block.cpp",
  390. "source/val/construct.cpp",
  391. "source/val/function.cpp",
  392. "source/val/instruction.cpp",
  393. "source/val/validate.cpp",
  394. "source/val/validate.h",
  395. "source/val/validate_adjacency.cpp",
  396. "source/val/validate_annotation.cpp",
  397. "source/val/validate_arithmetics.cpp",
  398. "source/val/validate_atomics.cpp",
  399. "source/val/validate_barriers.cpp",
  400. "source/val/validate_bitwise.cpp",
  401. "source/val/validate_builtins.cpp",
  402. "source/val/validate_capability.cpp",
  403. "source/val/validate_cfg.cpp",
  404. "source/val/validate_composites.cpp",
  405. "source/val/validate_constants.cpp",
  406. "source/val/validate_conversion.cpp",
  407. "source/val/validate_datarules.cpp",
  408. "source/val/validate_debug.cpp",
  409. "source/val/validate_decorations.cpp",
  410. "source/val/validate_derivatives.cpp",
  411. "source/val/validate_execution_limitations.cpp",
  412. "source/val/validate_extensions.cpp",
  413. "source/val/validate_function.cpp",
  414. "source/val/validate_id.cpp",
  415. "source/val/validate_image.cpp",
  416. "source/val/validate_instruction.cpp",
  417. "source/val/validate_interfaces.cpp",
  418. "source/val/validate_layout.cpp",
  419. "source/val/validate_literals.cpp",
  420. "source/val/validate_logicals.cpp",
  421. "source/val/validate_memory.cpp",
  422. "source/val/validate_memory_semantics.cpp",
  423. "source/val/validate_misc.cpp",
  424. "source/val/validate_mode_setting.cpp",
  425. "source/val/validate_non_uniform.cpp",
  426. "source/val/validate_primitives.cpp",
  427. "source/val/validate_scopes.cpp",
  428. "source/val/validate_type.cpp",
  429. "source/val/validation_state.cpp",
  430. ],
  431. ".",
  432. "${spirv_tools}")
  433. deps = [
  434. ":spvtools",
  435. ]
  436. public_deps = [
  437. ":spvtools_headers",
  438. ]
  439. configs += [ ":spvtools_internal_config" ]
  440. }
  441. static_library("spvtools_opt") {
  442. sources =
  443. rebase_path([
  444. "source/opt/aggressive_dead_code_elim_pass.cpp",
  445. "source/opt/aggressive_dead_code_elim_pass.h",
  446. "source/opt/basic_block.cpp",
  447. "source/opt/basic_block.h",
  448. "source/opt/block_merge_pass.cpp",
  449. "source/opt/block_merge_pass.h",
  450. "source/opt/build_module.cpp",
  451. "source/opt/build_module.h",
  452. "source/opt/ccp_pass.cpp",
  453. "source/opt/ccp_pass.h",
  454. "source/opt/cfg.cpp",
  455. "source/opt/cfg.h",
  456. "source/opt/cfg_cleanup_pass.cpp",
  457. "source/opt/cfg_cleanup_pass.h",
  458. "source/opt/combine_access_chains.cpp",
  459. "source/opt/combine_access_chains.h",
  460. "source/opt/common_uniform_elim_pass.cpp",
  461. "source/opt/common_uniform_elim_pass.h",
  462. "source/opt/compact_ids_pass.cpp",
  463. "source/opt/compact_ids_pass.h",
  464. "source/opt/composite.cpp",
  465. "source/opt/composite.h",
  466. "source/opt/const_folding_rules.cpp",
  467. "source/opt/const_folding_rules.h",
  468. "source/opt/constants.cpp",
  469. "source/opt/constants.h",
  470. "source/opt/copy_prop_arrays.cpp",
  471. "source/opt/copy_prop_arrays.h",
  472. "source/opt/dead_branch_elim_pass.cpp",
  473. "source/opt/dead_branch_elim_pass.h",
  474. "source/opt/dead_insert_elim_pass.cpp",
  475. "source/opt/dead_insert_elim_pass.h",
  476. "source/opt/dead_variable_elimination.cpp",
  477. "source/opt/dead_variable_elimination.h",
  478. "source/opt/decoration_manager.cpp",
  479. "source/opt/decoration_manager.h",
  480. "source/opt/def_use_manager.cpp",
  481. "source/opt/def_use_manager.h",
  482. "source/opt/dominator_analysis.cpp",
  483. "source/opt/dominator_analysis.h",
  484. "source/opt/dominator_tree.cpp",
  485. "source/opt/dominator_tree.h",
  486. "source/opt/eliminate_dead_constant_pass.cpp",
  487. "source/opt/eliminate_dead_constant_pass.h",
  488. "source/opt/eliminate_dead_functions_pass.cpp",
  489. "source/opt/eliminate_dead_functions_pass.h",
  490. "source/opt/feature_manager.cpp",
  491. "source/opt/feature_manager.h",
  492. "source/opt/flatten_decoration_pass.cpp",
  493. "source/opt/flatten_decoration_pass.h",
  494. "source/opt/fold.cpp",
  495. "source/opt/fold.h",
  496. "source/opt/fold_spec_constant_op_and_composite_pass.cpp",
  497. "source/opt/fold_spec_constant_op_and_composite_pass.h",
  498. "source/opt/folding_rules.cpp",
  499. "source/opt/folding_rules.h",
  500. "source/opt/freeze_spec_constant_value_pass.cpp",
  501. "source/opt/freeze_spec_constant_value_pass.h",
  502. "source/opt/function.cpp",
  503. "source/opt/function.h",
  504. "source/opt/if_conversion.cpp",
  505. "source/opt/if_conversion.h",
  506. "source/opt/inline_exhaustive_pass.cpp",
  507. "source/opt/inline_exhaustive_pass.h",
  508. "source/opt/inline_opaque_pass.cpp",
  509. "source/opt/inline_opaque_pass.h",
  510. "source/opt/inline_pass.cpp",
  511. "source/opt/inline_pass.h",
  512. "source/opt/instruction.cpp",
  513. "source/opt/instruction.h",
  514. "source/opt/instruction_list.cpp",
  515. "source/opt/instruction_list.h",
  516. "source/opt/ir_builder.h",
  517. "source/opt/ir_context.cpp",
  518. "source/opt/ir_context.h",
  519. "source/opt/ir_loader.cpp",
  520. "source/opt/ir_loader.h",
  521. "source/opt/iterator.h",
  522. "source/opt/licm_pass.cpp",
  523. "source/opt/licm_pass.h",
  524. "source/opt/local_access_chain_convert_pass.cpp",
  525. "source/opt/local_access_chain_convert_pass.h",
  526. "source/opt/local_redundancy_elimination.cpp",
  527. "source/opt/local_redundancy_elimination.h",
  528. "source/opt/local_single_block_elim_pass.cpp",
  529. "source/opt/local_single_block_elim_pass.h",
  530. "source/opt/local_single_store_elim_pass.cpp",
  531. "source/opt/local_single_store_elim_pass.h",
  532. "source/opt/local_ssa_elim_pass.cpp",
  533. "source/opt/local_ssa_elim_pass.h",
  534. "source/opt/log.h",
  535. "source/opt/loop_dependence.cpp",
  536. "source/opt/loop_dependence.h",
  537. "source/opt/loop_dependence_helpers.cpp",
  538. "source/opt/loop_descriptor.cpp",
  539. "source/opt/loop_descriptor.h",
  540. "source/opt/loop_fission.cpp",
  541. "source/opt/loop_fission.h",
  542. "source/opt/loop_fusion.cpp",
  543. "source/opt/loop_fusion.h",
  544. "source/opt/loop_fusion_pass.cpp",
  545. "source/opt/loop_fusion_pass.h",
  546. "source/opt/loop_peeling.cpp",
  547. "source/opt/loop_peeling.h",
  548. "source/opt/loop_unroller.cpp",
  549. "source/opt/loop_unroller.h",
  550. "source/opt/loop_unswitch_pass.cpp",
  551. "source/opt/loop_unswitch_pass.h",
  552. "source/opt/loop_utils.cpp",
  553. "source/opt/loop_utils.h",
  554. "source/opt/mem_pass.cpp",
  555. "source/opt/mem_pass.h",
  556. "source/opt/merge_return_pass.cpp",
  557. "source/opt/merge_return_pass.h",
  558. "source/opt/module.cpp",
  559. "source/opt/module.h",
  560. "source/opt/null_pass.h",
  561. "source/opt/optimizer.cpp",
  562. "source/opt/pass.cpp",
  563. "source/opt/pass.h",
  564. "source/opt/pass_manager.cpp",
  565. "source/opt/pass_manager.h",
  566. "source/opt/passes.h",
  567. "source/opt/private_to_local_pass.cpp",
  568. "source/opt/private_to_local_pass.h",
  569. "source/opt/propagator.cpp",
  570. "source/opt/propagator.h",
  571. "source/opt/reduce_load_size.cpp",
  572. "source/opt/reduce_load_size.h",
  573. "source/opt/redundancy_elimination.cpp",
  574. "source/opt/redundancy_elimination.h",
  575. "source/opt/reflect.h",
  576. "source/opt/register_pressure.cpp",
  577. "source/opt/register_pressure.h",
  578. "source/opt/remove_duplicates_pass.cpp",
  579. "source/opt/remove_duplicates_pass.h",
  580. "source/opt/replace_invalid_opc.cpp",
  581. "source/opt/replace_invalid_opc.h",
  582. "source/opt/scalar_analysis.cpp",
  583. "source/opt/scalar_analysis.h",
  584. "source/opt/scalar_analysis_nodes.h",
  585. "source/opt/scalar_analysis_simplification.cpp",
  586. "source/opt/scalar_replacement_pass.cpp",
  587. "source/opt/scalar_replacement_pass.h",
  588. "source/opt/set_spec_constant_default_value_pass.cpp",
  589. "source/opt/set_spec_constant_default_value_pass.h",
  590. "source/opt/simplification_pass.cpp",
  591. "source/opt/simplification_pass.h",
  592. "source/opt/ssa_rewrite_pass.cpp",
  593. "source/opt/ssa_rewrite_pass.h",
  594. "source/opt/strength_reduction_pass.cpp",
  595. "source/opt/strength_reduction_pass.h",
  596. "source/opt/strip_debug_info_pass.cpp",
  597. "source/opt/strip_debug_info_pass.h",
  598. "source/opt/strip_reflect_info_pass.cpp",
  599. "source/opt/strip_reflect_info_pass.h",
  600. "source/opt/tree_iterator.h",
  601. "source/opt/type_manager.cpp",
  602. "source/opt/type_manager.h",
  603. "source/opt/types.cpp",
  604. "source/opt/types.h",
  605. "source/opt/unify_const_pass.cpp",
  606. "source/opt/unify_const_pass.h",
  607. "source/opt/value_number_table.cpp",
  608. "source/opt/value_number_table.h",
  609. "source/opt/vector_dce.cpp",
  610. "source/opt/vector_dce.h",
  611. "source/opt/workaround1209.cpp",
  612. "source/opt/workaround1209.h",
  613. ],
  614. ".",
  615. "${spirv_tools}")
  616. deps = [
  617. ":spvtools",
  618. ]
  619. public_deps = [
  620. ":spvtools_headers",
  621. ]
  622. configs += [ ":spvtools_internal_config" ]
  623. }
  624. group("SPIRV-Tools") {
  625. deps = [
  626. ":spvtools",
  627. ":spvtools_opt",
  628. ":spvtools_val",
  629. ]
  630. }
  631. executable("spirv-as") {
  632. sources = rebase_path([
  633. "source/software_version.cpp",
  634. "tools/as/as.cpp",
  635. ],
  636. ".",
  637. "${spirv_tools}")
  638. deps = [
  639. ":spvtools",
  640. ":spvtools_build_version",
  641. ]
  642. configs += [ ":spvtools_internal_config" ]
  643. }