Skip to content

Commit f9529b2

Browse files
committed
Pass MOE Xcode properties via gradle tooling model
1 parent 99fd82b commit f9529b2

File tree

3 files changed

+38
-8
lines changed

3 files changed

+38
-8
lines changed

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

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,42 @@ package org.moe.gradle.model.builder
33
import org.gradle.api.Project
44
import org.gradle.tooling.provider.model.ToolingModelBuilder
55
import org.moe.gradle.AbstractMoeExtension
6+
import org.moe.gradle.MoeExtension
67
import org.moe.gradle.model.GradlePluginModel
78
import org.moe.gradle.model.impl.GradlePluginModelImpl
89
import org.moe.gradle.model.impl.MOESdkPropertiesImpl
10+
import org.moe.gradle.model.impl.MOEXcodePropertiesImpl
911

1012
class GradlePluginModelBuilder : ToolingModelBuilder {
1113
override fun canBuild(modelName: String): Boolean {
1214
return modelName == GradlePluginModel::class.java.name
1315
}
1416

1517
override fun buildAll(modelName: String, project: Project): Any {
18+
val ext = AbstractMoeExtension.getInstance(project)
19+
val sdk = ext.getSDK()
20+
1621
return GradlePluginModelImpl(
1722
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,
23+
sdkProperties = MOESdkPropertiesImpl(
24+
home = sdk.root.absolutePath,
25+
coreJar = sdk.coreJar.absolutePath,
26+
platformJar = ext.platformJar?.absolutePath,
27+
junitJar = sdk.getiOSJUnitJar().absolutePath,
28+
),
29+
xcodeProperties = if (ext is MoeExtension) {
30+
val xcode = ext.xcode
31+
MOEXcodePropertiesImpl(
32+
project = xcode.project?.let { project.file(it).absolutePath },
33+
workspace = xcode.workspace?.let { project.file(it).absolutePath },
34+
mainTarget = xcode.mainTarget,
35+
testTarget = xcode.testTarget,
36+
mainScheme = xcode.mainScheme,
37+
testScheme = xcode.testScheme,
2538
)
26-
}
39+
} else {
40+
null
41+
},
2742
)
2843
}
2944
}

src/main/kotlin/org/moe/gradle/model/impl/GradlePluginModelImpl.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@ package org.moe.gradle.model.impl
22

33
import org.moe.gradle.model.GradlePluginModel
44
import org.moe.gradle.model.MOESdkProperties
5+
import org.moe.gradle.model.MOEXcodeProperties
56
import java.io.Serializable
67

78
data class GradlePluginModelImpl(
89
override val gradlePluginList: Collection<String>,
910
override val sdkProperties: MOESdkProperties,
11+
override val xcodeProperties: MOEXcodeProperties?,
1012
) : GradlePluginModel, Serializable
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package org.moe.gradle.model.impl
2+
3+
import org.moe.gradle.model.MOEXcodeProperties
4+
import java.io.Serializable
5+
6+
data class MOEXcodePropertiesImpl(
7+
override val project: String?,
8+
override val workspace: String?,
9+
override val mainTarget: String?,
10+
override val testTarget: String?,
11+
override val mainScheme: String?,
12+
override val testScheme: String?
13+
) : MOEXcodeProperties, Serializable

0 commit comments

Comments
 (0)