Enable load() statement in the WORKSPACE file.
RELNOTES[NEW]: Skylark macros are now enabled in WORKSPACE file.
Design document at https://docs.google.com/document/d/1jKbNXOVp2T1zJD_iRnVr8k5D0xZKgO8blMVDlXOksJg/preview
Fixes #337
--
MOS_MIGRATED_REVID=108860301
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index 579e060..a9ad155 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -688,6 +688,16 @@
}
/**
+ * Derive a LegacyBuilder from a normal Builder.
+ */
+ LegacyBuilder(Builder builder) {
+ super(builder.pkg);
+ if (builder.getFilename() != null) {
+ setFilename(builder.getFilename());
+ }
+ }
+
+ /**
* Sets the globber used for this package's glob expansions.
*/
LegacyBuilder setGlobber(Globber globber) {
@@ -717,8 +727,8 @@
}
}
- public static Builder newExternalPackageBuilder(Path workspacePath, String runfilesPrefix) {
- Builder b = new Builder(new Package(EXTERNAL_PACKAGE_IDENTIFIER, runfilesPrefix));
+ public static LegacyBuilder newExternalPackageBuilder(Path workspacePath, String runfilesPrefix) {
+ LegacyBuilder b = new LegacyBuilder(EXTERNAL_PACKAGE_IDENTIFIER, runfilesPrefix);
b.setFilename(workspacePath);
b.setMakeEnv(new MakeEnvironment.Builder());
return b;
@@ -799,6 +809,11 @@
return pkg.getPackageIdentifier();
}
+ /** Determine if we are in the WORKSPACE file or not */
+ public boolean isWorkspace() {
+ return pkg.getPackageIdentifier().equals(EXTERNAL_PACKAGE_IDENTIFIER);
+ }
+
/**
* Sets the name of this package's BUILD file.
*/