Skip to content

Commit 99fd82b

Browse files
committed
Pass MOE sdk properties via gradle tooling model
1 parent 83b3ca0 commit 99fd82b

File tree

6 files changed

+38
-19
lines changed

6 files changed

+38
-19
lines changed

src/main/java/org/moe/gradle/AbstractMoeExtension.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.moe.gradle;
1818

1919
import org.gradle.api.Action;
20+
import org.gradle.api.Project;
2021
import org.gradle.internal.reflect.Instantiator;
2122
import org.moe.gradle.anns.IgnoreUnused;
2223
import org.moe.gradle.anns.NotNull;
@@ -70,4 +71,9 @@ public void natjgen(Action<NatjgenOptions> action) {
7071

7172
@Nullable
7273
public abstract File getPlatformJar();
74+
75+
@NotNull
76+
public static AbstractMoeExtension getInstance(@NotNull Project project) {
77+
return Require.nonNull((AbstractMoeExtension) project.getExtensions().findByName(AbstractMoePlugin.MOE));
78+
}
7379
}

src/main/java/org/moe/gradle/tasks/AbstractBaseTask.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,12 @@ private void runInternal() {
114114

115115
@Internal
116116
protected @NotNull MoeExtension getMoeExtension() {
117-
return Require.nonNull((MoeExtension) getProject().getExtensions().findByName(MoePlugin.MOE));
117+
return (MoeExtension) getExtension();
118118
}
119119

120120
@Internal
121121
public @NotNull AbstractMoeExtension getExtension() {
122-
return Require.nonNull((AbstractMoeExtension) getProject().getExtensions().findByName(AbstractMoePlugin.MOE));
122+
return AbstractMoeExtension.getInstance(getProject());
123123
}
124124

125125
@NotNull

src/main/java/org/moe/gradle/tasks/NatJGen.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,13 @@
1818

1919
import org.gradle.api.GradleException;
2020
import org.gradle.api.Task;
21-
import org.gradle.api.logging.Logger;
22-
import org.gradle.api.logging.Logging;
2321
import org.gradle.api.specs.Spec;
2422
import org.gradle.api.tasks.Input;
2523
import org.gradle.api.tasks.InputFile;
2624
import org.gradle.api.tasks.Optional;
2725
import org.moe.gradle.AbstractMoeExtension;
2826
import org.moe.gradle.anns.IgnoreUnused;
29-
import org.moe.gradle.anns.NotNull;
3027
import org.moe.gradle.anns.Nullable;
31-
import org.moe.gradle.utils.Require;
3228

3329
import java.io.File;
3430
import java.nio.file.Path;
@@ -156,7 +152,4 @@ protected final void setupMoeTask() {
156152
addConvention(CONVENTION_LOG_FILE, () -> resolvePathInBuildDir(out, "NatJGen.log"));
157153
}
158154

159-
public @NotNull AbstractMoeExtension getExtension() {
160-
return Require.nonNull((AbstractMoeExtension) getProject().getExtensions().findByName(MOE));
161-
}
162155
}

src/main/kotlin/org/moe/gradle/model/builder/GradlePluginModelBuilder.kt

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,28 @@ package org.moe.gradle.model.builder
22

33
import org.gradle.api.Project
44
import org.gradle.tooling.provider.model.ToolingModelBuilder
5+
import org.moe.gradle.AbstractMoeExtension
56
import org.moe.gradle.model.GradlePluginModel
67
import org.moe.gradle.model.impl.GradlePluginModelImpl
8+
import org.moe.gradle.model.impl.MOESdkPropertiesImpl
79

8-
class GradlePluginModelBuilder: ToolingModelBuilder {
10+
class GradlePluginModelBuilder : ToolingModelBuilder {
911
override fun canBuild(modelName: String): Boolean {
1012
return modelName == GradlePluginModel::class.java.name
1113
}
1214

1315
override fun buildAll(modelName: String, project: Project): Any {
14-
return GradlePluginModelImpl(project.plugins.map { it.javaClass.name })
16+
return GradlePluginModelImpl(
17+
gradlePluginList = project.plugins.map { it.javaClass.name },
18+
sdkProperties = AbstractMoeExtension.getInstance(project).let { ext ->
19+
val sdk = ext.getSDK()
20+
MOESdkPropertiesImpl(
21+
home = sdk.root.absolutePath,
22+
coreJar = sdk.coreJar.absolutePath,
23+
platformJar = ext.platformJar?.absolutePath,
24+
junitJar = sdk.getiOSJUnitJar().absolutePath,
25+
)
26+
}
27+
)
1528
}
1629
}
Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
package org.moe.gradle.model.impl
22

33
import org.moe.gradle.model.GradlePluginModel
4+
import org.moe.gradle.model.MOESdkProperties
45
import java.io.Serializable
56

67
data class GradlePluginModelImpl(
7-
private val myGradlePluginList: Collection<String>
8-
): GradlePluginModel, Serializable {
9-
override fun getGradlePluginList(): Collection<String> = myGradlePluginList
10-
11-
companion object {
12-
private const val serialVersionUID = 1L
13-
}
14-
}
8+
override val gradlePluginList: Collection<String>,
9+
override val sdkProperties: MOESdkProperties,
10+
) : GradlePluginModel, Serializable
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.moe.gradle.model.impl
2+
3+
import org.moe.gradle.model.MOESdkProperties
4+
import java.io.Serializable
5+
6+
data class MOESdkPropertiesImpl(
7+
override val home: String,
8+
override val coreJar: String,
9+
override val platformJar: String?,
10+
override val junitJar: String,
11+
) : MOESdkProperties, Serializable

0 commit comments

Comments
 (0)