blob: f1c03428582f2c2fb9553d14fbada8e4bbd22108 [file] [log] [blame]
# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/compiled_action.gni")
import("//build/package.gni")
import("//build/rust/rustc_binary.gni")
import("//build/rust/rustc_library.gni")
import("//build/rust/rustc_test.gni")
# Generate the rust sources using the gen.
compiled_action("gen_qmi_protocol_source") {
tool = "//src/connectivity/telephony/lib/qmi-protocol:qmigen"
output = "$target_gen_dir/qmi-protocol.rs"
sources = [
"protocol/common.json",
"protocol/ctl.json",
"protocol/dms.json",
"protocol/nas.json",
"protocol/wda.json",
"protocol/wds.json",
]
outputs = [ output ]
args = [ "-i" ] + rebase_path(sources) + [ "-o" ] + [ rebase_path(output) ]
}
# Build the library.
rustc_library("qmi-protocol") {
edition = "2018"
non_rust_deps = [ ":gen_qmi_protocol_source" ]
deps = [
"//src/lib/zircon/rust:fuchsia-zircon",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:bytes",
"//third_party/rust_crates:thiserror",
]
source_root = "$target_gen_dir/qmi-protocol.rs"
sources = [ "$target_gen_dir/qmi-protocol.rs" ]
}
group("tests") {
testonly = true
deps = [ ":qmigen_unittests($host_toolchain)" ]
}
if (host_toolchain == current_toolchain) {
rustc_binary("qmigen") {
edition = "2018"
deps = [
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:serde",
"//third_party/rust_crates:serde_json",
"//third_party/rust_crates:thiserror",
]
sources = [
"src/ast.rs",
"src/codegen.rs",
"src/main.rs",
]
}
rustc_library("qmigen_lib") {
edition = "2018"
deps = [
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:serde",
"//third_party/rust_crates:serde_json",
"//third_party/rust_crates:thiserror",
]
sources = [
"src/ast.rs",
"src/codegen.rs",
"src/lib.rs",
]
}
rustc_test("qmigen_unittests") {
edition = "2018"
deps = [
":qmigen",
":qmigen_lib($host_toolchain)",
"//third_party/rust_crates:pretty_assertions",
]
source_root = "tests/codegen_tests.rs"
sources = [
"tests/codegen_tests.rs",
"tests/macros.rs",
"tests/optional_response.test.rs",
"tests/simple_request.test.rs",
"tests/simple_response.test.rs",
"tests/string_request_decode.test.rs",
"tests/subparam_request.test.rs",
"tests/subparam_response.test.rs",
]
inputs = [
"tests/subparam_request.test.json",
"tests/subparam_response.test.json",
"tests/string_request_decode.test.json",
"tests/simple_request.test.json",
"tests/simple_response.test.json",
"tests/optional_response.test.json",
]
}
}