aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp
diff options
context:
space:
mode:
authorGravatar plf <plf@google.com>2018-08-06 03:05:29 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-06 03:07:21 -0700
commit7a3e39fc20f1fba810d8023ff1608e39f501492a (patch)
tree1b72979d65a670d0bd1c5b4aa459314a5e82e76b /src/main/java/com/google/devtools/build/lib/rules/cpp
parentad7b61286e29364d6c7e386f218c6c3b0530bfdc (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: 207516944
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.java78
1 files changed, 63 insertions, 15 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 4157930c5c..123a824302 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
@@ -86,22 +86,19 @@ public final class CcLinkingInfo extends NativeInfo implements CcLinkingInfoApi
CcLinkParams dynamicModeParamsForExecutable = (CcLinkParams) nullIfNone(args[i++]);
CcRunfiles ccRunfiles = (CcRunfiles) nullIfNone(args[i++]);
CcLinkingInfo.Builder ccLinkingInfoBuilder = CcLinkingInfo.Builder.create();
- if (staticModeParamsForDynamicLibrary != null) {
- if (staticModeParamsForExecutable == null
- || dynamicModeParamsForDynamicLibrary == null
- || dynamicModeParamsForExecutable == null) {
- throw new EvalException(
- loc,
- "Every CcLinkParams parameter must be passed to CcLinkingInfo "
- + "if one of them is passed.");
- }
- ccLinkingInfoBuilder.setCcLinkParamsStore(
- new CcLinkParamsStore(
- staticModeParamsForDynamicLibrary,
- staticModeParamsForExecutable,
- dynamicModeParamsForDynamicLibrary,
- dynamicModeParamsForExecutable));
+ if (staticModeParamsForDynamicLibrary == null
+ || staticModeParamsForExecutable == null
+ || dynamicModeParamsForDynamicLibrary == null
+ || dynamicModeParamsForExecutable == null) {
+ throw new EvalException(
+ loc, "Every CcLinkParams parameter must be passed to CcLinkingInfo.");
}
+ ccLinkingInfoBuilder.setCcLinkParamsStore(
+ new CcLinkParamsStore(
+ staticModeParamsForDynamicLibrary,
+ staticModeParamsForExecutable,
+ dynamicModeParamsForDynamicLibrary,
+ dynamicModeParamsForExecutable));
// TODO(plf): The CcDynamicLibrariesForRuntime provider can be removed perhaps. Do not
// add to the API until we know for sure. The CcRunfiles provider is already in the API
// at the time of this comment (cl/200184914). Perhaps it can be removed but Skylark rules
@@ -187,6 +184,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 +195,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 call sites
+ // 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 +221,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);
}
}