Skip to content

F-107: kmpLibrary DSL + multiplatform apply + kmpProjectConfiguration#216

Merged
stepango merged 1 commit into
v2from
forma/F-107-kmp-apply
Jul 25, 2026
Merged

F-107: kmpLibrary DSL + multiplatform apply + kmpProjectConfiguration#216
stepango merged 1 commit into
v2from
forma/F-107-kmp-apply

Conversation

@stepango

Copy link
Copy Markdown
Collaborator

Summary

Implements F-107 (P11 KMP): type-owned Kotlin Multiplatform apply path and public DSL on tools.forma.kmp.

  • kmpProjectConfiguration (ScriptHandlerScope) — registers KMP matrix defaults, stores KmpProjectSettings (jvm+android default on, jvmTarget = "11"), puts Kotlin MPP (+ AGP when android) on buildscript classpath only
  • Feature applicatororg.jetbrains.kotlin.multiplatform + com.android.kotlin.multiplatform.library (AGP 9.3 spike; no classic com.android.library fallback); jvm target; fail-fast if android platform without androidProjectConfiguration
  • DSLkmpLibrary / kmpApi / kmpUtil / kmpTestUtil (Unit); deps → commonMain / commonTest via Kotlin source-set API + same project-dep validators
  • Cycle rule:kmp:android (compileOnly AGP + string plugin ids / reflection)
  • Docsdocs/KMP-TARGETS.md §4.3 spike result; TICKETS/PROGRESS/ARCHITECTURE

Out of scope (next tickets): F-108 consumer edges, F-109 example, F-110 user docs; platform-specific dep attrs deferred.

Verify (host)

source scripts/env-mac.sh
cd plugins
./gradlew :kmp:test   # 15 tests
./gradlew test jacocoHappyPathCoverageVerification

Both BUILD SUCCESSFUL.

Test plan

  • :kmp:test (registry 5 + settings 4 + resolution 6)
  • Full plugins test + jacoco happy-path gate
  • CI on this PR
  • F-109 progressive example (smoke apply in real module)

Ship tools.forma.kmp apply path: ScriptHandlerScope kmpProjectConfiguration
(stores KmpProjectSettings, classpath-only KGP/AGP), feature applicator for
org.jetbrains.kotlin.multiplatform + com.android.kotlin.multiplatform.library
(jvm+android defaults), commonMain/commonTest deps, and kmpLibrary/Api/Util/
TestUtil DSLs. No :kmp→:android. Unit tests + jacoco happy-path green.
@stepango
stepango merged commit a11f8f4 into v2 Jul 25, 2026
8 checks passed
@stepango
stepango deleted the forma/F-107-kmp-apply branch July 25, 2026 17:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant