aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java42
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java15
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java194
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL540
-rw-r--r--tools/osx/crosstool/CROSSTOOL.tpl460
10 files changed, 1172 insertions, 97 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java
index 750d666cbb..371690aba5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java
@@ -119,6 +119,7 @@ public final class CcLibraryHelper {
CppCompileAction.ASSEMBLE,
CppCompileAction.PREPROCESS_ASSEMBLE,
CppCompileAction.CLIF_MATCH,
+ CppCompileAction.LINKSTAMP_COMPILE,
Link.LinkTargetType.STATIC_LIBRARY.getActionName(),
// We need to create pic-specific actions for link actions, as they will produce
// differently named outputs.
@@ -147,6 +148,7 @@ public final class CcLibraryHelper {
CppCompileAction.CPP_HEADER_PREPROCESSING,
CppCompileAction.ASSEMBLE,
CppCompileAction.PREPROCESS_ASSEMBLE,
+ CppCompileAction.LINKSTAMP_COMPILE,
Link.LinkTargetType.STATIC_LIBRARY.getActionName(),
// We need to create pic-specific actions for link actions, as they will produce
// differently named outputs.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java
index 472701ceec..561260581f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java
@@ -88,7 +88,7 @@ public final class CompileCommandLine {
// second: The compiler options.
commandLine.addAll(getCompilerOptions(overwrittenVariables));
- if (!featureConfiguration.isEnabled("compile_action_flags_in_flag_set")) {
+ if (!featureConfiguration.isEnabled(CppRuleClasses.COMPILE_ACTION_FLAGS_IN_FLAG_SET)) {
// third: The file to compile!
commandLine.add("-c");
commandLine.add(sourceFile.getExecPathString());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java
index e965d4a82f..caf3e36efe 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java
@@ -83,6 +83,17 @@ public class CppActionConfigs {
" implies: 'unfiltered_compile_flags'",
"}",
"action_config {",
+ " config_name: 'linkstamp-compile'",
+ " action_name: 'linkstamp-compile'",
+ " tool {",
+ " tool_path: '" + gccToolPath + "'",
+ " }",
+ " implies: 'legacy_compile_flags'",
+ " implies: 'user_compile_flags'",
+ " implies: 'sysroot'",
+ " implies: 'unfiltered_compile_flags'",
+ "}",
+ "action_config {",
" config_name: 'c-compile'",
" action_name: 'c-compile'",
" tool {",
@@ -157,6 +168,7 @@ public class CppActionConfigs {
" expand_if_all_available: 'legacy_compile_flags'",
" action: 'assemble'",
" action: 'preprocess-assemble'",
+ " action: 'linkstamp-compile'",
" action: 'c-compile'",
" action: 'c++-compile'",
" action: 'c++-header-parsing'",
@@ -229,6 +241,7 @@ public class CppActionConfigs {
" flag_set {",
" action: 'assemble'",
" action: 'preprocess-assemble'",
+ " action: 'linkstamp-compile'",
" action: 'c-compile'",
" action: 'c++-compile'",
" action: 'c++-module-codegen'",
@@ -261,6 +274,7 @@ public class CppActionConfigs {
" name: 'preprocessor_defines'",
" flag_set {",
" action: 'preprocess-assemble'",
+ " action: 'linkstamp-compile'",
" action: 'c-compile'",
" action: 'c++-compile'",
" action: 'c++-header-parsing'",
@@ -274,11 +288,36 @@ public class CppActionConfigs {
" }",
"}"),
ifTrue(
+ !existingFeatureNames.contains("includes"),
+ "feature {",
+ " name: 'includes'",
+ " enabled: true",
+ " flag_set {",
+ " action: 'preprocess-assemble'",
+ " action: 'linkstamp-compile'",
+ " action: 'c-compile'",
+ " action: 'c++-compile'",
+ " action: 'c++-header-parsing'",
+ " action: 'c++-header-preprocessing'",
+ " action: 'c++-module-compile'",
+ " action: 'clif-match'",
+ " action: 'objc-compile'",
+ " action: 'objc++-compile'",
+ " flag_group {",
+ " expand_if_all_available: 'includes'",
+ " iterate_over: 'includes'",
+ " flag: '-include'",
+ " flag: '%{includes}'",
+ " }",
+ " }",
+ "}"),
+ ifTrue(
!existingFeatureNames.contains(CppRuleClasses.INCLUDE_PATHS),
"feature {",
" name: 'include_paths'",
" flag_set {",
" action: 'preprocess-assemble'",
+ " action: 'linkstamp-compile'",
" action: 'c-compile'",
" action: 'c++-compile'",
" action: 'c++-header-parsing'",
@@ -942,6 +981,7 @@ public class CppActionConfigs {
" expand_if_all_available: 'user_compile_flags'",
" action: 'assemble'",
" action: 'preprocess-assemble'",
+ " action: 'linkstamp-compile'",
" action: 'c-compile'",
" action: 'c++-compile'",
" action: 'c++-header-parsing'",
@@ -963,6 +1003,7 @@ public class CppActionConfigs {
" enabled: true",
" flag_set {",
" action: 'preprocess-assemble'",
+ " action: 'linkstamp-compile'",
" action: 'c-compile'",
" action: 'c++-compile'",
" action: 'c++-header-parsing'",
@@ -991,6 +1032,7 @@ public class CppActionConfigs {
" expand_if_all_available: 'unfiltered_compile_flags'",
" action: 'assemble'",
" action: 'preprocess-assemble'",
+ " action: 'linkstamp-compile'",
" action: 'c-compile'",
" action: 'c++-compile'",
" action: 'c++-header-parsing'",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
index 0de697be74..8c09e6c8cb 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
@@ -123,6 +123,9 @@ public class CppCompileAction extends AbstractAction
/** A string constant for the strip action name. */
public static final String STRIP_ACTION_NAME = "strip";
+ /** A string constant for the linkstamp-compile action. */
+ public static final String LINKSTAMP_COMPILE = "linkstamp-compile";
+
/**
* A string constant for the c compilation action.
*/
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
index 2df7719e49..633adc98a0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
@@ -186,7 +186,7 @@ public class CppLinkActionBuilder {
private NestedSet<Artifact> runtimeInputs = NestedSetBuilder.emptySet(Order.STABLE_ORDER);
private final NestedSetBuilder<Artifact> compilationInputs = NestedSetBuilder.stableOrder();
private final Set<Artifact> linkstamps = new LinkedHashSet<>();
- private List<String> linkstampOptions = new ArrayList<>();
+ private ImmutableList<String> additionalLinkstampDefines = ImmutableList.of();
private final List<String> linkopts = new ArrayList<>();
private LinkTargetType linkType = LinkTargetType.STATIC_LIBRARY;
private LinkStaticness linkStaticness = LinkStaticness.FULLY_STATIC;
@@ -398,12 +398,6 @@ public class CppLinkActionBuilder {
public final Set<Artifact> getLinkstamps() {
return this.linkstamps;
}
- /**
- * Returns linkstamp options for this link action.
- */
- public List<String> getLinkstampOptions() {
- return this.linkstampOptions;
- }
/**
* Returns command line options for this link action.
@@ -799,7 +793,7 @@ public class CppLinkActionBuilder {
.setBuildInfoHeaderArtifacts(buildInfoHeaderArtifacts)
.setLinkstamps(linkstampMap)
.setLinkopts(ImmutableList.copyOf(linkopts))
- .addLinkstampCompileOptions(linkstampOptions);
+ .setAdditionalLinkstampDefines(additionalLinkstampDefines);
} else {
List<String> opts = new ArrayList<>(linkopts);
opts.addAll(featureConfiguration.getCommandLine("lto-indexing", buildVariables));
@@ -1236,8 +1230,9 @@ public class CppLinkActionBuilder {
return this;
}
- public CppLinkActionBuilder addLinkstampCompilerOptions(ImmutableList<String> linkstampOptions) {
- this.linkstampOptions = linkstampOptions;
+ public CppLinkActionBuilder setAdditionalLinkstampDefines(
+ ImmutableList<String> additionalLinkstampDefines) {
+ this.additionalLinkstampDefines = Preconditions.checkNotNull(additionalLinkstampDefines);
return this;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java
index b7a8e6062f..2d59c5a754 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java
@@ -110,6 +110,12 @@ public final class CppModel {
public static final String MODULE_FILES_VARIABLE_NAME = "module_files";
/**
+ * Name of the build variable for includes that compiler needs to include into sources to be
+ * compiled.
+ */
+ public static final String INCLUDES_VARIABLE_NAME = "includes";
+
+ /**
* Name of the build variable for the collection of include paths.
*
* @see CppCompilationContext#getIncludeDirs().
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java
index 97ad0f391e..190e935252 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java
@@ -273,6 +273,9 @@ public class CppRuleClasses {
*/
public static final String PREPROCESSOR_DEFINES = "preprocessor_defines";
+ /** A string constant for the includes feature. */
+ public static final String INCLUDES = "includes";
+
/**
* A string constant for the include_paths feature.
*/
@@ -349,6 +352,6 @@ public class CppRuleClasses {
/** Produce artifacts for coverage in gcc coverage mapping format. */
public static final String GCC_COVERAGE_MAP_FORMAT = "gcc_coverage_map_format";
- /** A string constant for the match-clif feature. */
+ /** A string constant for the match-clif action. */
public static final String MATCH_CLIF = "match_clif";
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java
index c171c9fe01..186c4f742a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java
@@ -69,7 +69,7 @@ public final class LinkCommandLine extends CommandLine {
private final ImmutableList<String> linkopts;
private final ImmutableSet<String> features;
private final ImmutableMap<Artifact, Artifact> linkstamps;
- private final ImmutableList<String> linkstampCompileOptions;
+ private final ImmutableList<String> additionalLinkstampDefines;
@Nullable private final String fdoBuildStamp;
@Nullable private final PathFragment runtimeSolibDir;
private final boolean nativeDeps;
@@ -92,7 +92,7 @@ public final class LinkCommandLine extends CommandLine {
ImmutableList<String> linkopts,
ImmutableSet<String> features,
ImmutableMap<Artifact, Artifact> linkstamps,
- ImmutableList<String> linkstampCompileOptions,
+ ImmutableList<String> additionalLinkstampDefines,
@Nullable String fdoBuildStamp,
@Nullable PathFragment runtimeSolibDir,
boolean nativeDeps,
@@ -116,12 +116,13 @@ public final class LinkCommandLine extends CommandLine {
this.linkTargetType = Preconditions.checkNotNull(linkTargetType);
this.linkStaticness = Preconditions.checkNotNull(linkStaticness);
// For now, silently ignore linkopts if this is a static library link.
- this.linkopts = linkTargetType.staticness() == Staticness.STATIC
- ? ImmutableList.<String>of()
- : Preconditions.checkNotNull(linkopts);
+ this.linkopts =
+ linkTargetType.staticness() == Staticness.STATIC
+ ? ImmutableList.of()
+ : Preconditions.checkNotNull(linkopts);
this.features = Preconditions.checkNotNull(features);
this.linkstamps = Preconditions.checkNotNull(linkstamps);
- this.linkstampCompileOptions = linkstampCompileOptions;
+ this.additionalLinkstampDefines = additionalLinkstampDefines;
this.fdoBuildStamp = fdoBuildStamp;
this.runtimeSolibDir = runtimeSolibDir;
this.nativeDeps = nativeDeps;
@@ -518,74 +519,90 @@ public final class LinkCommandLine extends CommandLine {
return ImmutableList.of();
}
- String compilerCommand = cppConfiguration.getCppExecutable().getPathString();
List<String> commands = Lists.newArrayListWithCapacity(linkstamps.size());
for (Map.Entry<Artifact, Artifact> linkstamp : linkstamps.entrySet()) {
- List<String> optionList = new ArrayList<>();
+ Artifact sourceFile = linkstamp.getKey();
+ Artifact outputFile = linkstamp.getValue();
+ Variables linkstampVariables = collectLinkstampVariables(sourceFile, outputFile);
- // Defines related to the build info are read from generated headers.
- for (Artifact header : buildInfoHeaderArtifacts) {
- optionList.add("-include");
- optionList.add(header.getExecPathString());
- }
-
- String labelReplacement = Matcher.quoteReplacement(
- isSharedNativeLibrary() ? output.getExecPathString() : Label.print(owner.getLabel()));
- String outputPathReplacement = Matcher.quoteReplacement(
- output.getExecPathString());
- for (String option : linkstampCompileOptions) {
- optionList.add(option
- .replaceAll(Pattern.quote("${LABEL}"), labelReplacement)
- .replaceAll(Pattern.quote("${OUTPUT_PATH}"), outputPathReplacement));
- }
-
- optionList.add("-DGPLATFORM=\"" + cppConfiguration + "\"");
- optionList.add("-DBUILD_COVERAGE_ENABLED=" + (codeCoverageEnabled ? "1" : "0"));
-
- // Needed to find headers included from linkstamps.
- optionList.add("-I.");
-
- // Add toolchain compiler options.
- optionList.addAll(cppConfiguration.getCompilerOptions(features));
- optionList.addAll(cppConfiguration.getCOptions());
- optionList.addAll(ccProvider.getUnfilteredCompilerOptionsWithSysroot(features));
- if (CppFileTypes.CPP_SOURCE.matches(linkstamp.getKey().getExecPath())) {
- optionList.addAll(cppConfiguration.getCxxOptions(features));
- }
-
- // For dynamic libraries, produce position independent code.
- if (linkTargetType == LinkTargetType.DYNAMIC_LIBRARY
- && cppConfiguration.toolchainNeedsPic()) {
- optionList.add("-fPIC");
- }
-
- // Stamp FDO builds with FDO subtype string
- if (fdoBuildStamp != null) {
- optionList.add("-D" + CppConfiguration.FDO_STAMP_MACRO + "=\"" + fdoBuildStamp + "\"");
- }
-
- // Add the compilation target.
- optionList.add("-c");
- optionList.add(linkstamp.getKey().getExecPathString());
-
- // Assemble the final command, exempting outputPrefix from shell escaping.
- commands.add(compilerCommand + " "
- + ShellEscaper.escapeJoinAll(optionList)
- + " -o "
- + outputPrefix
- + ShellEscaper.escapeString(linkstamp.getValue().getExecPathString()));
+ ImmutableList.Builder<String> linkstampCompileCommandLine = ImmutableList.builder();
+ linkstampCompileCommandLine.add(
+ featureConfiguration
+ .getToolForAction(CppCompileAction.LINKSTAMP_COMPILE)
+ .getToolPath(cppConfiguration.getCrosstoolTopPathFragment())
+ .getPathString());
+ linkstampCompileCommandLine.addAll(
+ featureConfiguration.getCommandLine(
+ CppCompileAction.LINKSTAMP_COMPILE, linkstampVariables));
+ // TODO(b/28946988): Remove -c/-o hardcoded flags from bazel
+ linkstampCompileCommandLine.add("-c");
+ linkstampCompileCommandLine.add(sourceFile.getExecPathString());
+ linkstampCompileCommandLine.add("-o");
+ linkstampCompileCommandLine.add(outputFile.getExecPathString());
+ commands.add(ShellEscaper.escapeJoinAll(linkstampCompileCommandLine.build()));
}
return commands;
}
- /**
- * A builder for a {@link LinkCommandLine}.
- */
- public static final class Builder {
- // TODO(bazel-team): Pass this in instead of having it here. Maybe move to cc_toolchain.
- private static final ImmutableList<String> DEFAULT_LINKSTAMP_OPTIONS = ImmutableList.of(
+ private Variables collectLinkstampVariables(Artifact sourceFile, Artifact outputFile) {
+ // TODO(b/34761650): Remove all this hardcoding by separating a full blown compile action.
+ Preconditions.checkArgument(
+ featureConfiguration.actionIsConfigured(CppCompileAction.LINKSTAMP_COMPILE));
+
+ Variables.Builder linkstampVariables = new Variables.Builder(ccProvider.getBuildVariables());
+ // We need to force inclusion of build_info headers
+ linkstampVariables.addStringSequenceVariable(
+ CppModel.INCLUDES_VARIABLE_NAME,
+ buildInfoHeaderArtifacts
+ .stream()
+ .map(Artifact::getExecPathString)
+ .collect(ImmutableList.toImmutableList()));
+ // Input/Output files.
+ linkstampVariables.addStringVariable(
+ CppModel.SOURCE_FILE_VARIABLE_NAME, sourceFile.getExecPathString());
+ linkstampVariables.addStringVariable(
+ CppModel.OUTPUT_OBJECT_FILE_VARIABLE_NAME, outputFile.getExecPathString());
+ // Include directories for (normal includes with ".", empty quote- and system- includes).
+ linkstampVariables.addStringSequenceVariable(
+ CppModel.INCLUDE_PATHS_VARIABLE_NAME, ImmutableList.of("."));
+ linkstampVariables.addStringSequenceVariable(
+ CppModel.QUOTE_INCLUDE_PATHS_VARIABLE_NAME, ImmutableList.of());
+ linkstampVariables.addStringSequenceVariable(
+ CppModel.SYSTEM_INCLUDE_PATHS_VARIABLE_NAME, ImmutableList.of());
+ // Legacy flags coming from fields such as compiler_flag
+ linkstampVariables.addLazyStringSequenceVariable(
+ CppModel.LEGACY_COMPILE_FLAGS_VARIABLE_NAME,
+ CppModel.getLegacyCompileFlagsSupplier(
+ cppConfiguration, sourceFile.getExecPathString(), features));
+ // Unfilterable flags coming from unfiltered_cxx_flag fields
+ linkstampVariables.addLazyStringSequenceVariable(
+ CppModel.UNFILTERED_COMPILE_FLAGS_VARIABLE_NAME,
+ CppModel.getUnfilteredCompileFlagsSupplier(ccProvider, features));
+ // Collect all preprocessor defines, and in each replace ${LABEL} by labelReplacements, and
+ // ${OUTPUT_PATH} with outputPathReplacement.
+ linkstampVariables.addStringSequenceVariable(
+ CppModel.PREPROCESSOR_DEFINES_VARIABLE_NAME,
+ computeAllLinkstampDefines());
+ // For dynamic libraries, produce position independent code.
+ if (linkTargetType == LinkTargetType.DYNAMIC_LIBRARY && cppConfiguration.toolchainNeedsPic()) {
+ linkstampVariables.addStringVariable(CppModel.PIC_VARIABLE_NAME, "");
+ }
+ return linkstampVariables.build();
+ }
+
+ private ImmutableList<String> computeAllLinkstampDefines() {
+ String labelReplacement =
+ Matcher.quoteReplacement(
+ isSharedNativeLibrary() ? output.getExecPathString() : Label.print(owner.getLabel()));
+ String outputPathReplacement = Matcher.quoteReplacement(output.getExecPathString());
+ String labelPattern = Pattern.quote("${LABEL}");
+ String outputPathPattern = Pattern.quote("${OUTPUT_PATH}");
+ ImmutableList.Builder<String> defines = ImmutableList.builder();
+ defines
+ .add("GPLATFORM=\"" + cppConfiguration + "\"")
+ .add("BUILD_COVERAGE_ENABLED=" + (codeCoverageEnabled ? "1" : "0"))
// G3_VERSION_INFO and G3_TARGET_NAME are C string literals that normally
// contain the label of the target being linked. However, they are set
// differently when using shared native deps. In that case, a single .so file
@@ -593,13 +610,31 @@ public final class LinkCommandLine extends CommandLine {
// target(s) were specified on the command line. So in that case we have
// to use the (obscure) name of the .so file instead, or more precisely
// the path of the .so file relative to the workspace root.
- "-DG3_VERSION_INFO=\"${LABEL}\"",
- "-DG3_TARGET_NAME=\"${LABEL}\"",
-
+ .add("G3_VERSION_INFO=\"${LABEL}\"")
+ .add("G3_TARGET_NAME=\"${LABEL}\"")
// G3_BUILD_TARGET is a C string literal containing the output of this
// link. (An undocumented and untested invariant is that G3_BUILD_TARGET is the location of
// the executable, either absolutely, or relative to the directory part of BUILD_INFO.)
- "-DG3_BUILD_TARGET=\"${OUTPUT_PATH}\"");
+ .add("G3_BUILD_TARGET=\"${OUTPUT_PATH}\"")
+ .addAll(additionalLinkstampDefines);
+
+ if (fdoBuildStamp != null) {
+ defines.add(CppConfiguration.FDO_STAMP_MACRO + "=\"" + fdoBuildStamp + "\"");
+ }
+
+ return defines
+ .build()
+ .stream()
+ .map(
+ define ->
+ define
+ .replaceAll(labelPattern, labelReplacement)
+ .replaceAll(outputPathPattern, outputPathReplacement))
+ .collect(ImmutableList.toImmutableList());
+ }
+
+ /** A builder for a {@link LinkCommandLine}. */
+ public static final class Builder {
private final BuildConfiguration configuration;
private final ActionOwner owner;
@@ -615,7 +650,7 @@ public final class LinkCommandLine extends CommandLine {
private ImmutableList<String> linkopts = ImmutableList.of();
private ImmutableSet<String> features = ImmutableSet.of();
private ImmutableMap<Artifact, Artifact> linkstamps = ImmutableMap.of();
- private List<String> linkstampCompileOptions = new ArrayList<>();
+ private ImmutableList<String> additionalLinkstampDefines = ImmutableList.of();
@Nullable private PathFragment runtimeSolibDir;
private boolean nativeDeps;
private boolean useTestOnlyFlags;
@@ -649,14 +684,6 @@ public final class LinkCommandLine extends CommandLine {
"build info headers may only be present on dynamic library or executable links");
}
- ImmutableList<String> actualLinkstampCompileOptions;
- if (linkstampCompileOptions.isEmpty()) {
- actualLinkstampCompileOptions = DEFAULT_LINKSTAMP_OPTIONS;
- } else {
- actualLinkstampCompileOptions = ImmutableList.copyOf(
- Iterables.concat(DEFAULT_LINKSTAMP_OPTIONS, linkstampCompileOptions));
- }
-
if (toolchain == null) {
toolchain =
Preconditions.checkNotNull(
@@ -693,7 +720,7 @@ public final class LinkCommandLine extends CommandLine {
linkopts,
features,
linkstamps,
- actualLinkstampCompileOptions,
+ additionalLinkstampDefines,
CppHelper.getFdoBuildStamp(ruleContext, fdoSupport),
runtimeSolibDir,
nativeDeps,
@@ -797,12 +824,9 @@ public final class LinkCommandLine extends CommandLine {
return this;
}
- /**
- * Adds the given C++ compiler options to the list of options passed to the linkstamp
- * compilation.
- */
- public Builder addLinkstampCompileOptions(List<String> linkstampCompileOptions) {
- this.linkstampCompileOptions.addAll(linkstampCompileOptions);
+ /** Adds the given list of preprocessor defines to the linkstamp compilation. */
+ public Builder setAdditionalLinkstampDefines(ImmutableList<String> additionalLinkstampDefines) {
+ this.additionalLinkstampDefines = Preconditions.checkNotNull(additionalLinkstampDefines);
return this;
}
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL b/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL
index 7aedc55922..8287985c6f 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL
@@ -931,6 +931,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -1349,6 +1371,29 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -2659,6 +2704,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -3077,6 +3144,29 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -4382,6 +4472,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -4800,6 +4912,29 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -6105,6 +6240,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -6523,6 +6680,29 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -7832,6 +8012,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -8254,6 +8456,29 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -9567,6 +9792,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -9989,6 +10236,29 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "watchsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch i386"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -11301,6 +11571,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -11749,6 +12041,29 @@ toolchain {
implies: "unfiltered_cxx_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "tvsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -13065,6 +13380,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -13487,6 +13824,29 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch i386"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -14798,6 +15158,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -15242,6 +15624,29 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch armv7"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -16553,6 +16958,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -16997,6 +17424,29 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "watchos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch armv7k"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -18307,6 +18757,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -18777,6 +19249,29 @@ toolchain {
implies: "unfiltered_cxx_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "tvos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch arm64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -20091,6 +20586,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -20535,6 +21052,29 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch arm64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
diff --git a/tools/osx/crosstool/CROSSTOOL.tpl b/tools/osx/crosstool/CROSSTOOL.tpl
index e2193ddbe5..9ec9547123 100644
--- a/tools/osx/crosstool/CROSSTOOL.tpl
+++ b/tools/osx/crosstool/CROSSTOOL.tpl
@@ -633,6 +633,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -641,6 +663,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "clif-match"
action: "objc-compile"
action: "objc++-compile"
@@ -674,6 +697,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-link-executable"
action: "c++-link-dynamic-library"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "clif-match"
flag_group {
@@ -720,6 +744,7 @@ toolchain {
action: "c++-compile"
action: "c++-module-codegen"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "preprocess-assemble"
flag_group {
flag: "-fPIC"
@@ -751,6 +776,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "objc-compile"
action: "objc++-compile"
flag_group {
@@ -1088,6 +1114,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -1109,6 +1136,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -1214,6 +1242,24 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -2242,6 +2288,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -2250,6 +2318,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "clif-match"
action: "objc-compile"
action: "objc++-compile"
@@ -2283,6 +2352,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-link-executable"
action: "c++-link-dynamic-library"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "clif-match"
flag_group {
@@ -2329,6 +2399,7 @@ toolchain {
action: "c++-compile"
action: "c++-module-codegen"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "preprocess-assemble"
flag_group {
flag: "-fPIC"
@@ -2360,6 +2431,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "objc-compile"
action: "objc++-compile"
flag_group {
@@ -2702,6 +2774,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -2723,6 +2796,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -2828,6 +2902,24 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -3858,6 +3950,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -3866,6 +3980,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "clif-match"
action: "objc-compile"
action: "objc++-compile"
@@ -3899,6 +4014,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-link-executable"
action: "c++-link-dynamic-library"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "clif-match"
flag_group {
@@ -3945,6 +4061,7 @@ toolchain {
action: "c++-compile"
action: "c++-module-codegen"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "preprocess-assemble"
flag_group {
flag: "-fPIC"
@@ -3976,6 +4093,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "objc-compile"
action: "objc++-compile"
flag_group {
@@ -4320,6 +4438,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -4341,6 +4460,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -4446,6 +4566,24 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -5477,6 +5615,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -5485,6 +5645,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "clif-match"
action: "objc-compile"
action: "objc++-compile"
@@ -5518,6 +5679,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-link-executable"
action: "c++-link-dynamic-library"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "clif-match"
flag_group {
@@ -5564,6 +5726,7 @@ toolchain {
action: "c++-compile"
action: "c++-module-codegen"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "preprocess-assemble"
flag_group {
flag: "-fPIC"
@@ -5595,6 +5758,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "objc-compile"
action: "objc++-compile"
flag_group {
@@ -5958,6 +6122,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -5979,6 +6144,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -6086,6 +6252,24 @@ toolchain {
implies: "unfiltered_cxx_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -7123,6 +7307,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -7131,6 +7337,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "clif-match"
action: "objc-compile"
action: "objc++-compile"
@@ -7164,6 +7371,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-link-executable"
action: "c++-link-dynamic-library"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "clif-match"
flag_group {
@@ -7210,6 +7418,7 @@ toolchain {
action: "c++-compile"
action: "c++-module-codegen"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "preprocess-assemble"
flag_group {
flag: "-fPIC"
@@ -7241,6 +7450,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "objc-compile"
action: "objc++-compile"
flag_group {
@@ -7583,6 +7793,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -7604,6 +7815,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -7709,6 +7921,24 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -8739,6 +8969,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -8747,6 +8999,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "clif-match"
action: "objc-compile"
action: "objc++-compile"
@@ -8780,6 +9033,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-link-executable"
action: "c++-link-dynamic-library"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "clif-match"
flag_group {
@@ -8826,6 +9080,7 @@ toolchain {
action: "c++-compile"
action: "c++-module-codegen"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "preprocess-assemble"
flag_group {
flag: "-fPIC"
@@ -8857,6 +9112,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "objc-compile"
action: "objc++-compile"
flag_group {
@@ -9189,6 +9445,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -9210,6 +9467,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -9315,6 +9573,24 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -10343,6 +10619,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -10351,6 +10649,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "clif-match"
action: "objc-compile"
action: "objc++-compile"
@@ -10384,6 +10683,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-link-executable"
action: "c++-link-dynamic-library"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "clif-match"
flag_group {
@@ -10430,6 +10730,7 @@ toolchain {
action: "c++-compile"
action: "c++-module-codegen"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "preprocess-assemble"
flag_group {
flag: "-fPIC"
@@ -10461,6 +10762,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "objc-compile"
action: "objc++-compile"
flag_group {
@@ -10795,6 +11097,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -10816,6 +11119,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -10921,6 +11225,24 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -11950,6 +12272,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -11958,6 +12302,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "clif-match"
action: "objc-compile"
action: "objc++-compile"
@@ -11991,6 +12336,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-link-executable"
action: "c++-link-dynamic-library"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "clif-match"
flag_group {
@@ -12037,6 +12383,7 @@ toolchain {
action: "c++-compile"
action: "c++-module-codegen"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "preprocess-assemble"
flag_group {
flag: "-fPIC"
@@ -12068,6 +12415,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "objc-compile"
action: "objc++-compile"
flag_group {
@@ -12421,6 +12769,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -12442,6 +12791,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -12549,6 +12899,24 @@ toolchain {
implies: "unfiltered_cxx_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -13584,6 +13952,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -13592,6 +13982,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "clif-match"
action: "objc-compile"
action: "objc++-compile"
@@ -13625,6 +14016,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-link-executable"
action: "c++-link-dynamic-library"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "clif-match"
flag_group {
@@ -13671,6 +14063,7 @@ toolchain {
action: "c++-compile"
action: "c++-module-codegen"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "preprocess-assemble"
flag_group {
flag: "-fPIC"
@@ -13702,6 +14095,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "objc-compile"
action: "objc++-compile"
flag_group {
@@ -14034,6 +14428,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -14055,6 +14450,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -14160,6 +14556,24 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {
@@ -15191,6 +15605,28 @@ toolchain {
}
}
feature {
+ name: "includes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "clif-match"
+ flag_group {
+ flag: "-include"
+ flag: "%{includes}"
+ iterate_over: "includes"
+ expand_if_all_available: "includes"
+ }
+ }
+ enabled: true
+ }
+ feature {
name: "include_paths"
flag_set {
action: "preprocess-assemble"
@@ -15199,6 +15635,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "clif-match"
action: "objc-compile"
action: "objc++-compile"
@@ -15232,6 +15669,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-link-executable"
action: "c++-link-dynamic-library"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "clif-match"
flag_group {
@@ -15278,6 +15716,7 @@ toolchain {
action: "c++-compile"
action: "c++-module-codegen"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "preprocess-assemble"
flag_group {
flag: "-fPIC"
@@ -15309,6 +15748,7 @@ toolchain {
action: "c++-header-parsing"
action: "c++-header-preprocessing"
action: "c++-module-compile"
+ action: "linkstamp-compile"
action: "objc-compile"
action: "objc++-compile"
flag_group {
@@ -15641,6 +16081,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -15662,6 +16103,7 @@ toolchain {
action: "c++-header-preprocessing"
action: "c++-module-compile"
action: "c++-module-codegen"
+ action: "linkstamp-compile"
action: "lto-backend"
action: "objc-compile"
action: "objc++-compile"
@@ -15767,6 +16209,24 @@ toolchain {
implies: "unfiltered_compile_flags"
}
action_config {
+ config_name: "linkstamp-compile"
+ action_name: "linkstamp-compile"
+ tool {
+ tool_path: "wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "legacy_compile_flags"
+ implies: "user_compile_flags"
+ implies: "sysroot"
+ implies: "unfiltered_compile_flags"
+ }
+ action_config {
config_name: "c++-module-compile"
action_name: "c++-module-compile"
tool {