aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar hlopko <hlopko@google.com>2018-05-23 09:42:48 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-23 09:44:03 -0700
commitc795ba8ca1a3d2a29a5bcda447941cff6493241e (patch)
treee9b6a01523bd9d21eafc5bef57161d9fe0eac04a /src/main/java/com/google/devtools/build
parent6544a460593a065bd858c8ce3ab17ae3a53fec29 (diff)
Remove FlagList
This abstraction is not needed anymore. RELNOTES: None. PiperOrigin-RevId: 197739700
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java32
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java72
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppToolchainInfo.java26
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/FlagList.java45
5 files changed, 62 insertions, 127 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
index df328fb93f..f11e80ae0b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
@@ -756,7 +756,7 @@ public final class CcToolchainProvider extends ToolchainInfo {
* Returns link options for the specified flag list, combined with universal options for all
* shared libraries (regardless of link staticness).
*/
- ImmutableList<String> getSharedLibraryLinkOptions(FlagList flags) {
+ ImmutableList<String> getSharedLibraryLinkOptions(ImmutableList<String> flags) {
return toolchainInfo.getSharedLibraryLinkOptions(flags);
}
@@ -799,33 +799,29 @@ public final class CcToolchainProvider extends ToolchainInfo {
}
/** Returns linker flags for fully statically linked outputs. */
- FlagList getLegacyFullyStaticLinkFlags(CompilationMode compilationMode, LipoMode lipoMode) {
- return new FlagList(
- configureAllLegacyLinkOptions(compilationMode, lipoMode, LinkingMode.LEGACY_FULLY_STATIC),
- ImmutableList.<String>of());
+ ImmutableList<String> getLegacyFullyStaticLinkFlags(
+ CompilationMode compilationMode, LipoMode lipoMode) {
+ return configureAllLegacyLinkOptions(
+ compilationMode, lipoMode, LinkingMode.LEGACY_FULLY_STATIC);
}
/** Returns linker flags for mostly static linked outputs. */
- FlagList getLegacyMostlyStaticLinkFlags(CompilationMode compilationMode, LipoMode lipoMode) {
- return new FlagList(
- configureAllLegacyLinkOptions(compilationMode, lipoMode, LinkingMode.STATIC),
- ImmutableList.<String>of());
+ ImmutableList<String> getLegacyMostlyStaticLinkFlags(
+ CompilationMode compilationMode, LipoMode lipoMode) {
+ return configureAllLegacyLinkOptions(compilationMode, lipoMode, LinkingMode.STATIC);
}
/** Returns linker flags for mostly static shared linked outputs. */
- FlagList getLegacyMostlyStaticSharedLinkFlags(
+ ImmutableList<String> getLegacyMostlyStaticSharedLinkFlags(
CompilationMode compilationMode, LipoMode lipoMode) {
- return new FlagList(
- configureAllLegacyLinkOptions(
- compilationMode, lipoMode, LinkingMode.LEGACY_MOSTLY_STATIC_LIBRARIES),
- ImmutableList.<String>of());
+ return configureAllLegacyLinkOptions(
+ compilationMode, lipoMode, LinkingMode.LEGACY_MOSTLY_STATIC_LIBRARIES);
}
/** Returns linker flags for artifacts that are not fully or mostly statically linked. */
- FlagList getLegacyDynamicLinkFlags(CompilationMode compilationMode, LipoMode lipoMode) {
- return new FlagList(
- configureAllLegacyLinkOptions(compilationMode, lipoMode, LinkingMode.DYNAMIC),
- ImmutableList.of());
+ ImmutableList<String> getLegacyDynamicLinkFlags(
+ CompilationMode compilationMode, LipoMode lipoMode) {
+ return configureAllLegacyLinkOptions(compilationMode, lipoMode, LinkingMode.DYNAMIC);
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
index 9b1417f003..a1721ca642 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
@@ -173,14 +173,14 @@ public final class CppConfiguration extends BuildConfiguration.Fragment {
private final PathFragment nonConfiguredSysroot;
private final Label sysrootLabel;
- private final FlagList compilerFlags;
- private final FlagList cxxFlags;
- private final FlagList unfilteredCompilerFlags;
+ private final ImmutableList<String> compilerFlags;
+ private final ImmutableList<String> cxxFlags;
+ private final ImmutableList<String> unfilteredCompilerFlags;
private final ImmutableList<String> cOptions;
- private final FlagList mostlyStaticLinkFlags;
- private final FlagList mostlyStaticSharedLinkFlags;
- private final FlagList dynamicLinkFlags;
+ private final ImmutableList<String> mostlyStaticLinkFlags;
+ private final ImmutableList<String> mostlyStaticSharedLinkFlags;
+ private final ImmutableList<String> dynamicLinkFlags;
private final ImmutableList<String> copts;
private final ImmutableList<String> cxxopts;
@@ -227,12 +227,15 @@ public final class CppConfiguration extends BuildConfiguration.Fragment {
coptsBuilder.add("-fasynchronous-unwind-tables");
coptsBuilder.add("-DNO_FRAME_POINTER");
}
+ coptsBuilder.addAll(cppOptions.coptList);
- ImmutableList.Builder<String> cxxOptsBuilder =
+ ImmutableList<String> cxxOpts =
ImmutableList.<String>builder()
.addAll(cppToolchainInfo.getCxxFlags())
.addAll(cppToolchainInfo.getCxxFlagsByCompilationMode().get(compilationMode))
- .addAll(cppToolchainInfo.getLipoCxxFlags().get(cppOptions.getLipoMode()));
+ .addAll(cppToolchainInfo.getLipoCxxFlags().get(cppOptions.getLipoMode()))
+ .addAll(cppOptions.cxxoptList)
+ .build();
ImmutableList.Builder<String> linkoptsBuilder = ImmutableList.builder();
linkoptsBuilder.addAll(cppOptions.linkoptList);
@@ -260,25 +263,16 @@ public final class CppConfiguration extends BuildConfiguration.Fragment {
? cppToolchainInfo.getDefaultSysroot()
: params.sysrootLabel.getPackageFragment(),
params.sysrootLabel,
- new FlagList(coptsBuilder.build(), ImmutableList.copyOf(cppOptions.coptList)),
- new FlagList(cxxOptsBuilder.build(), ImmutableList.copyOf(cppOptions.cxxoptList)),
- new FlagList(
- ImmutableList.copyOf(toolchain.getUnfilteredCxxFlagList()), ImmutableList.of()),
+ coptsBuilder.build(),
+ cxxOpts,
+ ImmutableList.copyOf(toolchain.getUnfilteredCxxFlagList()),
ImmutableList.copyOf(cppOptions.conlyoptList),
- new FlagList(
- cppToolchainInfo.configureAllLegacyLinkOptions(
- compilationMode, cppOptions.getLipoMode(), LinkingMode.STATIC),
- ImmutableList.of()),
- new FlagList(
- cppToolchainInfo.configureAllLegacyLinkOptions(
- compilationMode,
- cppOptions.getLipoMode(),
- LinkingMode.LEGACY_MOSTLY_STATIC_LIBRARIES),
- ImmutableList.of()),
- new FlagList(
- cppToolchainInfo.configureAllLegacyLinkOptions(
- compilationMode, cppOptions.getLipoMode(), LinkingMode.DYNAMIC),
- ImmutableList.of()),
+ cppToolchainInfo.configureAllLegacyLinkOptions(
+ compilationMode, cppOptions.getLipoMode(), LinkingMode.STATIC),
+ cppToolchainInfo.configureAllLegacyLinkOptions(
+ compilationMode, cppOptions.getLipoMode(), LinkingMode.LEGACY_MOSTLY_STATIC_LIBRARIES),
+ cppToolchainInfo.configureAllLegacyLinkOptions(
+ compilationMode, cppOptions.getLipoMode(), LinkingMode.DYNAMIC),
ImmutableList.copyOf(cppOptions.coptList),
ImmutableList.copyOf(cppOptions.cxxoptList),
linkoptsBuilder.build(),
@@ -309,13 +303,13 @@ public final class CppConfiguration extends BuildConfiguration.Fragment {
Label stlLabel,
PathFragment nonConfiguredSysroot,
Label sysrootLabel,
- FlagList compilerFlags,
- FlagList cxxFlags,
- FlagList unfilteredCompilerFlags,
+ ImmutableList<String> compilerFlags,
+ ImmutableList<String> cxxFlags,
+ ImmutableList<String> unfilteredCompilerFlags,
ImmutableList<String> cOptions,
- FlagList mostlyStaticLinkFlags,
- FlagList mostlyStaticSharedLinkFlags,
- FlagList dynamicLinkFlags,
+ ImmutableList<String> mostlyStaticLinkFlags,
+ ImmutableList<String> mostlyStaticSharedLinkFlags,
+ ImmutableList<String> dynamicLinkFlags,
ImmutableList<String> copts,
ImmutableList<String> cxxopts,
ImmutableList<String> linkOptions,
@@ -575,7 +569,7 @@ public final class CppConfiguration extends BuildConfiguration.Fragment {
)
@Deprecated
public ImmutableList<String> getCompilerOptions(Iterable<String> featuresNotUsedAnymore) {
- return compilerFlags.evaluate();
+ return compilerFlags;
}
/**
@@ -610,7 +604,7 @@ public final class CppConfiguration extends BuildConfiguration.Fragment {
)
@Deprecated
public ImmutableList<String> getCxxOptions(Iterable<String> featuresNotUsedAnymore) {
- return cxxFlags.evaluate();
+ return cxxFlags;
}
/**
@@ -642,11 +636,11 @@ public final class CppConfiguration extends BuildConfiguration.Fragment {
@Deprecated
ImmutableList<String> getUnfilteredCompilerOptionsDoNotUse(@Nullable PathFragment sysroot) {
if (sysroot == null) {
- return unfilteredCompilerFlags.evaluate();
+ return unfilteredCompilerFlags;
}
return ImmutableList.<String>builder()
.add("--sysroot=" + sysroot)
- .addAll(unfilteredCompilerFlags.evaluate())
+ .addAll(unfilteredCompilerFlags)
.build();
}
@@ -763,7 +757,7 @@ public final class CppConfiguration extends BuildConfiguration.Fragment {
? mostlyStaticSharedLinkFlags
: dynamicLinkFlags);
} else {
- return mostlyStaticLinkFlags.evaluate();
+ return mostlyStaticLinkFlags;
}
}
@@ -790,7 +784,7 @@ public final class CppConfiguration extends BuildConfiguration.Fragment {
if (sharedLib) {
return getSharedLibraryLinkOptions(dynamicLinkFlags);
} else {
- return dynamicLinkFlags.evaluate();
+ return dynamicLinkFlags;
}
}
@@ -801,7 +795,7 @@ public final class CppConfiguration extends BuildConfiguration.Fragment {
* <p>Deprecated: Use {@link CcToolchainProvider#getSharedLibraryLinkOptions}
*/
// TODO(b/64384912): Migrate skylark dependants and delete.
- private ImmutableList<String> getSharedLibraryLinkOptions(FlagList flags) {
+ private ImmutableList<String> getSharedLibraryLinkOptions(ImmutableList<String> flags) {
return cppToolchainInfo.getSharedLibraryLinkOptions(flags);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java
index b22ec96649..a192983cb0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java
@@ -258,9 +258,8 @@ public class CppHelper {
toolchain.getLegacyMostlyStaticLinkFlags(
config.getCompilationMode(), config.getLipoMode()));
} else {
- return toolchain
- .getLegacyFullyStaticLinkFlags(config.getCompilationMode(), config.getLipoMode())
- .evaluate();
+ return toolchain.getLegacyFullyStaticLinkFlags(
+ config.getCompilationMode(), config.getLipoMode());
}
}
@@ -285,9 +284,8 @@ public class CppHelper {
: toolchain.getLegacyDynamicLinkFlags(
config.getCompilationMode(), config.getLipoMode()));
} else {
- return toolchain
- .getLegacyMostlyStaticLinkFlags(config.getCompilationMode(), config.getLipoMode())
- .evaluate();
+ return toolchain.getLegacyMostlyStaticLinkFlags(
+ config.getCompilationMode(), config.getLipoMode());
}
}
@@ -307,9 +305,7 @@ public class CppHelper {
return toolchain.getSharedLibraryLinkOptions(
toolchain.getLegacyDynamicLinkFlags(config.getCompilationMode(), config.getLipoMode()));
} else {
- return toolchain
- .getLegacyDynamicLinkFlags(config.getCompilationMode(), config.getLipoMode())
- .evaluate();
+ return toolchain.getLegacyDynamicLinkFlags(config.getCompilationMode(), config.getLipoMode());
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppToolchainInfo.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppToolchainInfo.java
index f9aa787622..88c06ad67e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppToolchainInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppToolchainInfo.java
@@ -77,7 +77,7 @@ public final class CppToolchainInfo {
private final String targetLibc;
private final String hostSystemName;
- private final FlagList dynamicLibraryLinkFlags;
+ private final ImmutableList<String> dynamicLibraryLinkFlags;
private final ImmutableList<String> legacyLinkOptions;
private final ImmutableListMultimap<LinkingMode, String> legacyLinkOptionsFromLinkingMode;
private final ImmutableListMultimap<LipoMode, String> legacyLinkOptionsFromLipoMode;
@@ -103,7 +103,7 @@ public final class CppToolchainInfo {
private final ImmutableListMultimap<LipoMode, String> lipoCFlags;
private final ImmutableListMultimap<LipoMode, String> lipoCxxFlags;
- private final FlagList unfilteredCompilerFlags;
+ private final ImmutableList<String> unfilteredCompilerFlags;
private final boolean supportsFission;
private final boolean supportsStartEndLib;
@@ -182,9 +182,7 @@ public final class CppToolchainInfo {
defaultSysroot,
toolchain.getTargetLibc(),
toolchain.getHostSystemName(),
- new FlagList(
- ImmutableList.copyOf(toolchain.getDynamicLibraryLinkerFlagList()),
- ImmutableList.of()),
+ ImmutableList.copyOf(toolchain.getDynamicLibraryLinkerFlagList()),
ImmutableList.copyOf(toolchain.getLinkerFlagList()),
linkOptionsFromLinkingModeBuilder.build(),
computeLinkOptionsFromLipoMode(toolchain),
@@ -211,8 +209,7 @@ public final class CppToolchainInfo {
cxxFlagsBuilder.build(),
lipoCFlagsBuilder.build(),
lipoCxxFlagsBuilder.build(),
- new FlagList(
- ImmutableList.copyOf(toolchain.getUnfilteredCxxFlagList()), ImmutableList.of()),
+ ImmutableList.copyOf(toolchain.getUnfilteredCxxFlagList()),
toolchain.getSupportsFission(),
toolchain.getSupportsStartEndLib(),
toolchain.getSupportsEmbeddedRuntimes(),
@@ -242,7 +239,7 @@ public final class CppToolchainInfo {
PathFragment runtimeSysroot,
String targetLibc,
String hostSystemName,
- FlagList dynamicLibraryLinkFlags,
+ ImmutableList<String> dynamicLibraryLinkFlags,
ImmutableList<String> legacyLinkOptions,
ImmutableListMultimap<LinkingMode, String> legacyLinkOptionsFromLinkingMode,
ImmutableListMultimap<LipoMode, String> legacyLinkOptionsFromLipoMode,
@@ -263,7 +260,7 @@ public final class CppToolchainInfo {
ImmutableListMultimap<CompilationMode, String> cxxFlagsByCompilationMode,
ImmutableListMultimap<LipoMode, String> lipoCFlags,
ImmutableListMultimap<LipoMode, String> lipoCxxFlags,
- FlagList unfilteredCompilerFlags,
+ ImmutableList<String> unfilteredCompilerFlags,
boolean supportsFission,
boolean supportsStartEndLib,
boolean supportsEmbeddedRuntimes,
@@ -642,11 +639,8 @@ public final class CppToolchainInfo {
* Returns link options for the specified flag list, combined with universal options for all
* shared libraries (regardless of link staticness).
*/
- ImmutableList<String> getSharedLibraryLinkOptions(FlagList flags) {
- return ImmutableList.<String>builder()
- .addAll(flags.evaluate())
- .addAll(dynamicLibraryLinkFlags.evaluate())
- .build();
+ ImmutableList<String> getSharedLibraryLinkOptions(ImmutableList<String> flags) {
+ return ImmutableList.<String>builder().addAll(flags).addAll(dynamicLibraryLinkFlags).build();
}
/**
@@ -755,11 +749,11 @@ public final class CppToolchainInfo {
/** Returns unfiltered compiler options for C++ from this toolchain. */
public ImmutableList<String> getUnfilteredCompilerOptions(@Nullable PathFragment sysroot) {
if (sysroot == null) {
- return unfilteredCompilerFlags.evaluate();
+ return unfilteredCompilerFlags;
}
return ImmutableList.<String>builder()
.add("--sysroot=" + sysroot)
- .addAll(unfilteredCompilerFlags.evaluate())
+ .addAll(unfilteredCompilerFlags)
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/FlagList.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/FlagList.java
deleted file mode 100644
index 7fbdc308fe..0000000000
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/FlagList.java
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2017 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.rules.cpp;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
-import java.io.Serializable;
-
-/** Represents a list of c++ tool flags. */
-@AutoCodec
-@Immutable
-public class FlagList implements Serializable {
- private final ImmutableList<String> prefixFlags;
- private final ImmutableList<String> suffixFlags;
-
- @AutoCodec.Instantiator
- FlagList(
- ImmutableList<String> prefixFlags,
- ImmutableList<String> suffixFlags) {
- this.prefixFlags = prefixFlags;
- this.suffixFlags = suffixFlags;
- }
-
- @VisibleForTesting
- ImmutableList<String> evaluate() {
- ImmutableList.Builder<String> result = ImmutableList.builder();
- result.addAll(prefixFlags);
- result.addAll(suffixFlags);
- return result.build();
- }
-}