diff options
author | ruperts <ruperts@google.com> | 2018-07-30 14:03:05 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-30 14:05:26 -0700 |
commit | c80185c1b6ea5d746b4a38b8b5b8b5ad4682bc89 (patch) | |
tree | 25ad6516286c5f2d89fbc431d27aff830ce86230 /src/main/java/com/google/devtools/build/lib/rules/cpp | |
parent | 60c288a5fb06f13d47de066c1e252339bd181e20 (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.java | 78 |
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); } } |