| // |
| // Copyright (C) 2017 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. |
| // |
| |
| cc_defaults { |
| name: "spirit_defaults", |
| |
| cflags: [ |
| "-Wall", |
| "-Werror", |
| ], |
| target: { |
| host: { |
| compile_multilib: "first", |
| }, |
| }, |
| product_variables: { |
| pdk: { |
| enabled: false, |
| }, |
| unbundled_build: { |
| enabled: false, |
| }, |
| }, |
| } |
| |
| python_binary_host { |
| name: "libspirit_generate_py", |
| main: "generate.py", |
| srcs: ["generate.py"], |
| version: { |
| py2: { |
| enabled: true, |
| embedded_launcher: true, |
| }, |
| py3: { |
| enabled: false, |
| }, |
| }, |
| } |
| |
| genrule { |
| name: "libspirit_gen", |
| tools: ["libspirit_generate_py"], |
| cmd: "$(location libspirit_generate_py) $(location :spirv.core.grammar.json-1.1) " + |
| "--instructions=$(location instructions_generated.h) " + |
| "--types=$(location types_generated.h) " + |
| "--opcodes=$(location opcodes_generated.h) " + |
| "--instruction_dispatches=$(location instruction_dispatches_generated.h) " + |
| "--enum_dispatches=$(location enum_dispatches_generated.h) " + |
| "--type_inst_dispatches=$(location type_inst_dispatches_generated.h) " + |
| "--const_inst_dispatches=$(location const_inst_dispatches_generated.h) " + |
| "--factory_methods=$(location factory_methods_generated.h)", |
| srcs: [":spirv.core.grammar.json-1.1"], |
| out: [ |
| "instructions_generated.h", |
| "types_generated.h", |
| "opcodes_generated.h", |
| "instruction_dispatches_generated.h", |
| "enum_dispatches_generated.h", |
| "type_inst_dispatches_generated.h", |
| "const_inst_dispatches_generated.h", |
| "factory_methods_generated.h", |
| ], |
| } |
| |
| //===================================================================== |
| // Host and device shared library libspirit.so |
| //===================================================================== |
| cc_library_shared { |
| name: "libspirit", |
| defaults: ["spirit_defaults"], |
| host_supported: true, |
| |
| srcs: [ |
| "builder.cpp", |
| "entity.cpp", |
| "instructions.cpp", |
| "module.cpp", |
| "pass.cpp", |
| "pass_queue.cpp", |
| "transformer.cpp", |
| "visitor.cpp", |
| "word_stream.cpp", |
| "word_stream_impl.cpp", |
| ], |
| |
| generated_headers: ["libspirit_gen"], |
| export_generated_headers: ["libspirit_gen"], |
| |
| export_include_dirs: ["."], |
| |
| target: { |
| android: { |
| cflags: ["-Wno-error=non-virtual-dtor"], |
| }, |
| }, |
| } |
| |
| //===================================================================== |
| // Tests for host module word_stream |
| //===================================================================== |
| cc_test_host { |
| name: "word_stream_test", |
| defaults: ["spirit_defaults"], |
| srcs: [ |
| "word_stream.cpp", |
| "word_stream_impl.cpp", |
| "word_stream_test.cpp", |
| ], |
| generated_headers: ["libspirit_gen"], |
| } |
| |
| //===================================================================== |
| // Tests for host module instructions |
| //===================================================================== |
| |
| cc_test_host { |
| name: "instructions_test", |
| defaults: ["spirit_defaults"], |
| srcs: [ |
| "entity.cpp", |
| "instructions.cpp", |
| "instructions_test.cpp", |
| "visitor.cpp", |
| "word_stream.cpp", |
| "word_stream_impl.cpp", |
| ], |
| generated_headers: ["libspirit_gen"], |
| } |
| |
| //===================================================================== |
| // Tests for host module pass queue |
| //===================================================================== |
| |
| cc_test_host { |
| name: "pass_queue_test", |
| defaults: ["spirit_defaults"], |
| srcs: [ |
| "pass.cpp", |
| "pass_queue.cpp", |
| "pass_queue_test.cpp", |
| ], |
| shared_libs: ["libspirit"], |
| } |
| |
| //===================================================================== |
| // Tests for host shared library |
| //===================================================================== |
| |
| cc_test_host { |
| name: "libspirit_test", |
| defaults: ["spirit_defaults"], |
| srcs: [ |
| "builder_test.cpp", |
| "module_test.cpp", |
| "transformer_test.cpp", |
| ], |
| shared_libs: ["libspirit"], |
| } |