Skip to content

Commit 94c5639

Browse files
authored
Update AGP flag handling (#262)
1 parent 1ed4e11 commit 94c5639

4 files changed

Lines changed: 29 additions & 12 deletions

File tree

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,11 @@ Then, you can use the versions.yaml in the `generate-project` command:
5050
- `--develocity-url`: Specify Develocity URL
5151
- `--versions-file`: Path to a custom YAML file with dependency versions
5252
- `--project-name`: Name of the project
53-
- `--agp9`: Use AGP 9.x (default: false). Only for Android projects.
5453
- `--room-database`: Enable Room database generation (default: false). Only for Android projects.
5554
- `--android-kotlin-multiplatform-library`: For Android projects, generate Android library modules with `com.android.kotlin.multiplatform.library` instead of `com.android.library` (default: false).
5655

56+
Android projects use the default AGP version from `Versions()` unless you override it in `--versions-file`.
57+
5758
#### Example: Generate a project with custom options
5859
```bash
5960
./projectGenerator generate-project --shape rhombus --modules 50 --layers 4 --language both --type jvm --classesModule 10 --classesModuleType random --typeOfStringResources large --generateUnitTest --gradle gradle_8_9 --develocity --versionsFile ./my_versions.yaml

backend/server.cjs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ app.post('/api/generate', upload.single('versions-file'), async (req, res) => {
8080
// Add project name if provided
8181
if (body['project-name']) { args.push('--project-name', body['project-name']);}
8282
if (toBool(body['generate-unit-test']) || toBool(body.generateUnitTest)) args.push('--generate-unit-test');
83-
if (toBool(body['agp9'])) args.push('--agp9');
8483
if (toBool(body.develocity)) args.push('--develocity');
8584
if (body['develocity-url']) args.push('--develocity-url', body['develocity-url']);
8685
if (type === 'android' && body.processor) args.push('--processor', body.processor);

cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/Main.kt

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ class GenerateProjects : CliktCommand(name = "generate-project") {
5858
private val versionsFile by option().file()
5959
private val projectName by option()
6060
private val develocityUrl by option()
61+
// Kept for CLI backwards compatibility. AGP 9 is the default now.
6162
private val agp9 by option().flag(default = false)
6263
private val roomDatabase by option("--room-database").flag(default = false)
6364
private val kotlinMultiplatformLibrary by option("--android-kotlin-multiplatform-library").flag(default = false)
@@ -73,7 +74,6 @@ class GenerateProjects : CliktCommand(name = "generate-project") {
7374
val versions = getVersions(
7475
fileVersions = versionsFile,
7576
develocityUrl = develocityUrl,
76-
agp9 = agp9,
7777
roomDatabase = roomDatabase,
7878
kotlinMultiplatformLibrary = kotlinMultiplatformLibrary
7979
).copy(di = dependencyInjection)
@@ -118,21 +118,13 @@ class GenerateProjects : CliktCommand(name = "generate-project") {
118118
private fun getVersions(
119119
fileVersions: File?,
120120
develocityUrl: String?,
121-
agp9: Boolean,
122121
roomDatabase: Boolean,
123122
kotlinMultiplatformLibrary: Boolean
124123
): Versions {
125124
val versions = if (fileVersions != null) {
126125
parseYaml(fileVersions)
127126
} else {
128-
// We only support the injection of AGP 9 version via CLI with the `agp9` option
129-
// if the version is provided by file this logic is not executed
130-
if (agp9) {
131-
val versions = Versions()
132-
versions.copy(android = versions.android.copy(agp = versions.android.agp9))
133-
} else {
134-
Versions()
135-
}
127+
Versions()
136128
}
137129
var androidConfig = versions.android
138130
if (roomDatabase) {

project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/generator/files/GradlePropertiesTest.kt

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

33
import io.github.cdsap.projectgenerator.generator.rootproject.GradleProperties
4+
import io.github.cdsap.projectgenerator.model.DependencyInjection
45
import io.github.cdsap.projectgenerator.model.Android
56
import io.github.cdsap.projectgenerator.model.Kotlin
67
import io.github.cdsap.projectgenerator.model.KotlinProcessor
@@ -61,4 +62,28 @@ class GradlePropertiesTest {
6162
val gradleProperties = GradleProperties().get(versions)
6263
Assertions.assertTrue(!gradleProperties.contains("ksp.useKSP2=false"))
6364
}
65+
66+
@Test
67+
fun `includes android newDsl override for hilt on agp9`() {
68+
val versions = Versions(
69+
android = Android(agp = "9.1.0"),
70+
di = DependencyInjection.HILT
71+
)
72+
73+
val gradleProperties = GradleProperties().get(versions)
74+
75+
Assertions.assertTrue(gradleProperties.contains("android.newDsl=false"))
76+
}
77+
78+
@Test
79+
fun `does not include android newDsl override for hilt on agp8`() {
80+
val versions = Versions(
81+
android = Android(agp = "8.10.0"),
82+
di = DependencyInjection.HILT
83+
)
84+
85+
val gradleProperties = GradleProperties().get(versions)
86+
87+
Assertions.assertFalse(gradleProperties.contains("android.newDsl=false"))
88+
}
6489
}

0 commit comments

Comments
 (0)