Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Noisyfox committed Apr 2, 2022
1 parent c186269 commit ba5a32f
Show file tree
Hide file tree
Showing 10 changed files with 223 additions and 66 deletions.
5 changes: 1 addition & 4 deletions src/main/java/org/moe/gradle/MoeExtension.java
Original file line number Diff line number Diff line change
Expand Up @@ -145,12 +145,9 @@ public void setProguardLevel(@NotNull String proguardLevel) {
}

@Nullable
@org.jetbrains.annotations.Nullable
public File getPlatformJar() {
return plugin.getSDK().getPlatformJar(platform);
}

@Nullable
public File getPlatformDex() {
return plugin.getSDK().getPlatformDex(platform);
}
}
3 changes: 3 additions & 0 deletions src/main/java/org/moe/gradle/MoePlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import org.moe.gradle.anns.Nullable;
import org.moe.gradle.remote.Server;
import org.moe.gradle.tasks.AbstractBaseTask;
import org.moe.gradle.tasks.Desugar;
import org.moe.gradle.tasks.Dex;
import org.moe.gradle.tasks.Dex2Oat;
import org.moe.gradle.tasks.ClassValidate;
Expand Down Expand Up @@ -137,6 +138,8 @@ public void apply(Project project) {
// Install rules
addRule(ProGuard.class, "Creates a ProGuarded jar.",
asList(SOURCE_SET, MODE), MoePlugin.this);
addRule(Desugar.class, "Creates a desugared jar.",
asList(SOURCE_SET, MODE), MoePlugin.this);
addRule(ClassValidate.class, "Validate classes.",
asList(SOURCE_SET, MODE), MoePlugin.this);
addRule(Dex.class, "Creates a Dexed jar.",
Expand Down
33 changes: 0 additions & 33 deletions src/main/java/org/moe/gradle/MoeSDK.java
Original file line number Diff line number Diff line change
Expand Up @@ -349,17 +349,14 @@ private void validateSDK(@NotNull Path path, boolean isLocalSDK) {

try {
validate(DIR, path, "");
validate(FIL, path, "sdk/moe-core.dex");
validate(FIL, path, "sdk/moe-core.jar");
validate(FIL, path, "sdk/moe-core-javadoc.jar");
validate(FIL, path, "sdk/moe-core-sources.jar");

validate(FIL, path, "sdk/moe-ios-junit.dex");
validate(FIL, path, "sdk/moe-ios-junit.jar");
validate(FIL, path, "sdk/moe-ios-junit-javadoc.jar");
validate(FIL, path, "sdk/moe-ios-junit-sources.jar");

validate(FIL, path, "sdk/moe-ios-dex.jar");
validate(FIL, path, "sdk/moe-ios.jar");
validate(FIL, path, "sdk/moe-ios-javadoc.jar");
validate(FIL, path, "sdk/moe-ios-sources.jar");
Expand Down Expand Up @@ -413,15 +410,12 @@ private void validate(int type, @NotNull Path path, @NotNull String sub) throws
private @Nullable File MOE_SDK_CORE_JAR;
private @Nullable File MOE_SDK_CORE_SOURCES_JAR;
private @Nullable File MOE_SDK_CORE_JAVADOC_JAR;
private @Nullable File MOE_SDK_CORE_DEX;
private @Nullable File MOE_SDK_IOS_JAVADOC_JAR;
private @Nullable File MOE_SDK_IOS_JUNIT_JAR;
private @Nullable File MOE_SDK_IOS_JUNIT_SOURCES_JAR;
private @Nullable File MOE_SDK_IOS_JUNIT_JAVADOC_JAR;
private @Nullable File MOE_SDK_IOS_JUNIT_DEX;
private @Nullable File MOE_SDK_IOS_JAR;
private @Nullable File MOE_SDK_IOS_SOURCES_JAR;
private @Nullable File MOE_SDK_IOS_DEX;
private @Nullable File MOE_SDK_DEX2OAT_EXEC;
private @Nullable File MOE_SDK_DX_JAR;
private @Nullable File MOE_SDK_IOS_DEVICE_JAR;
Expand All @@ -440,15 +434,12 @@ private void bakeSDKPaths(@NotNull Path path) {
MOE_SDK_SDK_DIR = path.resolve("sdk").toFile();
MOE_SDK_TOOLS_DIR = path.resolve("tools").toFile();
MOE_SDK_CORE_JAR = path.resolve("sdk/moe-core.jar").toFile();
MOE_SDK_CORE_DEX = path.resolve("sdk/moe-core.dex").toFile();
MOE_SDK_CORE_SOURCES_JAR = path.resolve("sdk/moe-core-sources.jar").toFile();
MOE_SDK_CORE_JAVADOC_JAR = path.resolve("sdk/moe-core-javadoc.jar").toFile();
MOE_SDK_IOS_DEX = path.resolve("sdk/moe-ios-dex.jar").toFile();
MOE_SDK_IOS_JAR = path.resolve("sdk/moe-ios.jar").toFile();
MOE_SDK_IOS_SOURCES_JAR = path.resolve("sdk/moe-ios-sources.jar").toFile();
MOE_SDK_IOS_JAVADOC_JAR = path.resolve("sdk/moe-ios-javadoc.jar").toFile();
MOE_SDK_IOS_JUNIT_JAR = path.resolve("sdk/moe-ios-junit.jar").toFile();
MOE_SDK_IOS_JUNIT_DEX = path.resolve("sdk/moe-ios-junit.dex").toFile();
MOE_SDK_IOS_JUNIT_SOURCES_JAR = path.resolve("sdk/moe-ios-junit-sources.jar").toFile();
MOE_SDK_IOS_JUNIT_JAVADOC_JAR = path.resolve("sdk/moe-ios-junit-javadoc.jar").toFile();
MOE_SDK_DEX2OAT_EXEC = path.resolve("tools/dex2oat").toFile();
Expand Down Expand Up @@ -498,11 +489,6 @@ public File getCoreSourcesJar() {
return safeVariable(MOE_SDK_CORE_SOURCES_JAR, "MOE_SDK_CORE_SOURCES_JAR");
}

@NotNull
public File getCoreDex() {
return safeVariable(MOE_SDK_CORE_DEX, "MOE_SDK_CORE_DEX");
}

@NotNull
@IgnoreUnused
public File getiOSJavadocJar() {
Expand Down Expand Up @@ -532,22 +518,11 @@ public File getiOSJUnitSourcesJar() {
return safeVariable(MOE_SDK_IOS_JUNIT_SOURCES_JAR, "MOE_SDK_IOS_JUNIT_SOURCES_JAR");
}

@NotNull
@IgnoreUnused
public File getiOSJUnitDex() {
return safeVariable(MOE_SDK_IOS_JUNIT_DEX, "MOE_SDK_IOS_JUNIT_DEX");
}

@NotNull
private File getiOSJar() {
return safeVariable(MOE_SDK_IOS_JAR, "MOE_SDK_IOS_JAR");
}

@NotNull
private File getiOSDex() {
return safeVariable(MOE_SDK_IOS_DEX, "MOE_SDK_IOS_DEX");
}

@NotNull
public File getDex2OatExec() {
return safeVariable(MOE_SDK_DEX2OAT_EXEC, "MOE_SDK_DEX2OAT_EXEC");
Expand Down Expand Up @@ -619,14 +594,6 @@ public File getPlatformJar(final @NotNull MoePlatform platform) {
throw new GradleException("platform jar is unsupported for " + platform.displayName);
}

@NotNull
public File getPlatformDex(final @NotNull MoePlatform platform) {
if (platform == MoePlatform.IOS) {
return getiOSDex();
}
throw new GradleException("platform dex is unsupported for " + platform.displayName);
}

@NotNull
private static <T> T safeVariable(@Nullable T variable, @NotNull String name) {
return Require.nonNull(variable, "Unable to access MOE SDK variable '" + name + "'");
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/org/moe/gradle/tasks/AbstractBaseTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ public Object doCall() {

@SuppressWarnings("unchecked")
@NotNull
@org.jetbrains.annotations.NotNull
public <T> T getOrConvention(@Nullable T value, @NotNull String name) {
Require.nonNull(name);

Expand All @@ -165,6 +166,7 @@ public <T> T getOrConvention(@Nullable T value, @NotNull String name) {

@SuppressWarnings("unchecked")
@Nullable
@org.jetbrains.annotations.Nullable
public <T> T nullableGetOrConvention(@Nullable T value, @NotNull String name) {
Require.nonNull(name);

Expand Down
20 changes: 0 additions & 20 deletions src/main/java/org/moe/gradle/tasks/Dex2Oat.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,11 @@
import org.gradle.api.tasks.OutputFile;
import org.gradle.api.tasks.SourceSet;
import org.moe.common.utils.NativeUtil;
import org.moe.gradle.MoeExtension;
import org.moe.gradle.MoePlugin;
import org.moe.gradle.MoeSDK;
import org.moe.gradle.anns.IgnoreUnused;
import org.moe.gradle.anns.NotNull;
import org.moe.gradle.anns.Nullable;
import org.moe.gradle.options.ProGuardOptions;
import org.moe.gradle.remote.Server;
import org.moe.gradle.remote.file.FileList;
import org.moe.gradle.utils.Arch;
Expand Down Expand Up @@ -328,7 +326,6 @@ protected final void setupMoeTask(@NotNull SourceSet sourceSet, @NotNull Mode mo

setSupportsRemoteBuild(true);

final MoeExtension ext = getMoeExtension();
final MoeSDK sdk = getMoeSDK();

// Construct default output path
Expand Down Expand Up @@ -363,23 +360,6 @@ protected final void setupMoeTask(@NotNull SourceSet sourceSet, @NotNull Mode mo
addConvention(CONVENTION_INPUT_FILES, () -> {
final Set<File> files = new HashSet<>();
files.add(dexTask.getDestJar());

switch (ext.proguard.getLevelRaw()) {
case ProGuardOptions.LEVEL_APP:
files.add(sdk.getCoreDex());
if (ext.getPlatformDex() != null) {
files.add(ext.getPlatformDex());
}
break;
case ProGuardOptions.LEVEL_PLATFORM:
files.add(sdk.getCoreDex());
break;
case ProGuardOptions.LEVEL_ALL:
break;
default:
throw new IllegalStateException();
}

return files;
});
addConvention(CONVENTION_COMPILER_BACKEND, () -> BACKEND_QUICK);
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/moe/gradle/tasks/ProGuard.java
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,7 @@ private void composeConfigurationFile() {
FileUtils.write(getComposedCfgFile(), conf.toString());
}

private static void startSection(@NotNull final StringBuilder b, @NotNull final String comment) {
static void startSection(@NotNull final StringBuilder b, @NotNull final String comment) {
int l = comment.length();
b.append("\n##");
for (int i = 0; i < l; ++i)
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/org/moe/gradle/tasks/ResourcePackager.java
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,9 @@ private static Jar create(@NotNull MoePlugin plugin, @NotNull SourceSet sourceSe
switch (ext.proguard.getLevelRaw()) {
case ProGuardOptions.LEVEL_APP:
resourcePackagerTask.from(_project.zipTree(sdk.getCoreJar()));
resourcePackagerTask.from(_project.zipTree(ext.getPlatformJar()));
if (ext.getPlatformJar() != null){
resourcePackagerTask.from(_project.zipTree(ext.getPlatformJar()));
}
break;
case ProGuardOptions.LEVEL_PLATFORM:
resourcePackagerTask.from(_project.zipTree(sdk.getCoreJar()));
Expand Down
7 changes: 6 additions & 1 deletion src/main/java/org/moe/gradle/tasks/XcodeBuild.java
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,12 @@ protected void run() {
excludes.add(classValidateTask.getOutputDir());
excludes.add(classValidateTask.getLogFile());

final ProGuard proGuardTask = classValidateTask.getProGuardTaskDep();
final Desugar desugarTask = classValidateTask.getDesugarTaskDep();
excludes.add(desugarTask.getOutJar());
excludes.add(desugarTask.getComposedCfgFile());
excludes.add(desugarTask.getLogFile());

final ProGuard proGuardTask = desugarTask.getProGuardTaskDep();
excludes.add(proGuardTask.getOutJar());
excludes.add(proGuardTask.getComposedCfgFile());
excludes.add(proGuardTask.getLogFile());
Expand Down
12 changes: 6 additions & 6 deletions src/main/kotlin/org/moe/gradle/tasks/ClassValidate.kt
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ open class ClassValidate : AbstractBaseTask() {
}

@get:Internal
lateinit var proGuardTaskDep: ProGuard
lateinit var desugarTaskDep: Desugar
private set

protected fun setupMoeTask(
Expand All @@ -89,13 +89,13 @@ open class ClassValidate : AbstractBaseTask() {
description = "Validate classes (sourceset: ${sourceSet.name}, mode: ${mode.name})."

// Add dependencies
val proGuardTask = moePlugin.getTaskBy(ProGuard::class.java, sourceSet, mode)
proGuardTaskDep = proGuardTask
dependsOn(proGuardTask)
val desugarTask = moePlugin.getTaskBy(Desugar::class.java, sourceSet, mode)
desugarTaskDep = desugarTask
dependsOn(desugarTask)

// Update convention mapping
addConvention(CONVENTION_INPUT_FILES) { setOf(proGuardTask.outJar) }
addConvention(CONVENTION_CLASSPATH_FILES) { setOf(proGuardTask.libraryJars) }
addConvention(CONVENTION_INPUT_FILES) { setOf(desugarTask.getOutJar()) }
addConvention(CONVENTION_CLASSPATH_FILES) { setOf(desugarTask.getLibraryJars()) }
addConvention(CONVENTION_OUTPUT_DIR) { resolvePathInBuildDir(out, "output") }
addConvention(CONVENTION_LOG_FILE) { resolvePathInBuildDir(out, "ClassValidate.log") }
}
Expand Down

0 comments on commit ba5a32f

Please sign in to comment.