| Index: build/config/BUILDCONFIG.gn
|
| diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
|
| index 54bf3722fa5c5c1197e790834d0154279a804dee..81323aa08f3709c9b1d079533bdc9a58c1d1ecc0 100644
|
| --- a/build/config/BUILDCONFIG.gn
|
| +++ b/build/config/BUILDCONFIG.gn
|
| @@ -549,6 +549,9 @@ set_defaults("loadable_module") {
|
| if (is_component_build) {
|
| set_defaults("component") {
|
| configs = _shared_library_configs
|
| + if (is_android) {
|
| + configs -= [ "//build/config/android:hide_native_jni_exports" ]
|
| + }
|
| }
|
| }
|
|
|
| @@ -575,12 +578,25 @@ set_defaults("test") {
|
| # COMPONENT SETUP
|
| # ==============================================================================
|
|
|
| -if (is_component_build) {
|
| - _component_mode = "shared_library"
|
| -} else {
|
| - _component_mode = "source_set"
|
| -}
|
| +# Defines a component, which equates to a shared_library when
|
| +# is_component_build == true and a source_set / static_library otherwise.
|
| +#
|
| +# Arguments are the same as a normal library with this addition:
|
| +# component_never_use_source_set: Whether to use static_library instead of
|
| +# source_set for non-component builds. Some targets (e.g. //base) should
|
| +# use static_library rather than source_set to avoid linking unused object
|
| +# files.
|
| template("component") {
|
| + _never_use_source_set = defined(invoker.component_never_use_source_set) &&
|
| + invoker.component_never_use_source_set
|
| + assert(_never_use_source_set || true) # Mark as used.
|
| + if (is_component_build) {
|
| + _component_mode = "shared_library"
|
| + } else if (_never_use_source_set) {
|
| + _component_mode = "static_library"
|
| + } else {
|
| + _component_mode = "source_set"
|
| + }
|
| target(_component_mode, target_name) {
|
| forward_variables_from(invoker, "*")
|
|
|
|
|