aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/python/PyLibrary.java
diff options
context:
space:
mode:
authorGravatar David Chen <dzc@google.com>2016-02-10 12:52:11 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-02-10 16:34:46 +0000
commitea02b8a51fc924755971f78e392100b50d8dc5a2 (patch)
tree54ed40e7e37fa90ce0a4e7d44fb1566e7c147176 /src/main/java/com/google/devtools/build/lib/rules/python/PyLibrary.java
parent847a41816c08b846e09c62834f28fbbcb08d5d6d (diff)
Add imports attribute to Bazel native Python rules to allow adding directories to PYTHONPATH.
Fixes #702 RELNOTES: Add imports attribute to native Python rules. -- MOS_MIGRATED_REVID=114314430
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/python/PyLibrary.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/python/PyLibrary.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyLibrary.java
index eb2e9314c7..95f4c8364e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PyLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyLibrary.java
@@ -27,6 +27,7 @@ import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory;
import com.google.devtools.build.lib.rules.cpp.CcLinkParams;
import com.google.devtools.build.lib.rules.cpp.CcLinkParamsProvider;
import com.google.devtools.build.lib.rules.cpp.CcLinkParamsStore;
+import com.google.devtools.build.lib.vfs.PathFragment;
import java.util.ArrayList;
import java.util.List;
@@ -50,7 +51,6 @@ public abstract class PyLibrary implements RuleConfiguredTargetFactory {
common.validatePackageName();
semantics.validate(ruleContext, common);
-
List<Artifact> srcs = common.validateSrcs();
List<Artifact> allOutputs =
new ArrayList<>(semantics.precompiledPythonFiles(ruleContext, srcs, common));
@@ -69,6 +69,11 @@ public abstract class PyLibrary implements RuleConfiguredTargetFactory {
}
};
+ NestedSet<PathFragment> imports = common.collectImports(ruleContext, semantics);
+ if (ruleContext.hasErrors()) {
+ return null;
+ }
+
Runfiles.Builder runfilesBuilder = new Runfiles.Builder(ruleContext.getWorkspaceName());
if (common.getConvertedFiles() != null) {
runfilesBuilder.addSymlinks(common.getConvertedFiles());
@@ -85,6 +90,7 @@ public abstract class PyLibrary implements RuleConfiguredTargetFactory {
.setFilesToBuild(filesToBuild)
.add(RunfilesProvider.class, RunfilesProvider.simple(runfilesBuilder.build()))
.add(CcLinkParamsProvider.class, new CcLinkParamsProvider(ccLinkParamsStore))
+ .add(PythonImportsProvider.class, new PythonImportsProvider(imports))
.build();
}
}