aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/python
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-02-04 12:31:37 +0000
committerGravatar David Chen <dzc@google.com>2016-02-04 18:14:24 +0000
commit177ec024dc21e78948cb9fe032df36c07a632d01 (patch)
treefb196bfa9fd912d210bcbdaf864c32142eda265e /src/main/java/com/google/devtools/build/lib/rules/python
parentdae6da99906e39a3ad45494f7931ef12e36eeb8b (diff)
--
MOS_MIGRATED_REVID=113835948
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/python')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/python/PyLibrary.java2
2 files changed, 13 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
index a1673bb6f6..969955f55a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
@@ -34,6 +34,7 @@ import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.Util;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
@@ -381,7 +382,9 @@ public final class PyCommon {
for (Artifact source : sources) {
Artifact pycFile = createPycFile(source, pythonBinary, pythonPrecompileAttribute,
hostPython2RuntimeAttribute);
- pycFiles.add(pycFile);
+ if (pycFile != null) {
+ pycFiles.add(pycFile);
+ }
}
return ImmutableList.copyOf(pycFiles);
}
@@ -394,6 +397,13 @@ public final class PyCommon {
public Artifact createPycFile(
Artifact source, PathFragment pythonBinary,
String pythonPrecompileAttribute, String hostPython2RuntimeAttribute) {
+ PackageIdentifier packageId = ruleContext.getLabel().getPackageIdentifier();
+ PackageIdentifier itemPackageId = source.getOwner().getPackageIdentifier();
+ if (!itemPackageId.equals(packageId)) {
+ // This will produce an error, so we skip this element.
+ return null;
+ }
+
Artifact output =
ruleContext.getRelatedArtifact(source.getRootRelativePath(), ".pyc");
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 1de2be734d..eb2e9314c7 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
@@ -48,6 +48,8 @@ public abstract class PyLibrary implements RuleConfiguredTargetFactory {
PyCommon common = new PyCommon(ruleContext);
common.initCommon(common.getDefaultPythonVersion());
common.validatePackageName();
+ semantics.validate(ruleContext, common);
+
List<Artifact> srcs = common.validateSrcs();
List<Artifact> allOutputs =