From 177ec024dc21e78948cb9fe032df36c07a632d01 Mon Sep 17 00:00:00 2001 From: Googler Date: Thu, 4 Feb 2016 12:31:37 +0000 Subject: -- MOS_MIGRATED_REVID=113835948 --- .../com/google/devtools/build/lib/rules/python/PyCommon.java | 12 +++++++++++- .../google/devtools/build/lib/rules/python/PyLibrary.java | 2 ++ 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'src/main') 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 srcs = common.validateSrcs(); List allOutputs = -- cgit v1.2.3