Skip to content

Commit

Permalink
Mark more Starlark-exposed transitions with the correct API interface.
Browse files Browse the repository at this point in the history
Work towards composable starlark transitions: #22248.

PiperOrigin-RevId: 636644277
Change-Id: I08bd0d006e5d68f195bc4bada1c782982fc70528
  • Loading branch information
katre authored and Copybara-Service committed May 23, 2024
1 parent c4e8848 commit 29afc34
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,15 @@
import net.starlark.java.eval.Printer;

/** Android Split configuration transition for properly handling native dependencies */
public final class AndroidSplitTransition implements SplitTransition, AndroidSplitTransitionApi {
public final class AndroidSplitTransition implements SplitTransition {

public static final AndroidSplitTransition INSTANCE = new AndroidSplitTransition();

public static final TransitionFactory<AttributeTransitionData> FACTORY = new Factory();
public static final Factory FACTORY = new Factory();

/** A {@link TransitionFactory} instance that returns the {@link AndroidSplitTransition}. */
static final class Factory implements TransitionFactory<AttributeTransitionData> {
static final class Factory
implements TransitionFactory<AttributeTransitionData>, AndroidSplitTransitionApi {

@Override
public ConfigurationTransition create(AttributeTransitionData unused) {
Expand All @@ -64,6 +65,16 @@ public boolean isTool() {
public boolean isSplit() {
return true;
}

@Override
public boolean isImmutable() {
return true;
}

@Override
public void repr(Printer printer) {
printer.append("android_common.multi_cpu_configuration");
}
}

@Override
Expand Down Expand Up @@ -128,14 +139,4 @@ private void setCcFlagsFromAndroid(
newOptions.get(AndroidConfiguration.Options.class).configurationDistinguisher =
ConfigurationDistinguisher.ANDROID;
}

@Override
public boolean isImmutable() {
return true;
}

@Override
public void repr(Printer printer) {
printer.append("android_common.multi_cpu_configuration");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public String getSourceDirectoryRelativePathFromResource(Artifact resource) {

@Override
public AndroidSplitTransitionApi getAndroidSplitTransition() {
return AndroidSplitTransition.INSTANCE;
return AndroidSplitTransition.FACTORY;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
// limitations under the License.
package com.google.devtools.build.lib.starlarkbuildapi.android;

import com.google.devtools.build.lib.starlarkbuildapi.config.ConfigurationTransitionApi;
import net.starlark.java.annot.StarlarkBuiltin;
import net.starlark.java.eval.StarlarkValue;

/** Android configuration for properly handling native dependencies */
@StarlarkBuiltin(
Expand All @@ -23,4 +23,4 @@
"Do not use this module. It is intended for migration purposes only. If you depend on it, "
+ "you will be broken when it is removed.",
documented = false)
public interface AndroidSplitTransitionApi extends StarlarkValue {}
public interface AndroidSplitTransitionApi extends ConfigurationTransitionApi {}
Original file line number Diff line number Diff line change
Expand Up @@ -171,5 +171,5 @@ interface BuildSettingApi extends StarlarkValue {}
name = "ExecTransitionFactory",
category = DocCategory.BUILTIN,
doc = "an execution transition.")
interface ExecTransitionFactoryApi extends StarlarkValue {}
interface ExecTransitionFactoryApi extends ConfigurationTransitionApi {}
}

0 comments on commit 29afc34

Please sign in to comment.