aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp
diff options
context:
space:
mode:
authorGravatar plf <plf@google.com>2018-07-25 08:42:29 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-25 08:44:31 -0700
commit16dde0de06a3a4157a13e7e7264afeb6a50b2dde (patch)
tree438247c24138aa47cfb3086a82ef4a964b9792c7 /src/main/java/com/google/devtools/build/lib/rules/cpp
parente1ed9f5488644dcc6bb11943d3a60c76a2b39af7 (diff)
C++: Removes calls to setCcLinkparamsStore of CcLinkingInfo.Builder
This is in preparation for deleting CcLinkParamsStore. Not all calls to setCcLinkparamsStore have been removed in this CL. RELNOTES:none PiperOrigin-RevId: 205998687
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingInfo.java51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingInfo.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingInfo.java
index a8a27515af..7acd2631d0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingInfo.java
@@ -187,6 +187,10 @@ public final class CcLinkingInfo extends NativeInfo implements CcLinkingInfoApi
/** A Builder for {@link CcLinkingInfo}. */
public static class Builder {
CcLinkParamsStore ccLinkParamsStore;
+ CcLinkParams staticModeParamsForDynamicLibrary;
+ CcLinkParams staticModeParamsForExecutable;
+ CcLinkParams dynamicModeParamsForDynamicLibrary;
+ CcLinkParams dynamicModeParamsForExecutable;
CcRunfiles ccRunfiles;
CcDynamicLibrariesForRuntime ccDynamicLibrariesForRuntime;
@@ -194,8 +198,15 @@ public final class CcLinkingInfo extends NativeInfo implements CcLinkingInfoApi
return new CcLinkingInfo.Builder();
}
+ @Deprecated
+ // TODO(b/111781390): Use individual setters for each flavor of CcLinkParams. Not all callsites
+ // are being refactored at once. Work in progress.
public Builder setCcLinkParamsStore(CcLinkParamsStore ccLinkParamsStore) {
Preconditions.checkState(this.ccLinkParamsStore == null);
+ Preconditions.checkState(this.staticModeParamsForDynamicLibrary == null);
+ Preconditions.checkState(this.staticModeParamsForExecutable == null);
+ Preconditions.checkState(this.dynamicModeParamsForDynamicLibrary == null);
+ Preconditions.checkState(this.dynamicModeParamsForExecutable == null);
this.ccLinkParamsStore = ccLinkParamsStore;
return this;
}
@@ -213,7 +224,47 @@ public final class CcLinkingInfo extends NativeInfo implements CcLinkingInfoApi
return this;
}
+ public Builder setStaticModeParamsForDynamicLibrary(CcLinkParams ccLinkParams) {
+ Preconditions.checkState(
+ this.staticModeParamsForDynamicLibrary == null && ccLinkParamsStore == null);
+ this.staticModeParamsForDynamicLibrary = ccLinkParams;
+ return this;
+ }
+
+ public Builder setStaticModeParamsForExecutable(CcLinkParams ccLinkParams) {
+ Preconditions.checkState(
+ this.staticModeParamsForExecutable == null && ccLinkParamsStore == null);
+ this.staticModeParamsForExecutable = ccLinkParams;
+ return this;
+ }
+
+ public Builder setDynamicModeParamsForDynamicLibrary(CcLinkParams ccLinkParams) {
+ Preconditions.checkState(
+ this.dynamicModeParamsForDynamicLibrary == null && ccLinkParamsStore == null);
+ this.dynamicModeParamsForDynamicLibrary = ccLinkParams;
+ return this;
+ }
+
+ public Builder setDynamicModeParamsForExecutable(CcLinkParams ccLinkParams) {
+ Preconditions.checkState(
+ this.dynamicModeParamsForExecutable == null && ccLinkParamsStore == null);
+ this.dynamicModeParamsForExecutable = ccLinkParams;
+ return this;
+ }
+
public CcLinkingInfo build() {
+ if (ccLinkParamsStore == null) {
+ Preconditions.checkNotNull(staticModeParamsForDynamicLibrary);
+ Preconditions.checkNotNull(staticModeParamsForExecutable);
+ Preconditions.checkNotNull(dynamicModeParamsForDynamicLibrary);
+ Preconditions.checkNotNull(dynamicModeParamsForExecutable);
+ ccLinkParamsStore =
+ new CcLinkParamsStore(
+ staticModeParamsForDynamicLibrary,
+ staticModeParamsForExecutable,
+ dynamicModeParamsForDynamicLibrary,
+ dynamicModeParamsForExecutable);
+ }
return new CcLinkingInfo(ccLinkParamsStore, ccRunfiles, ccDynamicLibrariesForRuntime);
}
}