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