aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2016-06-17 06:04:28 +0000
committerGravatar Yue Gan <yueg@google.com>2016-06-17 09:27:53 +0000
commitff1332d336cd4d54a0ba848f3a75d0532da3e36d (patch)
tree08bc3748d74d4fee6ef863296ba792842179aa45 /src/main/java/com/google
parent807062028f795171e460cb7ad9197727cfb0afe1 (diff)
Remove BuildConfiguration.addRoots() and the pregrepped includes directory.
This is to simplify the contract of BuildConfiguration.Fragment, thus making it simpler to create BuildConfigurations without unnecessary fragments and eventually create configuration fragments from Skylark. -- MOS_MIGRATED_REVID=125137625
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppSemantics.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppSemantics.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCppSemantics.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/util/IncludeScanningUtil.java50
6 files changed, 8 insertions, 88 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
index 364cbd571f..c37bac45f5 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
@@ -165,13 +165,6 @@ public final class BuildConfiguration {
}
/**
- * Adds all the roots from this fragment.
- */
- @SuppressWarnings("unused")
- public void addRoots(List<Root> roots) {
- }
-
- /**
* Returns a (key, value) mapping to insert into the subcommand environment for coverage.
*/
public Map<String, String> getCoverageEnvironment() {
@@ -2346,11 +2339,6 @@ public final class BuildConfiguration {
roots.add(getMiddlemanDirectory());
roots.add(getTestLogsDirectory());
- // Fragment-defined roots
- for (Fragment fragment : fragments.values()) {
- fragment.addRoots(roots);
- }
-
return ImmutableList.copyOf(roots);
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppSemantics.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppSemantics.java
index 4c50b3a1ae..0adc66d244 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppSemantics.java
@@ -15,7 +15,6 @@
package com.google.devtools.build.lib.bazel.rules.cpp;
import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.actions.Root;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.rules.cpp.CppCompilationContext.Builder;
import com.google.devtools.build.lib.rules.cpp.CppCompileActionBuilder;
@@ -64,9 +63,4 @@ public class BazelCppSemantics implements CppSemantics {
public boolean needsIncludeScanning(RuleContext ruleContext) {
return false;
}
-
- @Override
- public Root getGreppedIncludesDirectory(RuleContext ruleContext) {
- return null;
- }
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java
index f554eb9c34..fe99b08ae3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java
@@ -20,7 +20,6 @@ import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.MiddlemanFactory;
-import com.google.devtools.build.lib.actions.Root;
import com.google.devtools.build.lib.analysis.AnalysisEnvironment;
import com.google.devtools.build.lib.analysis.AnalysisUtils;
import com.google.devtools.build.lib.analysis.FileProvider;
@@ -41,7 +40,6 @@ import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType;
import com.google.devtools.build.lib.shell.ShellUtils;
import com.google.devtools.build.lib.syntax.Type;
import com.google.devtools.build.lib.util.FileTypeSet;
-import com.google.devtools.build.lib.util.IncludeScanningUtil;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.LipoMode;
@@ -60,6 +58,8 @@ import javax.annotation.Nullable;
* <p>This class can be used only after the loading phase.
*/
public class CppHelper {
+ private static final String GREPPED_INCLUDES_SUFFIX = ".includes";
+
// TODO(bazel-team): should this use Link.SHARED_LIBRARY_FILETYPES?
public static final FileTypeSet SHARED_LIBRARY_FILETYPES = FileTypeSet.of(
CppFileTypes.SHARED_LIBRARY,
@@ -300,7 +300,7 @@ public class CppHelper {
&& semantics.needsIncludeScanning(ruleContext)
&& !prerequisite.isSourceArtifact()
&& CPP_FILETYPES.matches(prerequisite.getFilename())) {
- Artifact scanned = getIncludesOutput(ruleContext, semantics, prerequisite);
+ Artifact scanned = getIncludesOutput(ruleContext, prerequisite);
ruleContext.registerAction(
new ExtractInclusionAction(ruleContext.getActionOwner(), prerequisite, scanned));
return scanned;
@@ -308,11 +308,11 @@ public class CppHelper {
return null;
}
- private static Artifact getIncludesOutput(
- RuleContext ruleContext, CppSemantics semantics, Artifact src) {
- Root root = semantics.getGreppedIncludesDirectory(ruleContext);
- PathFragment relOut = IncludeScanningUtil.getRootRelativeOutputPath(src.getExecPath());
- return ruleContext.getShareableArtifact(relOut, root);
+ private static Artifact getIncludesOutput(RuleContext ruleContext, Artifact src) {
+ Preconditions.checkArgument(!src.isSourceArtifact(), src);
+ return ruleContext.getShareableArtifact(
+ src.getRootRelativePath().replaceName(src.getFilename() + GREPPED_INCLUDES_SUFFIX),
+ src.getRoot());
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppSemantics.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppSemantics.java
index cc726a51f5..f492223447 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppSemantics.java
@@ -15,7 +15,6 @@
package com.google.devtools.build.lib.rules.cpp;
import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.actions.Root;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.rules.cpp.CppConfiguration.HeadersCheckingMode;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -59,9 +58,4 @@ public interface CppSemantics {
* in the action graph.
*/
boolean needsIncludeScanning(RuleContext ruleContext);
-
- /**
- * Returns the configuration-independent grepped-includes directory.
- */
- Root getGreppedIncludesDirectory(RuleContext ruleContext);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCppSemantics.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCppSemantics.java
index 8c339323e9..09eae5edc4 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCppSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCppSemantics.java
@@ -18,7 +18,6 @@ import static com.google.devtools.build.lib.rules.objc.ObjcProvider.DYNAMIC_FRAM
import static com.google.devtools.build.lib.rules.objc.ObjcProvider.STATIC_FRAMEWORK_FILE;
import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.actions.Root;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.rules.cpp.CppCompilationContext.Builder;
import com.google.devtools.build.lib.rules.cpp.CppCompileActionBuilder;
@@ -81,9 +80,4 @@ public class ObjcCppSemantics implements CppSemantics {
public boolean needsIncludeScanning(RuleContext ruleContext) {
return false;
}
-
- @Override
- public Root getGreppedIncludesDirectory(RuleContext ruleContext) {
- return null;
- }
}
diff --git a/src/main/java/com/google/devtools/build/lib/util/IncludeScanningUtil.java b/src/main/java/com/google/devtools/build/lib/util/IncludeScanningUtil.java
deleted file mode 100644
index 753e50fe48..0000000000
--- a/src/main/java/com/google/devtools/build/lib/util/IncludeScanningUtil.java
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2014 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.util;
-
-import com.google.devtools.build.lib.vfs.PathFragment;
-
-/**
- * Static utilities for include scanning.
- */
-public class IncludeScanningUtil {
- private IncludeScanningUtil() {
- }
-
- private static final String INCLUDES_SUFFIX = ".includes";
-
- public static PathFragment getGreppedIncludes(String productName) {
- return new PathFragment(productName + "-out/_grepped_includes");
- }
-
- /**
- * Returns the exec-root relative output path for grepped includes.
- *
- * @param srcExecPath the exec-root relative path of the source file.
- */
- public static PathFragment getExecRootRelativeOutputPath(PathFragment srcExecPath,
- String productName) {
- return getGreppedIncludes(productName).getRelative(getRootRelativeOutputPath(srcExecPath));
- }
-
- /**
- * Returns the root relative output path for grepped includes.
- *
- * @param srcExecPath the exec-root relative path of the source file.
- */
- public static PathFragment getRootRelativeOutputPath(PathFragment srcExecPath) {
- return srcExecPath.replaceName(srcExecPath.getBaseName() + INCLUDES_SUFFIX);
- }
-}