blob: 043e851c934cb55c60162b14ff79f2cfb416aa37 [file] [log] [blame] [edit]
//
// 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"],
}