blob: ce0fbc43539f79089ec30092e52f72a68faa49f7 [file] [log] [blame]
# Copyright 2022 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/rust/rust_bindgen.gni")
import("//build/rust/rust_executable.gni")
import("//build/rust/rust_static_library.gni")
source_set("c_lib_headers") {
sources = [
"lib.h",
"lib2.h",
]
}
component("c_lib") {
sources = [ "lib.c" ]
deps = [ ":c_lib_headers" ]
defines = [ "COMPONENT_IMPLEMENTATION" ]
}
rust_bindgen("c_lib_bindgen") {
header = "lib.h"
deps = [ ":c_lib_headers" ]
}
rust_static_library("bindgen_test_lib") {
allow_unsafe = true
deps = [
":c_lib",
":c_lib_bindgen",
]
sources = [ "src/lib.rs" ]
build_native_rust_unit_tests = true
crate_root = "src/lib.rs"
bindgen_output = get_target_outputs(":c_lib_bindgen")
inputs = bindgen_output
rustenv = [ "BINDGEN_RS_FILE=" + rebase_path(bindgen_output[0]) ]
}
rust_executable("bindgen_test") {
deps = [ ":bindgen_test_lib" ]
sources = [ "main.rs" ]
crate_root = "main.rs"
}