Fix Android build after SPIRV-Tools update
Bug: angleproject:4425
Change-Id: I2785b9f5c6f96b2b12eeacf64ff5316355f1ae54
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/41609
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
diff --git a/third_party/SPIRV-Headers/Android.bp b/third_party/SPIRV-Headers/Android.bp
index 96b7faa..d568b48 100644
--- a/third_party/SPIRV-Headers/Android.bp
+++ b/third_party/SPIRV-Headers/Android.bp
@@ -1,34 +1,35 @@
-filegroup {
- name: "swiftshader_spirv.core.grammar.json-1.0",
- srcs: ["include/spirv/1.0/spirv.core.grammar.json"],
-}
+//
+// Copyright (C) 2020 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
filegroup {
- name: "swiftshader_spirv.core.grammar.json-1.1",
- srcs: ["include/spirv/1.1/spirv.core.grammar.json"],
-}
-
-filegroup {
- name: "swiftshader_spirv.core.grammar.json-1.2",
- srcs: ["include/spirv/1.2/spirv.core.grammar.json"],
-}
-
-filegroup {
- name: "swiftshader_spirv.core.grammar.json-unified1",
+ name: "swiftshader_spirv_headers_unified1_spirv.core.grammar.json",
srcs: ["include/spirv/unified1/spirv.core.grammar.json"],
}
filegroup {
- name: "swiftshader_spirv.glsl.grammar.json",
- srcs: ["include/spirv/1.2/extinst.glsl.std.450.grammar.json"],
+ name: "swiftshader_spirv_headers_unified1_extinst.opencl.std.100.grammar.json",
+ srcs: ["include/spirv/unified1/extinst.opencl.std.100.grammar.json"],
}
filegroup {
- name: "swiftshader_spirv.opencl.grammar.json",
- srcs: ["include/spirv/1.2/extinst.opencl.std.100.grammar.json"],
+ name: "swiftshader_spirv_headers_unified1_extinst.glsl.std.450.grammar.json",
+ srcs: ["include/spirv/unified1/extinst.glsl.std.450.grammar.json"],
}
filegroup {
- name: "swiftshader_spirv.registry.xml",
+ name: "swiftshader_spirv_headers_spir-v.xml",
srcs: ["include/spirv/spir-v.xml"],
}
diff --git a/third_party/SPIRV-Tools/Android.bp b/third_party/SPIRV-Tools/Android.bp
index 64502f4..8c8ef6c 100644
--- a/third_party/SPIRV-Tools/Android.bp
+++ b/third_party/SPIRV-Tools/Android.bp
@@ -16,170 +16,84 @@
// SPIRV Tools
-filegroup {
- name: "swiftshader_spirv.debuginfo.grammar.json",
- srcs: ["source/extinst.debuginfo.grammar.json"],
-}
-
-filegroup {
- name: "swiftshader_spirv.extinst.opencl.debuginfo.100.grammar.json",
- srcs: ["source/extinst.opencl.debuginfo.100.grammar.json"],
-}
+// genrules were obtained from the CMake build:
+// $ cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Debug
+// $ ninja -v -j 1 >log.log
+// Find Python invocations.
+// Use regex replacements to get "cmd:" lines below.
genrule {
- name: "swiftshader_gen_spvtools_grammar_tables_unified1",
+ name: "swiftshader_spvtools_generate_grammar_tables",
out: [
"core.insts-unified1.inc",
+ "debuginfo.insts.inc",
+ "enum_string_mapping.inc",
+ "extension_enum.inc",
"glsl.std.450.insts.inc",
+ "opencl.debuginfo.100.insts.inc",
"opencl.std.insts.inc",
"operand.kinds-unified1.inc",
- ],
- srcs: [
- ":swiftshader_spirv.core.grammar.json-unified1",
- ":swiftshader_spirv.glsl.grammar.json",
- ":swiftshader_spirv.opencl.grammar.json",
- ":swiftshader_spirv.debuginfo.grammar.json",
- ":swiftshader_spirv.extinst.opencl.debuginfo.100.grammar.json",
- ],
- tool_files: ["utils/generate_grammar_tables.py"],
- cmd: "$(location) "+
- "--spirv-core-grammar=$(location :swiftshader_spirv.core.grammar.json-unified1) "+
- "--extinst-glsl-grammar=$(location :swiftshader_spirv.glsl.grammar.json) "+
- "--extinst-opencl-grammar=$(location :swiftshader_spirv.opencl.grammar.json) "+
- "--extinst-debuginfo-grammar=$(location :swiftshader_spirv.debuginfo.grammar.json) "+
- "--extinst-cldebuginfo100-grammar=$(location :swiftshader_spirv.extinst.opencl.debuginfo.100.grammar.json) "+
- "--core-insts-output=$(location core.insts-unified1.inc) "+
- "--glsl-insts-output=$(location glsl.std.450.insts.inc) "+
- "--opencl-insts-output=$(location opencl.std.insts.inc) "+
- "--operand-kinds-output=$(location operand.kinds-unified1.inc)",
-}
-
-genrule {
- name: "swiftshader_gen_spvtools_grammar_tables_debuginfo",
- out: [
- "debuginfo.insts.inc",
- ],
- srcs: [
- ":swiftshader_spirv.debuginfo.grammar.json",
- ],
- tool_files: ["utils/generate_grammar_tables.py"],
- cmd: "$(location) --extinst-vendor-grammar=$(in) "+
- "--vendor-insts-output=$(out)"
-}
-
-genrule {
- name: "swiftshader_gen_spvtools_grammar_tables_opencl_debuginfo_100",
- out: [
- "opencl.debuginfo.100.insts.inc",
- ],
- srcs: [
- ":swiftshader_spirv.extinst.opencl.debuginfo.100.grammar.json",
- ],
- tool_files: ["utils/generate_grammar_tables.py"],
- cmd: "$(location) --extinst-vendor-grammar=$(in) "+
- "--vendor-insts-output=$(out) "+
- "--vendor-operand-kind-prefix=CLDEBUG100_"
-}
-
-genrule {
- name: "swiftshader_gen_spvtools_grammar_tables_amd-gcn-shader",
- out: [
"spv-amd-gcn-shader.insts.inc",
- ],
- srcs: [
- "source/extinst.spv-amd-gcn-shader.grammar.json",
- ],
- tool_files: ["utils/generate_grammar_tables.py"],
- cmd: "$(location) --extinst-vendor-grammar=$(in) "+
- "--vendor-insts-output=$(out)"
-}
-
-genrule {
- name: "swiftshader_gen_spvtools_grammar_tables_amd-shader-ballot",
- out: [
"spv-amd-shader-ballot.insts.inc",
- ],
- srcs: [
- "source/extinst.spv-amd-shader-ballot.grammar.json",
- ],
- tool_files: ["utils/generate_grammar_tables.py"],
- cmd: "$(location) --extinst-vendor-grammar=$(in) "+
- "--vendor-insts-output=$(out)"
-}
-
-genrule {
- name: "swiftshader_gen_spvtools_grammar_tables_amd-shader-explicit-vertex-parameter",
- out: [
"spv-amd-shader-explicit-vertex-parameter.insts.inc",
- ],
- srcs: [
- "source/extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json",
- ],
- tool_files: ["utils/generate_grammar_tables.py"],
- cmd: "$(location) --extinst-vendor-grammar=$(in) "+
- "--vendor-insts-output=$(out)"
-}
-
-genrule {
- name: "swiftshader_gen_spvtools_grammar_tables_amd-shader-trinary-minmax",
- out: [
"spv-amd-shader-trinary-minmax.insts.inc",
],
srcs: [
+ ":swiftshader_spirv_headers_unified1_extinst.glsl.std.450.grammar.json",
+ ":swiftshader_spirv_headers_unified1_extinst.opencl.std.100.grammar.json",
+ ":swiftshader_spirv_headers_unified1_spirv.core.grammar.json",
+ "source/extinst.debuginfo.grammar.json",
+ "source/extinst.opencl.debuginfo.100.grammar.json",
+ "source/extinst.spv-amd-gcn-shader.grammar.json",
+ "source/extinst.spv-amd-shader-ballot.grammar.json",
+ "source/extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json",
"source/extinst.spv-amd-shader-trinary-minmax.grammar.json",
],
tool_files: ["utils/generate_grammar_tables.py"],
- cmd: "$(location) --extinst-vendor-grammar=$(in) "+
- "--vendor-insts-output=$(out)"
+ cmd:
+ "$(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=; "+
+ "$(location) --spirv-core-grammar=$(location :swiftshader_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); "+
+ "$(location) --extinst-vendor-grammar=$(location source/extinst.debuginfo.grammar.json) --vendor-insts-output=$(location debuginfo.insts.inc) --vendor-operand-kind-prefix=; "+
+ "$(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=; "+
+ "$(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=; "+
+ "$(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=; "+
+ "$(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_; "+
+ "$(location) --spirv-core-grammar=$(location :swiftshader_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); "+
+ "$(location) --extinst-opencl-grammar=$(location :swiftshader_spirv_headers_unified1_extinst.opencl.std.100.grammar.json) --opencl-insts-output=$(location opencl.std.insts.inc); "+
+ "$(location) --extinst-glsl-grammar=$(location :swiftshader_spirv_headers_unified1_extinst.glsl.std.450.grammar.json) --glsl-insts-output=$(location glsl.std.450.insts.inc); "
}
+
genrule {
- name: "swiftshader_gen_spvtools_lang_headers",
+ name: "swiftshader_spvtools_generate_language_headers",
out: [
"DebugInfo.h",
+ "OpenCLDebugInfo100.h",
],
srcs: [
- ":swiftshader_spirv.debuginfo.grammar.json",
+ "source/extinst.debuginfo.grammar.json",
+ "source/extinst.opencl.debuginfo.100.grammar.json",
],
tool_files: ["utils/generate_language_headers.py"],
- cmd: "$(location) --extinst-name=DebugInfo "+
- "--extinst-grammar=$(location :swiftshader_spirv.debuginfo.grammar.json) "+
- "--extinst-output-base=$$(dirname $(location DebugInfo.h))/DebugInfo",
+ cmd:
+ "$(location) --extinst-name=DebugInfo --extinst-grammar=$(location source/extinst.debuginfo.grammar.json) --extinst-output-base=$$(dirname $(location DebugInfo.h))/DebugInfo; "+
+ "$(location) --extinst-name=OpenCLDebugInfo100 --extinst-grammar=$(location source/extinst.opencl.debuginfo.100.grammar.json) --extinst-output-base=$$(dirname $(location OpenCLDebugInfo100.h))/OpenCLDebugInfo100; "
}
genrule {
- name: "swiftshader_gen_spvtools_enum_string_mapping",
- out: [
- "extension_enum.inc",
- "enum_string_mapping.inc",
- ],
- srcs: [
- ":swiftshader_spirv.core.grammar.json-unified1",
- ":swiftshader_spirv.debuginfo.grammar.json",
- ":swiftshader_spirv.extinst.opencl.debuginfo.100.grammar.json",
- ],
- tool_files: ["utils/generate_grammar_tables.py"],
- cmd: "$(location) --spirv-core-grammar=$(location :swiftshader_spirv.core.grammar.json-unified1) "+
- "--extinst-debuginfo-grammar=$(location :swiftshader_spirv.debuginfo.grammar.json) "+
- "--extinst-cldebuginfo100-grammar=$(location :swiftshader_spirv.extinst.opencl.debuginfo.100.grammar.json) "+
- "--extension-enum-output=$(location extension_enum.inc) "+
- "--enum-string-mapping-output=$(location enum_string_mapping.inc) "
-}
-
-genrule {
- name: "swiftshader_gen_spvtools_generators_inc",
+ name: "swiftshader_spvtools_generate_registry_tables",
out: [
"generators.inc"
],
srcs: [
- ":swiftshader_spirv.registry.xml"
+ ":swiftshader_spirv_headers_spir-v.xml"
],
tool_files: ["utils/generate_registry_tables.py"],
- cmd: "$(location) --xml=$(location :swiftshader_spirv.registry.xml) --generator-output=$(location generators.inc)",
+ cmd: "$(location) --xml=$(location :swiftshader_spirv_headers_spir-v.xml) --generator-output=$(location generators.inc)",
}
genrule { // FIXME this relies on `git` which is no good on build machines
- name: "swiftshader_gen_spvtools_build_version_inc",
+ name: "swiftshader_spvtools_update_build_version",
out: ["build-version.inc"],
srcs: ["CHANGES"],
tool_files: ["utils/update_build_version.py"],
@@ -206,17 +120,10 @@
"external/swiftshader/third_party/SPIRV-Headers/include"
],
generated_headers: [
- "swiftshader_gen_spvtools_grammar_tables_unified1",
- "swiftshader_gen_spvtools_grammar_tables_debuginfo",
- "swiftshader_gen_spvtools_grammar_tables_opencl_debuginfo_100",
- "swiftshader_gen_spvtools_grammar_tables_amd-gcn-shader",
- "swiftshader_gen_spvtools_grammar_tables_amd-shader-ballot",
- "swiftshader_gen_spvtools_grammar_tables_amd-shader-explicit-vertex-parameter",
- "swiftshader_gen_spvtools_grammar_tables_amd-shader-trinary-minmax",
- "swiftshader_gen_spvtools_enum_string_mapping",
- "swiftshader_gen_spvtools_generators_inc",
- "swiftshader_gen_spvtools_build_version_inc",
- "swiftshader_gen_spvtools_lang_headers",
+ "swiftshader_spvtools_generate_grammar_tables",
+ "swiftshader_spvtools_generate_language_headers",
+ "swiftshader_spvtools_update_build_version",
+ "swiftshader_spvtools_generate_registry_tables",
],
stl: "libc++_static",
cppflags: [