82f8bc62a0
- Add desktopApp module with JVM entry point and sidebar navigation - Add Claude specs for AI-assisted development: - Agent definitions: nostr-protocol, kotlin-multiplatform, compose-ui, kotlin-coroutines - Skills: quartz-kmp conversion, compose-desktop patterns - Commands: desktop-run, nip, extract - Update Gradle configuration with Compose Multiplatform 1.7.1 plugin - Add coroutines and secp256k1 JVM dependencies to version catalog Next steps: - Convert Quartz library to full KMP (expect/actual for crypto) - Implement relay connections in desktop app - Share UI components between Android and Desktop 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
69 lines
2.0 KiB
Groovy
69 lines
2.0 KiB
Groovy
plugins {
|
|
alias(libs.plugins.androidApplication) apply false
|
|
alias(libs.plugins.jetbrainsKotlinAndroid) apply false
|
|
alias(libs.plugins.androidLibrary) apply false
|
|
alias(libs.plugins.jetbrainsKotlinJvm) apply false
|
|
alias(libs.plugins.androidBenchmark) apply false
|
|
alias(libs.plugins.diffplugSpotless)
|
|
alias(libs.plugins.googleServices) apply false
|
|
alias(libs.plugins.jetbrainsComposeCompiler) apply false
|
|
alias(libs.plugins.composeMultiplatform) apply false
|
|
alias(libs.plugins.kotlinMultiplatform) apply false
|
|
alias(libs.plugins.androidKotlinMultiplatformLibrary) apply false
|
|
alias(libs.plugins.serialization)
|
|
alias(libs.plugins.stability.analyzer) apply false
|
|
}
|
|
|
|
allprojects {
|
|
apply plugin: 'com.diffplug.spotless'
|
|
|
|
if (project === rootProject) {
|
|
spotless {
|
|
predeclareDeps()
|
|
}
|
|
spotlessPredeclare {
|
|
kotlin {
|
|
ktlint()
|
|
}
|
|
}
|
|
} else {
|
|
spotless {
|
|
kotlin {
|
|
target 'src/**/*.kt'
|
|
|
|
ktlint()
|
|
licenseHeaderFile rootProject.file('spotless/copyright.kt'), "package|import|class|object|sealed|open|interface|abstract "
|
|
}
|
|
|
|
groovyGradle {
|
|
target '*.gradle'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
subprojects {
|
|
afterEvaluate {
|
|
try {
|
|
tasks.named("preBuild") {
|
|
dependsOn("spotlessApply")
|
|
}
|
|
} catch (UnknownTaskException ignored) {
|
|
tasks.matching {
|
|
it.name.startsWith("pre") && it.name.endsWith("Build")
|
|
}.configureEach {
|
|
dependsOn("spotlessApply")
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
tasks.register('installGitHook', Copy) {
|
|
from new File(rootProject.rootDir, 'git-hooks/pre-commit')
|
|
from new File(rootProject.rootDir, 'git-hooks/pre-push')
|
|
into { new File(rootProject.rootDir, '.git/hooks') }
|
|
filePermissions { unix(0777) }
|
|
}
|
|
tasks.getByPath(':amethyst:preBuild').dependsOn installGitHook
|