1 2// genrules were obtained from the CMake build: 3// $ cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Debug 4// $ ninja -v -j 1 >log.log 5// Find Python invocations. 6// Use regex replacements to get "cmd:" lines below. 7 8genrule { 9 name: "deqp_spvtools_generate_grammar_tables", 10 out: [ 11 "core.insts-unified1.inc", 12 "debuginfo.insts.inc", 13 "enum_string_mapping.inc", 14 "extension_enum.inc", 15 "glsl.std.450.insts.inc", 16 "opencl.debuginfo.100.insts.inc", 17 "opencl.std.insts.inc", 18 "operand.kinds-unified1.inc", 19 "spv-amd-gcn-shader.insts.inc", 20 "spv-amd-shader-ballot.insts.inc", 21 "spv-amd-shader-explicit-vertex-parameter.insts.inc", 22 "spv-amd-shader-trinary-minmax.insts.inc", 23 ], 24 srcs: [ 25 ":deqp_spirv_headers_unified1_extinst.glsl.std.450.grammar.json", 26 ":deqp_spirv_headers_unified1_extinst.opencl.std.100.grammar.json", 27 ":deqp_spirv_headers_unified1_spirv.core.grammar.json", 28 "source/extinst.debuginfo.grammar.json", 29 "source/extinst.opencl.debuginfo.100.grammar.json", 30 "source/extinst.spv-amd-gcn-shader.grammar.json", 31 "source/extinst.spv-amd-shader-ballot.grammar.json", 32 "source/extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json", 33 "source/extinst.spv-amd-shader-trinary-minmax.grammar.json", 34 ], 35 tool_files: ["utils/generate_grammar_tables.py"], 36 cmd: 37 "$(location) --extinst-vendor-grammar=$(location source/extinst.spv-amd-gcn-shader.grammar.json) --vendor-insts-output=$(location spv-amd-gcn-shader.insts.inc) --vendor-operand-kind-prefix=; "+ 38 "$(location) --spirv-core-grammar=$(location :deqp_spirv_headers_unified1_spirv.core.grammar.json) --extinst-debuginfo-grammar=$(location source/extinst.debuginfo.grammar.json) --extinst-cldebuginfo100-grammar=$(location source/extinst.opencl.debuginfo.100.grammar.json) --core-insts-output=$(location core.insts-unified1.inc) --operand-kinds-output=$(location operand.kinds-unified1.inc); "+ 39 "$(location) --extinst-vendor-grammar=$(location source/extinst.debuginfo.grammar.json) --vendor-insts-output=$(location debuginfo.insts.inc) --vendor-operand-kind-prefix=; "+ 40 "$(location) --extinst-vendor-grammar=$(location source/extinst.spv-amd-shader-ballot.grammar.json) --vendor-insts-output=$(location spv-amd-shader-ballot.insts.inc) --vendor-operand-kind-prefix=; "+ 41 "$(location) --extinst-vendor-grammar=$(location source/extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json) --vendor-insts-output=$(location spv-amd-shader-explicit-vertex-parameter.insts.inc) --vendor-operand-kind-prefix=; "+ 42 "$(location) --extinst-vendor-grammar=$(location source/extinst.spv-amd-shader-trinary-minmax.grammar.json) --vendor-insts-output=$(location spv-amd-shader-trinary-minmax.insts.inc) --vendor-operand-kind-prefix=; "+ 43 "$(location) --extinst-vendor-grammar=$(location source/extinst.opencl.debuginfo.100.grammar.json) --vendor-insts-output=$(location opencl.debuginfo.100.insts.inc) --vendor-operand-kind-prefix=CLDEBUG100_; "+ 44 "$(location) --spirv-core-grammar=$(location :deqp_spirv_headers_unified1_spirv.core.grammar.json) --extinst-debuginfo-grammar=$(location source/extinst.debuginfo.grammar.json) --extinst-cldebuginfo100-grammar=$(location source/extinst.opencl.debuginfo.100.grammar.json) --extension-enum-output=$(location extension_enum.inc) --enum-string-mapping-output=$(location enum_string_mapping.inc); "+ 45 "$(location) --extinst-opencl-grammar=$(location :deqp_spirv_headers_unified1_extinst.opencl.std.100.grammar.json) --opencl-insts-output=$(location opencl.std.insts.inc); "+ 46 "$(location) --extinst-glsl-grammar=$(location :deqp_spirv_headers_unified1_extinst.glsl.std.450.grammar.json) --glsl-insts-output=$(location glsl.std.450.insts.inc); " 47} 48 49 50genrule { 51 name: "deqp_spvtools_generate_language_headers", 52 out: [ 53 "DebugInfo.h", 54 "OpenCLDebugInfo100.h", 55 ], 56 srcs: [ 57 "source/extinst.debuginfo.grammar.json", 58 "source/extinst.opencl.debuginfo.100.grammar.json", 59 ], 60 tool_files: ["utils/generate_language_headers.py"], 61 cmd: 62 "$(location) --extinst-grammar=$(location source/extinst.debuginfo.grammar.json) --extinst-output-path=$(location DebugInfo.h); "+ 63 "$(location) --extinst-grammar=$(location source/extinst.opencl.debuginfo.100.grammar.json) --extinst-output-path=$(location OpenCLDebugInfo100.h); " 64} 65 66genrule { 67 name: "deqp_spvtools_generate_registry_tables", 68 out: [ 69 "generators.inc" 70 ], 71 srcs: [ 72 ":deqp_spirv_headers_spir-v.xml" 73 ], 74 tool_files: ["utils/generate_registry_tables.py"], 75 cmd: "$(location) --xml=$(location :deqp_spirv_headers_spir-v.xml) --generator-output=$(location generators.inc)", 76} 77 78genrule { // FIXME this relies on `git` which is no good on build machines 79 name: "deqp_spvtools_update_build_version", 80 out: ["build-version.inc"], 81 srcs: ["CHANGES"], 82 tool_files: ["utils/update_build_version.py"], 83 cmd: "$(location) $$(dirname $(location CHANGES)) " + 84 "$(location build-version.inc)", 85} 86 87cc_library { 88 name: "deqp_spirv-tools", 89 sdk_version: "27", 90 srcs: [ 91 "source/*.cpp", 92 "source/util/*.cpp", 93 "source/val/*.cpp", 94 "source/opt/*.cpp", 95 ], 96 local_include_dirs: [ 97 "source", 98 ], 99 export_include_dirs: [ 100 "include", 101 ], 102 include_dirs: [ 103 "external/deqp-deps/SPIRV-Headers/include" 104 ], 105 generated_headers: [ 106 "deqp_spvtools_generate_grammar_tables", 107 "deqp_spvtools_generate_language_headers", 108 "deqp_spvtools_update_build_version", 109 "deqp_spvtools_generate_registry_tables", 110 ], 111 stl: "libc++_static", 112 cppflags: [ 113 "-Wno-implicit-fallthrough" 114 ], 115} 116