• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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