diff options
author | 2018-03-19 13:15:59 -0700 | |
---|---|---|
committer | 2018-03-19 13:17:39 -0700 | |
commit | bff4ac081bd80f227cc0c3027f67e306d35699fa (patch) | |
tree | b5af2374b8fb6f2cb011005716b57b0ac701030c /src/main/java/com/google/devtools/build/lib | |
parent | 6590914692db2c4ee7d582d90b28dd1b11bfaa79 (diff) |
Expose the j2objc configuration fragment, with field dead_code_report, matching build flag --j2objc_dead_code_report.
RELNOTES: The 'j2objc' configuration fragment is exposed to Skylark.
PiperOrigin-RevId: 189630012
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java | 2 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java | 25 |
2 files changed, 21 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java index 5a65d0b48e..3870556daa 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java @@ -111,7 +111,7 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF LabelLateBoundDefault.fromTargetConfiguration( J2ObjcConfiguration.class, null, - (rule, attributes, j2objcConfig) -> j2objcConfig.deadCodeReport().orNull()); + (rule, attributes, j2objcConfig) -> j2objcConfig.deadCodeReport()); /** Adds additional attribute aspects and attributes to the given AspectDefinition.Builder. */ protected AspectDefinition.Builder addAdditionalAttributes(AspectDefinition.Builder builder) { 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 d71ce599c9..f57e901765 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 @@ -15,7 +15,6 @@ package com.google.devtools.build.lib.rules.objc; import com.google.common.base.Joiner; -import com.google.common.base.Optional; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.devtools.build.lib.analysis.config.BuildConfiguration.Fragment; @@ -28,8 +27,12 @@ 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; import java.util.List; +import javax.annotation.Nullable; /** * A J2ObjC transpiler configuration fragment containing J2ObjC translation flags. This @@ -38,6 +41,11 @@ import java.util.List; */ @AutoCodec @Immutable +@SkylarkModule( + name = "j2objc", + category = SkylarkModuleCategory.CONFIGURATION_FRAGMENT, + doc = "A configuration fragment for j2Objc." +) public class J2ObjcConfiguration extends Fragment { /** * Always-on flags for J2ObjC translation. These flags are always used when invoking the J2ObjC @@ -91,7 +99,7 @@ public class J2ObjcConfiguration extends Fragment { private final List<String> translationFlags; private final boolean removeDeadCode; private final boolean experimentalJ2ObjcHeaderMap; - private final Optional<Label> deadCodeReport; + @Nullable private final Label deadCodeReport; J2ObjcConfiguration(J2ObjcCommandLineOptions j2ObjcOptions) { this( @@ -102,7 +110,7 @@ public class J2ObjcConfiguration extends Fragment { .build(), j2ObjcOptions.removeDeadCode, j2ObjcOptions.experimentalJ2ObjcHeaderMap, - Optional.fromNullable(j2ObjcOptions.deadCodeReport)); + j2ObjcOptions.deadCodeReport); } @AutoCodec.Instantiator @@ -110,7 +118,7 @@ public class J2ObjcConfiguration extends Fragment { List<String> translationFlags, boolean removeDeadCode, boolean experimentalJ2ObjcHeaderMap, - Optional<Label> deadCodeReport) { + Label deadCodeReport) { this.translationFlags = translationFlags; this.removeDeadCode = removeDeadCode; this.experimentalJ2ObjcHeaderMap = experimentalJ2ObjcHeaderMap; @@ -131,8 +139,15 @@ public class J2ObjcConfiguration extends Fragment { /** * Returns the label of the dead code report generated by ProGuard for J2ObjC to eliminate dead * code. The dead Java code in the report will not be translated to Objective-C code. + * + * Returns null if no such report was requested. */ - public Optional<Label> deadCodeReport() { + @Nullable + @SkylarkCallable(name = "dead_code_report", structField = true, + 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) + public Label deadCodeReport() { return deadCodeReport; } |