Skip to content

Commit 8b01867

Browse files
authored
Merge pull request #3 from cdsap/removing_android_plugins_when_jvm
Removing android plugins when jvm
2 parents 4c7d79f + f296e79 commit 8b01867

5 files changed

Lines changed: 36 additions & 15 deletions

File tree

src/main/kotlin/io/github/cdsap/generator/Main.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class ProjectGenerator(
6363

6464
val projectLanguageAttributes =
6565
getProjectLanguageAttributes(language, "projects_generated/${shape.name.lowercase()}_$numberOfModules")
66-
ProjectWriter(nodes, projectLanguageAttributes, classesPerModule,versions).write()
66+
ProjectWriter(nodes, projectLanguageAttributes, classesPerModule, versions, typeOfProjectRequested).write()
6767
GraphWriter(nodes, "projects_generated/${shape.name.lowercase()}_$numberOfModules").write()
6868
println("Project created in projects_generated/${shape.name.lowercase()}_$numberOfModules")
6969
}

src/main/kotlin/io/github/cdsap/generator/ProjectWriter.kt

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package io.github.cdsap.generator
22

33
import io.github.cdsap.generator.files.*
4-
import io.github.cdsap.generator.model.LanguageAttributes
5-
import io.github.cdsap.generator.model.ProjectGraph
6-
import io.github.cdsap.generator.model.Versions
4+
import io.github.cdsap.generator.model.*
75
import io.github.cdsap.generator.writer.ConventionPluginWriter
86
import io.github.cdsap.generator.writer.ModulesWriter
97
import java.io.File
@@ -12,11 +10,12 @@ class ProjectWriter(
1210
private val nodes: List<ProjectGraph>,
1311
private val languages: List<LanguageAttributes>,
1412
private val numberOfClassPerModule: Int,
15-
private val versions: Versions
13+
private val versions: Versions,
14+
private val typeOfProjectRequested: TypeProjectRequested
1615
) {
1716
fun write() {
1817
println("Creating Convention Plugin files")
19-
ConventionPluginWriter(languages, versions).write()
18+
ConventionPluginWriter(languages, versions, typeOfProjectRequested).write()
2019
println("Creating Modules files")
2120
ModulesWriter(nodes, languages, numberOfClassPerModule).write()
2221

@@ -36,8 +35,11 @@ class ProjectWriter(
3635
}
3736
}
3837

39-
private fun createProjectBuildGradle(languages: List<LanguageAttributes>) {
40-
val plugins = BuildGradle().get(versions)
38+
private fun createProjectBuildGradle(
39+
languages: List<LanguageAttributes>
40+
) {
41+
val plugins = if (typeOfProjectRequested == TypeProjectRequested.JVM) BuildGradle().getJvm(versions)
42+
else BuildGradle().get(versions)
4143
languages.forEach {
4244
File("${it.projectName}/build.${it.extension}").createNewFile()
4345
File("${it.projectName}/build.${it.extension}").writeText(plugins)

src/main/kotlin/io/github/cdsap/generator/files/BuildGradle.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,11 @@ class BuildGradle {
1212
id("com.android.library") version "${versions.agp}" apply false
1313
}
1414
""".trimIndent()
15+
16+
fun getJvm(versions: Versions) = """
17+
plugins {
18+
id("com.autonomousapps.dependency-analysis") version "1.21.0"
19+
id("org.jetbrains.kotlin.jvm") version("${versions.kgp}") apply false
20+
}
21+
""".trimIndent()
1522
}

src/main/kotlin/io/github/cdsap/generator/files/CompositeBuildBuildGradle.kt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,26 @@
11
package io.github.cdsap.generator.files
22

3+
import io.github.cdsap.generator.model.TypeProjectRequested
34
import io.github.cdsap.generator.model.Versions
45

56
class CompositeBuildBuildGradle {
67

7-
fun get(versions: Versions) = """
8+
fun get(versions: Versions, requested: TypeProjectRequested): String {
9+
val classpath = if (requested == TypeProjectRequested.ANDROID) {
10+
"""
11+
implementation("com.android.tools.build:gradle:${versions.agp}")
12+
""".trimIndent()
13+
} else {
14+
""
15+
}
16+
return """
817
plugins {
918
`kotlin-dsl`
1019
}
1120
1221
dependencies {
1322
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kgp}")
14-
implementation("com.android.tools.build:gradle:${versions.agp}")
23+
$classpath
1524
}
1625
1726
gradlePlugin {
@@ -40,4 +49,5 @@ class CompositeBuildBuildGradle {
4049
}
4150
4251
""".trimIndent()
52+
}
4353
}

src/main/kotlin/io/github/cdsap/generator/writer/ConventionPluginWriter.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@ package io.github.cdsap.generator.writer
22

33
import io.github.cdsap.generator.files.*
44
import io.github.cdsap.generator.model.LanguageAttributes
5+
import io.github.cdsap.generator.model.TypeProjectRequested
56
import io.github.cdsap.generator.model.Versions
67
import java.io.File
78

8-
class ConventionPluginWriter(private val languages: List<LanguageAttributes>,
9-
private val versions: Versions) {
9+
class ConventionPluginWriter(
10+
private val languages: List<LanguageAttributes>,
11+
private val versions: Versions,
12+
private val requested: TypeProjectRequested
13+
) {
1014

1115
fun write() {
1216
createConventionFolders(languages)
@@ -25,9 +29,7 @@ class ConventionPluginWriter(private val languages: List<LanguageAttributes>,
2529
languages.forEach {
2630
File("${it.projectName}/build-logic/convention/build.gradle.kts").createNewFile()
2731
File("${it.projectName}/build-logic/convention/build.gradle.kts").writeText(
28-
CompositeBuildBuildGradle().get(
29-
versions
30-
)
32+
CompositeBuildBuildGradle().get(versions, requested)
3133
)
3234
}
3335
}

0 commit comments

Comments
 (0)