diff options
author | 2018-07-23 02:02:24 -0700 | |
---|---|---|
committer | 2018-07-23 02:04:09 -0700 | |
commit | 6b5df97308d5ce60e801f9872d6b354db5164fe6 (patch) | |
tree | 27c789f49745f2123cefecd5f9c10c343c46c692 /src/main/java/com/google/devtools/build/lib/rules/android | |
parent | a6255612e4892729d3758775c76085b26b9bc584 (diff) |
C++: Refactors every provider wrapping CcLinkParamsStore
Providers that were wrapping CcLinkParamsStore now wrap CcLinkingInfo instead.
CcLinkParamsStore will be deleted in a future CL.
RELNOTES:none
PiperOrigin-RevId: 205629924
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/AndroidCcLinkParamsProvider.java | 22 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java | 8 |
2 files changed, 18 insertions, 12 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCcLinkParamsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCcLinkParamsProvider.java index 5d88498db7..2b9ba895d3 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCcLinkParamsProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCcLinkParamsProvider.java @@ -20,46 +20,46 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.packages.BuiltinProvider; import com.google.devtools.build.lib.packages.NativeInfo; import com.google.devtools.build.lib.rules.cpp.AbstractCcLinkParamsStore; -import com.google.devtools.build.lib.rules.cpp.CcLinkParamsStore; +import com.google.devtools.build.lib.rules.cpp.CcLinkingInfo; import com.google.devtools.build.lib.skylarkbuildapi.android.AndroidCcLinkParamsProviderApi; import com.google.devtools.build.lib.syntax.EvalException; /** A target that provides C++ libraries to be linked into Android targets. */ @Immutable public final class AndroidCcLinkParamsProvider extends NativeInfo - implements AndroidCcLinkParamsProviderApi<CcLinkParamsStore> { + implements AndroidCcLinkParamsProviderApi<CcLinkingInfo> { public static final String PROVIDER_NAME = "AndroidCcLinkParamsInfo"; public static final Provider PROVIDER = new Provider(); - private final CcLinkParamsStore store; + private final CcLinkingInfo ccLinkingInfo; - public AndroidCcLinkParamsProvider(AbstractCcLinkParamsStore store) { + public AndroidCcLinkParamsProvider(CcLinkingInfo ccLinkingInfo) { super(PROVIDER); - this.store = new CcLinkParamsStore(store); + this.ccLinkingInfo = ccLinkingInfo; } @Override - public CcLinkParamsStore getLinkParams() { - return store; + public CcLinkingInfo getLinkParams() { + return ccLinkingInfo; } public static final Function<TransitiveInfoCollection, AbstractCcLinkParamsStore> TO_LINK_PARAMS = (TransitiveInfoCollection input) -> { AndroidCcLinkParamsProvider provider = input.get(AndroidCcLinkParamsProvider.PROVIDER); - return provider == null ? null : provider.getLinkParams(); + return provider == null ? null : provider.getLinkParams().getCcLinkParamsStore(); }; /** Provider class for {@link AndroidCcLinkParamsProvider} objects. */ public static class Provider extends BuiltinProvider<AndroidCcLinkParamsProvider> - implements AndroidCcLinkParamsProviderApi.Provider<CcLinkParamsStore> { + implements AndroidCcLinkParamsProviderApi.Provider<CcLinkingInfo> { private Provider() { super(PROVIDER_NAME, AndroidCcLinkParamsProvider.class); } @Override - public AndroidCcLinkParamsProviderApi<CcLinkParamsStore> createInfo(CcLinkParamsStore store) + public AndroidCcLinkParamsProviderApi<CcLinkingInfo> createInfo(CcLinkingInfo ccLinkingInfo) throws EvalException { - return new AndroidCcLinkParamsProvider(store); + return new AndroidCcLinkParamsProvider(ccLinkingInfo); } } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java index 26115c36fa..19262c7ce8 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java @@ -30,6 +30,8 @@ import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.TriState; import com.google.devtools.build.lib.rules.android.AndroidConfiguration.AndroidAaptVersion; import com.google.devtools.build.lib.rules.android.AndroidLibraryAarInfo.Aar; +import com.google.devtools.build.lib.rules.cpp.CcLinkParamsStore; +import com.google.devtools.build.lib.rules.cpp.CcLinkingInfo; import com.google.devtools.build.lib.rules.java.JavaCommon; import com.google.devtools.build.lib.rules.java.JavaSemantics; import com.google.devtools.build.lib.rules.java.JavaSourceInfoProvider; @@ -245,7 +247,11 @@ public abstract class AndroidLibrary implements RuleConfiguredTargetFactory { JavaSourceInfoProvider.class, JavaSourceInfoProvider.fromJavaTargetAttributes(javaTargetAttributes, javaSemantics)) .addNativeDeclaredProvider( - new AndroidCcLinkParamsProvider(androidCommon.getCcLinkParamsStore())) + new AndroidCcLinkParamsProvider( + CcLinkingInfo.Builder.create() + .setCcLinkParamsStore( + new CcLinkParamsStore(androidCommon.getCcLinkParamsStore())) + .build())) .addNativeDeclaredProvider(new ProguardSpecProvider(transitiveProguardConfigs)) .addNativeDeclaredProvider( new AndroidProguardInfo(proguardLibrary.collectLocalProguardSpecs())) |