aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp
diff options
context:
space:
mode:
authorGravatar ruperts <ruperts@google.com>2018-07-30 14:03:05 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-30 14:05:26 -0700
commitc80185c1b6ea5d746b4a38b8b5b8b5ad4682bc89 (patch)
tree25ad6516286c5f2d89fbc431d27aff830ce86230 /src/main/java/com/google/devtools/build/lib/rules/cpp
parent60c288a5fb06f13d47de066c1e252339bd181e20 (diff)
Internal change
PiperOrigin-RevId: 206642715
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, 15 insertions, 63 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 483575accf..a8a27515af 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,19 +86,22 @@ 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
- || staticModeParamsForExecutable == null
- || dynamicModeParamsForDynamicLibrary == null
- || dynamicModeParamsForExecutable == null) {
- throw new EvalException(
- loc, "Every CcLinkParams parameter must be passed to CcLinkingInfo.");
+ 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));
}
- 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
@@ -184,10 +187,6 @@ 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;
@@ -195,15 +194,8 @@ 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;
}
@@ -221,47 +213,7 @@ 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);
}
}