From f26e8694ae78599b3e2004e3360eaf3443fa53a6 Mon Sep 17 00:00:00 2001 From: hlopko Date: Thu, 14 Sep 2017 13:54:15 +0200 Subject: Introduce -c source_file -o output_file build variables Prior to this cl CompileCommandLine would (almost) unconditionally emit -c and -o flags. This cl removes this logic and relies on crosstool to emit these flags. This is another small step towards platform independent C++ rules. Memory use is not affected, since the build variables used by this cl are already exposed, this cl just forces crosstools to use it. RELNOTES: None. PiperOrigin-RevId: 168671507 --- .../devtools/build/lib/actions/CommandAction.java | 2 + .../devtools/build/lib/rules/cpp/CcCommon.java | 1 - .../build/lib/rules/cpp/CompileCommandLine.java | 45 +- .../build/lib/rules/cpp/CppActionConfigs.java | 76 ++ .../build/lib/rules/cpp/CppCompileAction.java | 28 +- .../build/lib/rules/cpp/CppRuleClasses.java | 7 - .../build/lib/rules/cpp/FakeCppCompileAction.java | 6 +- .../build/lib/rules/cpp/SpawnGccStrategy.java | 23 +- .../rules/objc/CrosstoolCompilationSupport.java | 1 - .../build/lib/packages/util/MOCK_OSX_CROSSTOOL | 840 +++++++++++++++++++++ .../devtools/build/lib/rules/cpp/CcCommonTest.java | 14 +- .../lib/rules/cpp/CompileCommandLineTest.java | 5 +- tools/cpp/CROSSTOOL | 5 - tools/cpp/CROSSTOOL.tpl | 5 - tools/osx/crosstool/CROSSTOOL.tpl | 700 +++++++++++++++++ 15 files changed, 1656 insertions(+), 102 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/actions/CommandAction.java b/src/main/java/com/google/devtools/build/lib/actions/CommandAction.java index e8d5a93d1c..1ac7da832d 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/CommandAction.java +++ b/src/main/java/com/google/devtools/build/lib/actions/CommandAction.java @@ -14,6 +14,7 @@ package com.google.devtools.build.lib.actions; +import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableMap; import java.util.List; @@ -33,5 +34,6 @@ public interface CommandAction extends Action, ExecutionInfoSpecifier { ImmutableMap getEnvironment(); /** Returns inputs to this action, including inputs that may be pruned. */ + @VisibleForTesting // productionVisibility = Visibility.PRIVATE Iterable getPossibleInputsForTesting(); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java index 47aa40a0ec..ff3af5dc16 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java @@ -90,7 +90,6 @@ public final class CcCommon { private static final ImmutableSet DEFAULT_FEATURES = ImmutableSet.of( CppRuleClasses.DEPENDENCY_FILE, - CppRuleClasses.COMPILE_ACTION_FLAGS_IN_FLAG_SET, CppRuleClasses.RANDOM_SEED, CppRuleClasses.MODULE_MAPS, CppRuleClasses.MODULE_MAP_HOME_CWD, 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 3215cbb36e..73bf3e85bb 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 @@ -20,10 +20,8 @@ import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables; import com.google.devtools.build.lib.rules.cpp.CppCompileAction.DotdFile; -import com.google.devtools.build.lib.util.FileType; import com.google.devtools.build.lib.util.Pair; import com.google.devtools.build.lib.util.Preconditions; -import com.google.devtools.build.lib.vfs.PathFragment; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -33,7 +31,6 @@ import javax.annotation.Nullable; public final class CompileCommandLine { private final Artifact sourceFile; - private final Artifact outputFile; private final Predicate coptsFilter; private final FeatureConfiguration featureConfiguration; private final CcToolchainFeatures.Variables variables; @@ -43,7 +40,6 @@ public final class CompileCommandLine { private CompileCommandLine( Artifact sourceFile, - Artifact outputFile, Predicate coptsFilter, FeatureConfiguration featureConfiguration, CppConfiguration cppConfiguration, @@ -51,7 +47,6 @@ public final class CompileCommandLine { String actionName, DotdFile dotdFile) { this.sourceFile = Preconditions.checkNotNull(sourceFile); - this.outputFile = Preconditions.checkNotNull(outputFile); this.coptsFilter = coptsFilter; this.featureConfiguration = Preconditions.checkNotNull(featureConfiguration); this.cppConfiguration = Preconditions.checkNotNull(cppConfiguration); @@ -71,8 +66,12 @@ public final class CompileCommandLine { return featureConfiguration.getEnvironmentVariables(actionName, variables); } - protected List getArgv( - PathFragment outputFile, CcToolchainFeatures.Variables overwrittenVariables) { + /** + * @param overwrittenVariables: Variables that will overwrite original build variables. When null, + * unmodified original variables are used. + */ + protected List getArguments( + @Nullable CcToolchainFeatures.Variables overwrittenVariables) { List commandLine = new ArrayList<>(); // first: The command name. @@ -87,17 +86,6 @@ public final class CompileCommandLine { // second: The compiler options. commandLine.addAll(getCompilerOptions(overwrittenVariables)); - - if (!featureConfiguration.isEnabled("compile_action_flags_in_flag_set")) { - // third: The file to compile! - commandLine.add("-c"); - commandLine.add(sourceFile.getExecPathString()); - - // finally: The output file. (Prefixed with -o). - commandLine.add("-o"); - commandLine.add(outputFile.getPathString()); - } - return commandLine; } @@ -116,19 +104,6 @@ public final class CompileCommandLine { addFilteredOptions( options, featureConfiguration.getPerFeatureExpansions(actionName, updatedVariables)); - if (!featureConfiguration.isEnabled("compile_action_flags_in_flag_set")) { - if (FileType.contains(outputFile, CppFileTypes.ASSEMBLER, CppFileTypes.PIC_ASSEMBLER)) { - options.add("-S"); - } else if (FileType.contains( - outputFile, - CppFileTypes.PREPROCESSED_C, - CppFileTypes.PREPROCESSED_CPP, - CppFileTypes.PIC_PREPROCESSED_C, - CppFileTypes.PIC_PREPROCESSED_CPP)) { - options.add("-E"); - } - } - return options; } @@ -174,19 +149,16 @@ public final class CompileCommandLine { public static Builder builder( Artifact sourceFile, - Artifact outputFile, Predicate coptsFilter, String actionName, CppConfiguration cppConfiguration, DotdFile dotdFile) { - return new Builder( - sourceFile, outputFile, coptsFilter, actionName, cppConfiguration, dotdFile); + return new Builder(sourceFile, coptsFilter, actionName, cppConfiguration, dotdFile); } /** A builder for a {@link CompileCommandLine}. */ public static final class Builder { private final Artifact sourceFile; - private final Artifact outputFile; private Predicate coptsFilter; private FeatureConfiguration featureConfiguration; private CcToolchainFeatures.Variables variables = Variables.EMPTY; @@ -197,7 +169,6 @@ public final class CompileCommandLine { public CompileCommandLine build() { return new CompileCommandLine( Preconditions.checkNotNull(sourceFile), - Preconditions.checkNotNull(outputFile), Preconditions.checkNotNull(coptsFilter), Preconditions.checkNotNull(featureConfiguration), Preconditions.checkNotNull(cppConfiguration), @@ -208,13 +179,11 @@ public final class CompileCommandLine { private Builder( Artifact sourceFile, - Artifact outputFile, Predicate coptsFilter, String actionName, CppConfiguration cppConfiguration, DotdFile dotdFile) { this.sourceFile = sourceFile; - this.outputFile = outputFile; this.coptsFilter = coptsFilter; this.actionName = actionName; this.cppConfiguration = cppConfiguration; 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..29a00d0142 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 @@ -70,6 +70,8 @@ public class CppActionConfigs { " implies: 'user_compile_flags'", " implies: 'sysroot'", " implies: 'unfiltered_compile_flags'", + " implies: 'compiler_input_flags'", + " implies: 'compiler_output_flags'", "}", "action_config {", " config_name: 'preprocess-assemble'", @@ -81,6 +83,8 @@ public class CppActionConfigs { " implies: 'user_compile_flags'", " implies: 'sysroot'", " implies: 'unfiltered_compile_flags'", + " implies: 'compiler_input_flags'", + " implies: 'compiler_output_flags'", "}", "action_config {", " config_name: 'c-compile'", @@ -92,6 +96,8 @@ public class CppActionConfigs { " implies: 'user_compile_flags'", " implies: 'sysroot'", " implies: 'unfiltered_compile_flags'", + " implies: 'compiler_input_flags'", + " implies: 'compiler_output_flags'", "}", "action_config {", " config_name: 'c++-compile'", @@ -103,6 +109,8 @@ public class CppActionConfigs { " implies: 'user_compile_flags'", " implies: 'sysroot'", " implies: 'unfiltered_compile_flags'", + " implies: 'compiler_input_flags'", + " implies: 'compiler_output_flags'", "}", "action_config {", " config_name: 'c++-header-parsing'", @@ -114,6 +122,8 @@ public class CppActionConfigs { " implies: 'user_compile_flags'", " implies: 'sysroot'", " implies: 'unfiltered_compile_flags'", + " implies: 'compiler_input_flags'", + " implies: 'compiler_output_flags'", "}", "action_config {", " config_name: 'c++-header-preprocessing'", @@ -125,6 +135,8 @@ public class CppActionConfigs { " implies: 'user_compile_flags'", " implies: 'sysroot'", " implies: 'unfiltered_compile_flags'", + " implies: 'compiler_input_flags'", + " implies: 'compiler_output_flags'", "}", "action_config {", " config_name: 'c++-module-compile'", @@ -136,6 +148,8 @@ public class CppActionConfigs { " implies: 'user_compile_flags'", " implies: 'sysroot'", " implies: 'unfiltered_compile_flags'", + " implies: 'compiler_input_flags'", + " implies: 'compiler_output_flags'", "}", "action_config {", " config_name: 'c++-module-codegen'", @@ -147,6 +161,8 @@ public class CppActionConfigs { " implies: 'user_compile_flags'", " implies: 'sysroot'", " implies: 'unfiltered_compile_flags'", + " implies: 'compiler_input_flags'", + " implies: 'compiler_output_flags'", "}", ifTrue( !existingFeatureNames.contains(CppRuleClasses.LEGACY_COMPILE_FLAGS), @@ -1027,6 +1043,66 @@ public class CppActionConfigs { " flag: '@%{linker_param_file}'", " }", " }", + "}"), + ifTrue( + !existingFeatureNames.contains("compiler_input_flags"), + "feature {", + " name: 'compiler_input_flags'", + " enabled: true", + " flag_set {", + " action: 'assemble'", + " action: 'preprocess-assemble'", + " action: 'c-compile'", + " action: 'c++-compile'", + " action: 'c++-module-compile'", + " action: 'c++-module-codegen'", + " action: 'objc-compile'", + " action: 'objc++-compile'", + " action: 'c++-header-preprocessing'", + " action: 'c++-header-parsing'", + " action: 'lto-backend'", + " expand_if_all_available: 'source_file'", + " flag_group {", + " flag: '-c'", + " flag: '%{source_file}'", + " }", + " }", + "}"), + ifTrue( + !existingFeatureNames.contains("compiler_output_flags"), + "feature {", + " name: 'compiler_output_flags'", + " enabled: true", + " flag_set {", + " action: 'assemble'", + " action: 'preprocess-assemble'", + " action: 'c-compile'", + " action: 'c++-compile'", + " action: 'c++-module-compile'", + " action: 'c++-module-codegen'", + " action: 'objc-compile'", + " action: 'objc++-compile'", + " action: 'c++-header-preprocessing'", + " action: 'c++-header-parsing'", + " action: 'lto-backend'", + " flag_group {", + " expand_if_all_available: 'output_object_file'", + " flag: '-o'", + " flag: '%{output_object_file}'", + " }", + " flag_group {", + " expand_if_all_available: 'output_assembly_file'", + " flag: '-o'", + " flag: '%{output_assembly_file}'", + " flag: '-S'", + " }", + " flag_group {", + " expand_if_all_available: 'output_preprocess_file'", + " flag: '-o'", + " flag: '%{output_preprocess_file}'", + " flag: '-E'", + " }", + " }", "}"))); } 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..735e24ecb8 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 @@ -341,7 +341,6 @@ public class CppCompileAction extends AbstractAction this.compileCommandLine = CompileCommandLine.builder( sourceFile, - outputFile, coptsFilter, actionName, cppConfiguration, @@ -663,7 +662,7 @@ public class CppCompileAction extends AbstractAction @Override public List getCmdlineIncludes() { ImmutableList.Builder cmdlineIncludes = ImmutableList.builder(); - List args = getArgv(); + List args = getArguments(); for (Iterator argi = args.iterator(); argi.hasNext();) { String arg = argi.next(); if (arg.equals("-include") && argi.hasNext()) { @@ -725,21 +724,9 @@ public class CppCompileAction extends AbstractAction return ImmutableMap.copyOf(environment); } - /** - * Returns a new, mutable list of command and arguments (argv) to be passed - * to the gcc subprocess. - */ - public final List getArgv() { - return getArgv(getInternalOutputFile()); - } - @Override public List getArguments() { - return getArgv(); - } - - protected final List getArgv(PathFragment outputFile) { - return compileCommandLine.getArgv(outputFile, overwrittenVariables); + return compileCommandLine.getArguments(overwrittenVariables); } @Override @@ -1100,7 +1087,8 @@ public class CppCompileAction extends AbstractAction public ResourceSet estimateResourceConsumptionLocal() { // We use a local compile, so much of the time is spent waiting for IO, // but there is still significant CPU; hence we estimate 50% cpu usage. - return ResourceSet.createWithRamCpuIo(/*memoryMb=*/200, /*cpuUsage=*/0.5, /*ioUsage=*/0.0); + return ResourceSet.createWithRamCpuIo( + /* memoryMb= */ 200, /* cpuUsage= */ 0.5, /* ioUsage= */ 0.0); } @Override @@ -1117,10 +1105,10 @@ public class CppCompileAction extends AbstractAction // itself is fully determined by the input source files and module maps. // A better long-term solution would be to make the compiler to find them automatically and // never hand in the .pcm files explicitly on the command line in the first place. - f.addStrings(compileCommandLine.getArgv(getInternalOutputFile(), null)); + f.addStrings(compileCommandLine.getArguments(/* overwrittenVariables= */ null)); /* - * getArgv() above captures all changes which affect the compilation + * getArguments() above captures all changes which affect the compilation * command and hence the contents of the object file. But we need to * also make sure that we reexecute the action if any of the fields * that affect whether validateIncludes() will report an error or warning @@ -1348,9 +1336,9 @@ public class CppCompileAction extends AbstractAction message.append(getProgressMessage()); message.append('\n'); // Outputting one argument per line makes it easier to diff the results. - // The first element in getArgv() is actually the command to execute. + // The first element in getArguments() is actually the command to execute. String legend = " Command: "; - for (String argument : ShellEscaper.escapeAll(getArgv())) { + for (String argument : ShellEscaper.escapeAll(getArguments())) { message.append(legend); message.append(argument); message.append('\n'); 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 390aa32254..275c717353 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 @@ -189,13 +189,6 @@ public class CppRuleClasses { */ public static final String RANDOM_SEED = "random_seed"; - /** - * A string constant for the compile_action_flags_in_flag_set feature. This feature is just a - * transitional feature which helps telling whether -c and -o options are already in flag_set of - * action_config in CROSSTOOL file. Once the transition is done, it should be removed. - */ - public static final String COMPILE_ACTION_FLAGS_IN_FLAG_SET = "compile_action_flags_in_flag_set"; - /** * A string constant for the dependency_file feature. This feature generates the .d file. */ diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java index 1daec4300b..24afe83de2 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java @@ -199,14 +199,12 @@ public class FakeCppCompileAction extends CppCompileAction { // line to write to $TEST_TMPDIR instead. final String outputPrefix = "$TEST_TMPDIR/"; String argv = - getArgv(outputFile.getExecPath()) + getArguments() .stream() .map( input -> { String result = ShellEscaper.escapeString(input); - // Once -c and -o options are added into action_config, the argument of - // getArgv(outputFile.getExecPath()) won't be used anymore. There will always be - // -c , but here it has to be outputFile, so we replace it. + // Replace -c so it's -c . if (input.equals(tempOutputFile.getPathString())) { result = outputPrefix + ShellEscaper.escapeString(outputFile.getExecPathString()); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java index f24be92101..cf8612a89e 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java @@ -53,17 +53,18 @@ public class SpawnGccStrategy implements CppCompileActionContext { + action.getPrimaryInput().getExecPathString()); } Iterable inputs = Iterables.concat(action.getInputs(), action.getAdditionalInputs()); - Spawn spawn = new SimpleSpawn( - action, - ImmutableList.copyOf(action.getArgv()), - ImmutableMap.copyOf(action.getEnvironment()), - ImmutableMap.copyOf(action.getExecutionInfo()), - EmptyRunfilesSupplier.INSTANCE, - ImmutableList.copyOf(inputs), - /*tools=*/ImmutableList.of(), - /*filesetManifests=*/ImmutableList.of(), - action.getOutputs().asList(), - action.estimateResourceConsumptionLocal()); + Spawn spawn = + new SimpleSpawn( + action, + ImmutableList.copyOf(action.getArguments()), + ImmutableMap.copyOf(action.getEnvironment()), + ImmutableMap.copyOf(action.getExecutionInfo()), + EmptyRunfilesSupplier.INSTANCE, + ImmutableList.copyOf(inputs), + /* tools= */ ImmutableList.of(), + /* filesetManifests= */ ImmutableList.of(), + action.getOutputs().asList(), + action.estimateResourceConsumptionLocal()); actionExecutionContext .getSpawnActionContext(action.getMnemonic()) diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java index 8241b68cfb..69d071eeee 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java @@ -502,7 +502,6 @@ public class CrosstoolCompilationSupport extends CompilationSupport { .add(CppRuleClasses.COMPILE_ALL_MODULES) .add(CppRuleClasses.EXCLUDE_PRIVATE_HEADERS_IN_MODULE_MAPS) .add(CppRuleClasses.ONLY_DOTH_HEADERS_IN_MODULE_MAPS) - .add(CppRuleClasses.COMPILE_ACTION_FLAGS_IN_FLAG_SET) .add(CppRuleClasses.DEPENDENCY_FILE) .add(CppRuleClasses.INCLUDE_PATHS) .add(isHost ? "host" : "nonhost") 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 0012d76dea..c94b6ef302 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 @@ -1242,6 +1242,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } feature { name: "dbg_only_flag" flag_set { @@ -1328,6 +1380,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -1351,6 +1405,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -1369,6 +1425,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -1387,6 +1445,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -1405,6 +1465,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -1432,6 +1494,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc++-compile" @@ -1460,6 +1524,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "assemble" @@ -1476,6 +1542,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -1494,6 +1562,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" @@ -2969,6 +3039,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } feature { name: "dbg_only_flag" flag_set { @@ -3055,6 +3177,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -3078,6 +3202,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -3096,6 +3222,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -3114,6 +3242,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -3132,6 +3262,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -3159,6 +3291,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc++-compile" @@ -3187,6 +3321,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "assemble" @@ -3203,6 +3339,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -3221,6 +3359,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" @@ -4696,6 +4836,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } feature { name: "dbg_only_flag" flag_set { @@ -4782,6 +4974,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -4805,6 +4999,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -4823,6 +5019,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -4841,6 +5039,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -4859,6 +5059,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -4886,6 +5088,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc++-compile" @@ -4914,6 +5118,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "assemble" @@ -4930,6 +5136,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -4948,6 +5156,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" @@ -6423,6 +6633,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } feature { name: "dbg_only_flag" flag_set { @@ -6509,6 +6771,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -6532,6 +6796,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -6550,6 +6816,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -6568,6 +6836,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -6586,6 +6856,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -6613,6 +6885,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc++-compile" @@ -6641,6 +6915,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "assemble" @@ -6657,6 +6933,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -6675,6 +6953,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" @@ -8158,6 +8438,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } feature { name: "dbg_only_flag" flag_set { @@ -8244,6 +8576,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -8267,6 +8601,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -8285,6 +8621,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -8303,6 +8641,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -8321,6 +8661,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -8348,6 +8690,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_simulator_compiler_flags" } action_config { @@ -8377,6 +8721,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_simulator_compiler_flags" } action_config { @@ -8394,6 +8740,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -8412,6 +8760,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" @@ -9897,6 +10247,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } feature { name: "dbg_only_flag" flag_set { @@ -9983,6 +10385,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -10006,6 +10410,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -10024,6 +10430,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -10042,6 +10450,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -10060,6 +10470,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -10087,6 +10499,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_simulator_compiler_flags" } action_config { @@ -10116,6 +10530,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_simulator_compiler_flags" } action_config { @@ -10133,6 +10549,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -10151,6 +10569,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" @@ -11661,6 +12081,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } feature { name: "dbg_only_flag" flag_set { @@ -11747,6 +12219,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -11771,6 +12245,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -11790,6 +12266,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -11809,6 +12287,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -11828,6 +12308,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -11856,6 +12338,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_simulator_compiler_flags" } action_config { @@ -11885,6 +12369,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_simulator_compiler_flags" } action_config { @@ -11902,6 +12388,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -11921,6 +12409,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -13405,6 +13895,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } feature { name: "dbg_only_flag" flag_set { @@ -13491,6 +14033,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -13514,6 +14058,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -13532,6 +14078,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -13550,6 +14098,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -13568,6 +14118,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -13595,6 +14147,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_simulator_compiler_flags" } action_config { @@ -13624,6 +14178,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_simulator_compiler_flags" } action_config { @@ -13641,6 +14197,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -13659,6 +14217,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" @@ -15164,6 +15724,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } feature { name: "dbg_only_flag" flag_set { @@ -15250,6 +15862,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -15273,6 +15887,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -15291,6 +15907,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -15309,6 +15927,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -15327,6 +15947,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -15354,6 +15976,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc++-compile" @@ -15382,6 +16006,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "assemble" @@ -15398,6 +16024,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -15416,6 +16044,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" @@ -16923,6 +17553,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } feature { name: "dbg_only_flag" flag_set { @@ -17009,6 +17691,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -17032,6 +17716,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -17050,6 +17736,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -17068,6 +17756,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -17086,6 +17776,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -17113,6 +17805,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc++-compile" @@ -17141,6 +17835,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "assemble" @@ -17157,6 +17853,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -17175,6 +17873,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" @@ -18707,6 +19407,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } feature { name: "dbg_only_flag" flag_set { @@ -18793,6 +19545,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -18817,6 +19571,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -18836,6 +19592,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -18855,6 +19613,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -18874,6 +19634,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -18902,6 +19664,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc++-compile" @@ -18930,6 +19694,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "assemble" @@ -18946,6 +19712,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -18965,6 +19733,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -20471,6 +21241,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } feature { name: "dbg_only_flag" flag_set { @@ -20557,6 +21379,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -20580,6 +21404,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -20598,6 +21424,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -20616,6 +21444,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -20634,6 +21464,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -20661,6 +21493,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc++-compile" @@ -20689,6 +21523,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "assemble" @@ -20705,6 +21541,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -20723,6 +21561,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java index 2ff18b4379..a3ab083ba2 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java @@ -369,19 +369,19 @@ public class CcCommonTest extends BuildViewTestCase { " srcs = [ 'library.cc' ],", " nocopts = '-fPIC')"); - assertThat(getCppCompileAction("//a:pic").getArgv()).contains("-fPIC"); - assertThat(getCppCompileAction("//a:libpic.so").getArgv()).contains("-fPIC"); - assertThat(getCppCompileAction("//a:piclib").getArgv()).contains("-fPIC"); - assertThat(getCppCompileAction("//a:nopic").getArgv()).doesNotContain("-fPIC"); - assertThat(getCppCompileAction("//a:libnopic.so").getArgv()).doesNotContain("-fPIC"); - assertThat(getCppCompileAction("//a:nopiclib").getArgv()).doesNotContain("-fPIC"); + assertThat(getCppCompileAction("//a:pic").getArguments()).contains("-fPIC"); + assertThat(getCppCompileAction("//a:libpic.so").getArguments()).contains("-fPIC"); + assertThat(getCppCompileAction("//a:piclib").getArguments()).contains("-fPIC"); + assertThat(getCppCompileAction("//a:nopic").getArguments()).doesNotContain("-fPIC"); + assertThat(getCppCompileAction("//a:libnopic.so").getArguments()).doesNotContain("-fPIC"); + assertThat(getCppCompileAction("//a:nopiclib").getArguments()).doesNotContain("-fPIC"); } @Test public void testPicModeAssembly() throws Exception { useConfiguration("--cpu=k8"); scratch.file("a/BUILD", "cc_library(name='preprocess', srcs=['preprocess.S'])"); - List argv = getCppCompileAction("//a:preprocess").getArgv(); + List argv = getCppCompileAction("//a:preprocess").getArguments(); assertThat(argv).contains("-fPIC"); } diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLineTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLineTest.java index e0fd56322a..93d1c69452 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLineTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLineTest.java @@ -92,7 +92,7 @@ public class CompileCommandLineTest extends BuildViewTestCase { " }", "}")) .build(); - assertThat(compileCommandLine.getArgv(scratchArtifact("a/FakeOutput").getExecPath(), null)) + assertThat(compileCommandLine.getArguments(/* overwrittenVariables= */ null)) .contains("-some_foo_flag"); } @@ -134,13 +134,12 @@ public class CompileCommandLineTest extends BuildViewTestCase { "}")) .setCoptsFilter(flag -> !flag.contains("i_am_a_flag")) .build(); - return compileCommandLine.getArgv(scratchArtifact("a/FakeOutput").getExecPath(), null); + return compileCommandLine.getArguments(/* overwrittenVariables= */ null); } private Builder makeCompileCommandLineBuilder() throws Exception { return CompileCommandLine.builder( scratchArtifact("a/FakeInput"), - scratchArtifact("a/FakeOutput"), new Predicate() { @Override public boolean apply(String s) { diff --git a/tools/cpp/CROSSTOOL b/tools/cpp/CROSSTOOL index 0a96846be1..2588c3a4b7 100644 --- a/tools/cpp/CROSSTOOL +++ b/tools/cpp/CROSSTOOL @@ -673,11 +673,6 @@ toolchain { name: 'random_seed' } - # This feature is just for enabling flag_set in action_config for -c and -o options during the transitional period - feature { - name: 'compile_action_flags_in_flag_set' - } - action_config { config_name: 'c-compile' action_name: 'c-compile' diff --git a/tools/cpp/CROSSTOOL.tpl b/tools/cpp/CROSSTOOL.tpl index f2dff43c63..08a3d8004e 100644 --- a/tools/cpp/CROSSTOOL.tpl +++ b/tools/cpp/CROSSTOOL.tpl @@ -238,11 +238,6 @@ toolchain { } } - # This feature is just for enabling flag_set in action_config for -c and -o options during the transitional period - feature { - name: 'compile_action_flags_in_flag_set' - } - # This feature indicates strip is not supported, building stripped binary will just result a copy of orignial binary feature { name: 'no_stripping' diff --git a/tools/osx/crosstool/CROSSTOOL.tpl b/tools/osx/crosstool/CROSSTOOL.tpl index 8abffa5cd7..3b16480877 100644 --- a/tools/osx/crosstool/CROSSTOOL.tpl +++ b/tools/osx/crosstool/CROSSTOOL.tpl @@ -1128,6 +1128,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } action_config { config_name: "strip" action_name: "strip" @@ -1182,6 +1234,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -1200,6 +1254,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -1218,6 +1274,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -1236,6 +1294,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -1254,6 +1314,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -1268,6 +1330,8 @@ toolchain { flag: "x86_64" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "objc_actions" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" @@ -1298,6 +1362,8 @@ toolchain { flag: "-std=gnu++11" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" implies: "framework_paths" @@ -1327,6 +1393,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -1345,6 +1413,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" @@ -2723,6 +2793,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } action_config { config_name: "strip" action_name: "strip" @@ -2777,6 +2899,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -2795,6 +2919,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -2813,6 +2939,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -2831,6 +2959,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -2849,6 +2979,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -2863,6 +2995,8 @@ toolchain { flag: "x86_64" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "objc_actions" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" @@ -2894,6 +3028,8 @@ toolchain { flag: "-std=gnu++11" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" implies: "framework_paths" @@ -2924,6 +3060,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -2942,6 +3080,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" @@ -4322,6 +4462,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } action_config { config_name: "strip" action_name: "strip" @@ -4376,6 +4568,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -4394,6 +4588,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -4412,6 +4608,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -4430,6 +4628,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -4448,6 +4648,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -4462,6 +4664,8 @@ toolchain { flag: "i386" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "objc_actions" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" @@ -4493,6 +4697,8 @@ toolchain { flag: "-std=gnu++11" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" implies: "framework_paths" @@ -4523,6 +4729,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -4541,6 +4749,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" @@ -5943,6 +6153,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } action_config { config_name: "strip" action_name: "strip" @@ -5997,6 +6259,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -6016,6 +6280,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -6035,6 +6301,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -6054,6 +6322,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -6073,6 +6343,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -6088,6 +6360,8 @@ toolchain { flag: "x86_64" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "objc_actions" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" @@ -6119,6 +6393,8 @@ toolchain { flag: "-std=gnu++11" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" implies: "framework_paths" @@ -6149,6 +6425,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -6168,6 +6446,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -7549,6 +7829,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } action_config { config_name: "strip" action_name: "strip" @@ -7603,6 +7935,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -7621,6 +7955,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -7639,6 +7975,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -7657,6 +7995,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -7675,6 +8015,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -7689,6 +8031,8 @@ toolchain { flag: "i386" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "objc_actions" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" @@ -7720,6 +8064,8 @@ toolchain { flag: "-std=gnu++11" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" implies: "framework_paths" @@ -7750,6 +8096,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -7768,6 +8116,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" @@ -9136,6 +9486,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } action_config { config_name: "strip" action_name: "strip" @@ -9190,6 +9592,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -9208,6 +9612,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -9226,6 +9632,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -9244,6 +9652,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -9262,6 +9672,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -9276,6 +9688,8 @@ toolchain { flag: "armv7" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "objc_actions" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" @@ -9306,6 +9720,8 @@ toolchain { flag: "-std=gnu++11" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" implies: "framework_paths" @@ -9335,6 +9751,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -9353,6 +9771,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" @@ -10723,6 +11143,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } action_config { config_name: "strip" action_name: "strip" @@ -10777,6 +11249,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -10795,6 +11269,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -10813,6 +11289,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -10831,6 +11309,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -10849,6 +11329,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -10863,6 +11345,8 @@ toolchain { flag: "armv7k" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "objc_actions" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" @@ -10893,6 +11377,8 @@ toolchain { flag: "-std=gnu++11" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" implies: "framework_paths" @@ -10922,6 +11408,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -10940,6 +11428,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" @@ -12332,6 +12822,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } action_config { config_name: "strip" action_name: "strip" @@ -12386,6 +12928,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -12405,6 +12949,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -12424,6 +12970,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -12443,6 +12991,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -12462,6 +13012,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -12477,6 +13029,8 @@ toolchain { flag: "arm64" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "objc_actions" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" @@ -12507,6 +13061,8 @@ toolchain { flag: "-std=gnu++11" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" implies: "framework_paths" @@ -12536,6 +13092,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -12555,6 +13113,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "unfiltered_cxx_flags" } action_config { @@ -13926,6 +14486,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } action_config { config_name: "strip" action_name: "strip" @@ -13980,6 +14592,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -13998,6 +14612,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -14016,6 +14632,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -14034,6 +14652,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -14052,6 +14672,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -14066,6 +14688,8 @@ toolchain { flag: "arm64" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "objc_actions" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" @@ -14096,6 +14720,8 @@ toolchain { flag: "-std=gnu++11" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" implies: "framework_paths" @@ -14125,6 +14751,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -14143,6 +14771,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" @@ -15517,6 +16147,58 @@ toolchain { expand_if_all_available: "linker_param_file" } } + feature { + name: "compiler_input_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-c" + flag: "%{source_file}" + } + expand_if_all_available: "source_file" + } + } + feature { + name: "compiler_output_flags" + flag_set { + action: "assemble" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "c++-module-codegen" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-o" + flag: "%{output_object_file}" + expand_if_all_available: "output_object_file" + } + flag_group { + flag: "-o" + flag: "%{output_assembly_file}" + flag: "-S" + expand_if_all_available: "output_assembly_file" + } + flag_group { + flag: "-o" + flag: "%{output_preprocess_file}" + flag: "-E" + expand_if_all_available: "output_preprocess_file" + } + } + } action_config { config_name: "strip" action_name: "strip" @@ -15571,6 +16253,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-compile" @@ -15589,6 +16273,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-module-compile" @@ -15607,6 +16293,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-parsing" @@ -15625,6 +16313,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "c++-header-preprocessing" @@ -15643,6 +16333,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-compile" @@ -15657,6 +16349,8 @@ toolchain { flag: "" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "objc_actions" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" @@ -15687,6 +16381,8 @@ toolchain { flag: "-std=gnu++11" } } + implies: "compiler_input_flags" + implies: "compiler_output_flags" implies: "apply_default_compiler_flags" implies: "apply_default_warnings" implies: "framework_paths" @@ -15716,6 +16412,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "preprocess-assemble" @@ -15734,6 +16432,8 @@ toolchain { implies: "user_compile_flags" implies: "sysroot" implies: "unfiltered_compile_flags" + implies: "compiler_input_flags" + implies: "compiler_output_flags" } action_config { config_name: "objc-archive" -- cgit v1.2.3