diff options
author | 2018-02-14 05:09:15 -0800 | |
---|---|---|
committer | 2018-02-14 05:10:36 -0800 | |
commit | 0f9c6ea574918dda094cf5423fa3822112846c30 (patch) | |
tree | 52b1deea8f09ef9ed23fd68589a227f8f14c412f /src/main/java/com/google/devtools/build/lib/rules/python | |
parent | b4545ba2b1aa4079b09a346a6d441ffa1e1b7d20 (diff) |
Make __init__.py files creation optional
Introduce a new attribute to py_binary and py_test to control whether to
create `__init__.py` or not.
Fixes https://github.com/bazelbuild/rules_python/issues/55
Closes #4470.
PiperOrigin-RevId: 185672243
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/PyBinary.java | 7 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/python/PyLibrary.java | 1 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyBinary.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyBinary.java index e0706923f2..b2ef88db97 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/python/PyBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyBinary.java @@ -27,6 +27,7 @@ import com.google.devtools.build.lib.rules.cpp.CcCommon.CcFlagsSupplier; import com.google.devtools.build.lib.rules.cpp.CcLinkParams; import com.google.devtools.build.lib.rules.cpp.CcLinkParamsInfo; import com.google.devtools.build.lib.rules.cpp.CcLinkParamsStore; +import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.vfs.PathFragment; import java.util.ArrayList; import java.util.List; @@ -140,7 +141,11 @@ public abstract class PyBinary implements RuleConfiguredTargetFactory { } semantics.collectDefaultRunfiles(ruleContext, builder); builder.add(ruleContext, PythonRunfilesProvider.TO_RUNFILES); - builder.setEmptyFilesSupplier(PythonUtils.GET_INIT_PY_FILES); + + if (!ruleContext.attributes().has("legacy_create_init", Type.BOOLEAN) + || ruleContext.attributes().get("legacy_create_init", Type.BOOLEAN)) { + builder.setEmptyFilesSupplier(PythonUtils.GET_INIT_PY_FILES); + } semantics.collectRunfilesForBinary(ruleContext, builder, common); return builder.build(); } 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 adc0ccae37..f41d99baca 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 @@ -83,7 +83,6 @@ public abstract class PyLibrary implements RuleConfiguredTargetFactory { } else { runfilesBuilder.addTransitiveArtifacts(filesToBuild); } - runfilesBuilder.setEmptyFilesSupplier(PythonUtils.GET_INIT_PY_FILES); runfilesBuilder.add(ruleContext, PythonRunfilesProvider.TO_RUNFILES); runfilesBuilder.addRunfiles(ruleContext, RunfilesProvider.DEFAULT_RUNFILES); |