aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2018-03-27 14:17:44 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-27 14:19:17 -0700
commitaf1fb45d2273830f6efca2fbaf61fce0d8744bf5 (patch)
tree59cd1d21a5f4328bedf730f21196f4cee8191e0d /src/main/java/com/google/devtools/build/lib
parent2b14d358efd0fd6470df8c311e7b8e8836132b1e (diff)
Expose j2objc.dead_code_report as a configuration field instead of a basic struct field on the j2objc fragment.
RELNOTES: None. PiperOrigin-RevId: 190672475
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkLateBoundDefault.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/skylark/annotations/SkylarkConfigurationField.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/BUILD1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java7
4 files changed, 9 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkLateBoundDefault.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkLateBoundDefault.java
index 2b22fe83e6..52d316259e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkLateBoundDefault.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkLateBoundDefault.java
@@ -71,6 +71,9 @@ public class SkylarkLateBoundDefault<FragmentT> extends AbstractLabelLateBoundDe
*/
private static Label getDefaultLabel(
SkylarkConfigurationField annotation, String toolsRepository) {
+ if (annotation.defaultLabel().isEmpty()) {
+ return null;
+ }
Label defaultLabel = annotation.defaultInToolRepository()
? Label.parseAbsoluteUnchecked(toolsRepository + annotation.defaultLabel())
: Label.parseAbsoluteUnchecked(annotation.defaultLabel());
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/annotations/SkylarkConfigurationField.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/annotations/SkylarkConfigurationField.java
index 887cedae4e..6e72e317b8 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/annotations/SkylarkConfigurationField.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/annotations/SkylarkConfigurationField.java
@@ -47,7 +47,7 @@ public @interface SkylarkConfigurationField {
* <p>If the default label is under the tools repository, omit the tools repository prefix
* from this default, but set {@link #defaultInToolRepository} to true.</p>
*/
- String defaultLabel();
+ String defaultLabel() default "";
/**
* Whether the default label as defined in {@link #defaultLabel} should be prefixed with
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/BUILD b/src/main/java/com/google/devtools/build/lib/rules/objc/BUILD
index 73dfd7c8f5..371c58903a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/BUILD
@@ -23,6 +23,7 @@ java_library(
"//src/main/java/com/google/devtools/build/lib:util",
"//src/main/java/com/google/devtools/build/lib/actions",
"//src/main/java/com/google/devtools/build/lib/analysis/platform",
+ "//src/main/java/com/google/devtools/build/lib/analysis/skylark/annotations",
"//src/main/java/com/google/devtools/build/lib/collect",
"//src/main/java/com/google/devtools/build/lib/collect/nestedset",
"//src/main/java/com/google/devtools/build/lib/concurrent",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java
index f57e901765..82ac947a8c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java
@@ -22,12 +22,12 @@ import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.ConfigurationEnvironment;
import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
+import com.google.devtools.build.lib.analysis.skylark.annotations.SkylarkConfigurationField;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
-import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import java.util.Collections;
@@ -143,10 +143,11 @@ public class J2ObjcConfiguration extends Fragment {
* Returns null if no such report was requested.
*/
@Nullable
- @SkylarkCallable(name = "dead_code_report", structField = true,
+ @SkylarkConfigurationField(
+ name = "dead_code_report",
doc = "The label of the dead code report generated by ProGuard for dead code elimination, "
+ "or <code>None</code> if no such report was requested.",
- allowReturnNones = true)
+ defaultLabel = "")
public Label deadCodeReport() {
return deadCodeReport;
}