xref: /aosp_15_r20/external/cronet/build/rust/rust_shared_library.gni (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright 2022 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Workerimport("//build/rust/rust_target.gni")
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Worker# Rust dylibs should not be built outside of component builds. Non-component
8*6777b538SAndroid Build Coastguard Worker# builds use build configurations that conflict with the linking of dylibs.
9*6777b538SAndroid Build Coastguard Workerif (is_component_build) {
10*6777b538SAndroid Build Coastguard Worker  # Defines a shared_library containing just Rust code. Has the same variables
11*6777b538SAndroid Build Coastguard Worker  # available as a rust_static_library. See rust_static_library.gni for
12*6777b538SAndroid Build Coastguard Worker  # documentation.
13*6777b538SAndroid Build Coastguard Worker  template("rust_shared_library") {
14*6777b538SAndroid Build Coastguard Worker    rust_target(target_name) {
15*6777b538SAndroid Build Coastguard Worker      forward_variables_from(invoker,
16*6777b538SAndroid Build Coastguard Worker                             "*",
17*6777b538SAndroid Build Coastguard Worker                             TESTONLY_AND_VISIBILITY + [ "configs" ])
18*6777b538SAndroid Build Coastguard Worker      forward_variables_from(invoker, TESTONLY_AND_VISIBILITY)
19*6777b538SAndroid Build Coastguard Worker      shared_library_configs = invoker.configs
20*6777b538SAndroid Build Coastguard Worker      target_type = "shared_library"
21*6777b538SAndroid Build Coastguard Worker      crate_type = "cdylib"
22*6777b538SAndroid Build Coastguard Worker    }
23*6777b538SAndroid Build Coastguard Worker  }
24*6777b538SAndroid Build Coastguard Worker
25*6777b538SAndroid Build Coastguard Worker  set_defaults("rust_shared_library") {
26*6777b538SAndroid Build Coastguard Worker    configs = default_shared_library_configs
27*6777b538SAndroid Build Coastguard Worker  }
28*6777b538SAndroid Build Coastguard Worker}
29