# Copyright (c) 2026 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS.  All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.

import("//build/rust/rust_static_library.gni")
import("//build/rust/rust_unit_test.gni")
import("../../../webrtc.gni")

# These provide the base import macros for webrtc, and thus use the templates
# from //build and not webrtc's macros.
if (enable_rust && rtc_include_tests) {
  # Co-located dummy library crate used to validate explicit target colon matching.
  # Since it lives in the same `test_subdir` directory, we can validate that the macro
  # correctly strips the extra trailing slash right before the colon when injecting the prefix.
  rust_static_library("webrtc_import_prefix_lib") {
    testonly = true
    crate_root = "webrtc_import_prefix_lib.rs"
    sources = [ "webrtc_import_prefix_lib.rs" ]

    # Don't depend on ourselves.
    no_chromium_prelude = true
  }

  # Integration test validating the macro expansion behavior in Vendor Prefix mode.
  # Sets `WEBRTC_GN_PREFIX = //rust/webrtc_import/test_subdir` to simulate embedded layout configurations.
  # Utilizes the root-colon syntax (`//:webrtc_import_prefix_lib`) to import targets
  # without forcing redundant child directory layouts.
  rtc_rust_unittest("webrtc_import_prefix_test") {
    crate_root = "webrtc_import_prefix_test.rs"
    sources = [ "webrtc_import_prefix_test.rs" ]
    deps = [
      ":webrtc_import_prefix_lib",
      "../:webrtc_import",
    ]
    rustenv = [ "WEBRTC_GN_PREFIX=//rust/webrtc_import/test_subdir" ]
  }
}
