# 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_target.gni")

# Rust dylibs should not be built outside of component builds. Non-component
# builds use build configurations that conflict with the linking of dylibs.
if (is_component_build) {
  # Defines a shared_library containing just Rust code. Has the same variables
  # available as a rust_static_library. See rust_static_library.gni for
  # documentation.
  template("rust_shared_library") {
    rust_target(target_name) {
      forward_variables_from(invoker,
                             "*",
                             TESTONLY_AND_VISIBILITY + [ "configs" ])
      forward_variables_from(invoker, TESTONLY_AND_VISIBILITY)
      shared_library_configs = invoker.configs
      target_type = "shared_library"
      crate_type = "cdylib"
    }
  }

  set_defaults("rust_shared_library") {
    configs = default_shared_library_configs
  }
}
