diff options
author | plf <plf@google.com> | 2018-07-25 08:42:29 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-25 08:44:31 -0700 |
commit | 16dde0de06a3a4157a13e7e7264afeb6a50b2dde (patch) | |
tree | 438247c24138aa47cfb3086a82ef4a964b9792c7 /src/main/java/com/google/devtools/build/lib/rules/cpp | |
parent | e1ed9f5488644dcc6bb11943d3a60c76a2b39af7 (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.java | 51 |
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); } } |