aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Yun Peng <pcloudy@google.com>2016-06-10 11:34:23 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-06-10 12:37:20 +0000
commit0150e7fa5963fa569d9795c02fd3afe3c52ff30c (patch)
tree3b819c89b0899c65a9d16d4dee527afa2ac3df36 /src
parent2076c30158a45d14182743fe09d69769b2404432 (diff)
*** Reason for rollback *** -- MOS_MIGRATED_REVID=124549894
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java32
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java1
7 files changed, 17 insertions, 53 deletions
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 8ccd6e1dea..a83f9b85ec 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
@@ -83,7 +83,6 @@ public final class CcCommon {
* Features we request to enable unless a rule explicitly doesn't support them.
*/
private static final ImmutableSet<String> DEFAULT_FEATURES = ImmutableSet.of(
- CppRuleClasses.DEPENDENCY_FILE,
CppRuleClasses.COMPILE_ACTION_FLAGS_IN_FLAG_SET,
CppRuleClasses.RANDOM_SEED,
CppRuleClasses.MODULE_MAPS,
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 b2ca7a23b7..86ab21f09a 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
@@ -1340,6 +1340,22 @@ public class CppCompileAction extends AbstractAction
}
}
+ // Enable <object>.d file generation.
+ if (dotdFile != null) {
+ // Gcc options:
+ // -MD turns on .d file output as a side-effect (doesn't imply -E)
+ // -MM[D] enables user includes only, not system includes
+ // -MF <name> specifies the dotd file name
+ // Issues:
+ // -M[M] alone subverts actual .o output (implies -E)
+ // -M[M]D alone breaks some of the .d naming assumptions
+ // This combination gets user and system includes with specified name:
+ // -MD -MF <name>
+ options.add("-MD");
+ options.add("-MF");
+ options.add(dotdFile.getSafeExecPath().getPathString());
+ }
+
if (!featureConfiguration.isEnabled("compile_action_flags_in_flag_set")) {
if (FileType.contains(outputFile, CppFileTypes.ASSEMBLER, CppFileTypes.PIC_ASSEMBLER)) {
options.add("-S");
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
index 015d76d6a9..1997dc84a2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
@@ -426,10 +426,6 @@ public class CppCompileActionBuilder {
return this;
}
- public DotdFile getDotdFile() {
- return this.dotdFile;
- }
-
public CppCompileActionBuilder setGcnoFile(Artifact gcnoFile) {
this.gcnoFile = gcnoFile;
return this;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
index 3c4ac5f3c0..07e87246ee 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
@@ -692,38 +692,6 @@ public class CppConfiguration extends BuildConfiguration.Fragment {
return toolchain;
}
try {
- if (!features.contains("dependency_file")) {
- // Gcc options:
- // -MD turns on .d file output as a side-effect (doesn't imply -E)
- // -MM[D] enables user includes only, not system includes
- // -MF <name> specifies the dotd file name
- // Issues:
- // -M[M] alone subverts actual .o output (implies -E)
- // -M[M]D alone breaks some of the .d naming assumptions
- // This combination gets user and system includes with specified name:
- // -MD -MF <name>
- TextFormat.merge(""
- + "feature {"
- + " name: 'dependency_file'"
- + " flag_set {"
- + " action: 'assemble'"
- + " action: 'preprocess-assemble'"
- + " action: 'c-compile'"
- + " action: 'c++-compile'"
- + " action: 'c++-module-compile'"
- + " action: 'objc-compile'"
- + " action: 'objc++-compile'"
- + " expand_if_all_available: 'dependency_file'"
- + " flag_group {"
- + " flag: '-MD'"
- + " flag: '-MF'"
- + " flag: '%{dependency_file}'"
- + " }"
- + " }"
- + "}",
- toolchainBuilder);
- }
-
if (!features.contains("random_seed")) {
// GCC and Clang give randomized names to symbols which are defined in
// an anonymous namespace but have external linkage. To make
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java
index 2569b4d9ea..1f2d45f6a2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java
@@ -29,7 +29,6 @@ import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.rules.cpp.CcCompilationOutputs.Builder;
import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration;
import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables.VariablesExtension;
-import com.google.devtools.build.lib.rules.cpp.CppCompileAction.DotdFile;
import com.google.devtools.build.lib.rules.cpp.Link.LinkStaticness;
import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType;
import com.google.devtools.build.lib.rules.cpp.LinkerInputs.LibraryToLink;
@@ -370,11 +369,10 @@ public final class CppModel {
CppCompilationContext builderContext = builder.getContext();
CppModuleMap cppModuleMap = builderContext.getCppModuleMap();
- Artifact sourceFile = builder.getSourceFile();
Artifact outputFile = builder.getOutputFile();
String realOutputFilePath;
- buildVariables.addVariable("source_file", sourceFile.getExecPathString());
+ buildVariables.addVariable("source_file", builder.getSourceFile().getExecPathString());
buildVariables.addVariable("output_file", outputFile.getExecPathString());
if (fake) {
@@ -393,13 +391,6 @@ public final class CppModel {
buildVariables.addVariable("output_object_file", realOutputFilePath);
}
- DotdFile dotdFile = CppFileTypes.mustProduceDotdFile(sourceFile.getPath().toString())
- ? Preconditions.checkNotNull(builder.getDotdFile()) : null;
- // Set dependency_file to enable <object>.d file generation.
- if (dotdFile != null) {
- buildVariables.addVariable("dependency_file", dotdFile.getSafeExecPath().getPathString());
- }
-
if (featureConfiguration.isEnabled(CppRuleClasses.MODULE_MAPS) && cppModuleMap != null) {
// If the feature is enabled and cppModuleMap is null, we are about to fail during analysis
// in any case, but don't crash.
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 d8987bb8ec..3a2add3f32 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
@@ -109,11 +109,6 @@ public class CppRuleClasses {
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.
- */
- public static final String DEPENDENCY_FILE = "dependency_file";
-
- /**
* A string constant for the module_map_home_cwd feature.
*/
public static final String MODULE_MAP_HOME_CWD = "module_map_home_cwd";
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java
index e6a720b619..deee358f1f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java
@@ -169,7 +169,6 @@ public class ExperimentalObjcLibrary implements RuleConfiguredTargetFactory {
// We create a module map by default to allow for swift interop.
activatedCrosstoolSelectables.add(CppRuleClasses.MODULE_MAPS);
activatedCrosstoolSelectables.add(CppRuleClasses.COMPILE_ACTION_FLAGS_IN_FLAG_SET);
- activatedCrosstoolSelectables.add(CppRuleClasses.DEPENDENCY_FILE);
return toolchain.getFeatures().getFeatureConfiguration(activatedCrosstoolSelectables.build());
}