diff options
author | David Chen <dzc@google.com> | 2016-02-10 12:52:11 +0000 |
---|---|---|
committer | Dmitry Lomov <dslomov@google.com> | 2016-02-10 16:34:46 +0000 |
commit | ea02b8a51fc924755971f78e392100b50d8dc5a2 (patch) | |
tree | 54ed40e7e37fa90ce0a4e7d44fb1566e7c147176 /src/main/java/com/google/devtools/build/lib/rules/python/PyLibrary.java | |
parent | 847a41816c08b846e09c62834f28fbbcb08d5d6d (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.java | 8 |
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(); } } |