Skip to content

Commit 86feebc

Browse files
committed
chore: extract Ed25519 shadow setup into convention plugin
Consolidates the repeated test sourceSet + eddsa dependency into a single `flipcash.android.ed25519.shadow` convention plugin.
1 parent ea543e7 commit 86feebc

6 files changed

Lines changed: 33 additions & 15 deletions

File tree

build-logic/convention/build.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,9 @@ gradlePlugin {
3737
id = "flipcash.android.feature"
3838
implementationClass = "AndroidFeatureConventionPlugin"
3939
}
40+
register("androidEd25519Shadow") {
41+
id = "flipcash.android.ed25519.shadow"
42+
implementationClass = "AndroidEd25519ShadowConventionPlugin"
43+
}
4044
}
4145
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import com.android.build.gradle.LibraryExtension
2+
import org.gradle.api.Plugin
3+
import org.gradle.api.Project
4+
import org.gradle.api.artifacts.VersionCatalogsExtension
5+
import org.gradle.kotlin.dsl.configure
6+
import org.gradle.kotlin.dsl.dependencies
7+
import org.gradle.kotlin.dsl.getByType
8+
9+
class AndroidEd25519ShadowConventionPlugin : Plugin<Project> {
10+
override fun apply(target: Project) {
11+
with(target) {
12+
extensions.configure<LibraryExtension> {
13+
sourceSets.getByName("test") {
14+
java.srcDir(rootProject.file("testing/ed25519-shadow"))
15+
}
16+
}
17+
18+
val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")
19+
20+
dependencies {
21+
"testImplementation"(libs.findLibrary("eddsa").get())
22+
}
23+
}
24+
}
25+
}

gradle/libs.versions.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,7 @@ grpc = ["grpc-okhttp", "grpc-kotlin", "grpc-protobuf-lite", "grpc-stub"]
313313
flipcash-android-library = { id = "flipcash.android.library" }
314314
flipcash-android-library-compose = { id = "flipcash.android.library.compose" }
315315
flipcash-android-feature = { id = "flipcash.android.feature" }
316+
flipcash-android-ed25519-shadow = { id = "flipcash.android.ed25519.shadow" }
316317
android-application = { id = "com.android.application", version.ref = "agp" }
317318
android-library = { id = "com.android.library", version.ref = "agp" }
318319
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }

libs/crypto/solana/build.gradle.kts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
plugins {
22
alias(libs.plugins.flipcash.android.library)
3+
alias(libs.plugins.flipcash.android.ed25519.shadow)
34
id("com.google.devtools.ksp")
45
id("dagger.hilt.android.plugin")
56
}
67

78
android {
89
namespace = "${Gradle.codeNamespace}.vendor.solana"
9-
10-
sourceSets.getByName("test") {
11-
java.srcDir(rootProject.file("testing/ed25519-shadow"))
12-
}
1310
}
1411

1512
dependencies {
@@ -36,5 +33,4 @@ dependencies {
3633
ksp(libs.hilt.compiler)
3734

3835
testImplementation(kotlin("test"))
39-
testImplementation(libs.eddsa)
4036
}

libs/encryption/mnemonic/build.gradle.kts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
plugins {
22
alias(libs.plugins.flipcash.android.library)
3+
alias(libs.plugins.flipcash.android.ed25519.shadow)
34
}
45

56
android {
67
namespace = "${Gradle.codeNamespace}.encryption.mnemonic"
7-
8-
sourceSets.getByName("test") {
9-
java.srcDir(rootProject.file("testing/ed25519-shadow"))
10-
}
118
}
129

1310
dependencies {
@@ -22,5 +19,4 @@ dependencies {
2219
implementation(libs.androidx.core)
2320

2421
testImplementation(kotlin("test"))
25-
testImplementation(libs.eddsa)
2622
}

services/opencode/build.gradle.kts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
alias(libs.plugins.flipcash.android.library)
3+
alias(libs.plugins.flipcash.android.ed25519.shadow)
34
id("com.google.devtools.ksp")
45
id("dagger.hilt.android.plugin")
56
id("org.jetbrains.kotlin.plugin.parcelize")
@@ -8,10 +9,6 @@ plugins {
89
android {
910
namespace = "${Gradle.codeNamespace}.services.opencode"
1011

11-
sourceSets.getByName("test") {
12-
java.srcDir(rootProject.file("testing/ed25519-shadow"))
13-
}
14-
1512
defaultConfig {
1613
consumerProguardFiles("consumer-rules.pro")
1714

@@ -97,6 +94,5 @@ dependencies {
9794
implementation(libs.event.bus)
9895

9996
testImplementation(kotlin("test"))
100-
testImplementation(libs.eddsa)
10197
testImplementation(libs.bundles.unit.testing)
10298
}

0 commit comments

Comments
 (0)