# Copyright 2024 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" ]
}

component("c_lib") {
  sources = [ "lib.c" ]

  deps = [ ":c_lib_headers" ]

  defines = [ "COMPONENT_IMPLEMENTATION" ]
}

rust_bindgen("c_lib_bindgen") {
  header = "lib.h"
  deps = [ ":c_lib" ]
  wrap_static_fns = true
}

rust_static_library("bindgen_static_fns_test_lib") {
  allow_unsafe = true
  deps = [ ":c_lib_bindgen" ]
  sources = [ "src/lib.rs" ]
  build_native_rust_unit_tests = true
  crate_root = "src/lib.rs"
}

rust_executable("bindgen_static_fns_test") {
  deps = [ ":bindgen_static_fns_test_lib" ]
  sources = [ "main.rs" ]
  crate_root = "main.rs"
}
