whisker-cng 0.6.0

Whisker Continuous Native Generation — declarative Android/iOS project generation from whisker.rs.
Documentation
// AUTO-GENERATED by whisker-cng. Do NOT edit — re-run
// `whisker run` to refresh.
//
// All Whisker-specific wiring (jniLibs source dir for the cargo-
// built .so, generated Kotlin source dir for the
// `WhiskerModuleBehaviors` aggregator, per-module
// `implementation(project(":<crate>"))` deps) is contributed by the
// `rs.whisker.gradle` plugin via AGP's variant-source hooks. The
// app build script stays close to a vanilla AGP application.

plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
    // Settings plugin (rs.whisker) handed off the workspace +
    // user-package config to this project plugin via
    // `<rootDir>/.whisker/config.properties`. `rs.whisker.gradle`
    // reads that, looks up the discovered module list, registers
    // per-variant cargo + aggregator tasks, and wires their outputs
    // into AGP's source sets. Version is inherited from the
    // `pluginManagement.plugins` block in settings.gradle.kts.
    id("rs.whisker.gradle")
{{extra_gradle_plugins}}
}

android {
    namespace = "{{android_application_id}}"
    compileSdk = {{android_target_sdk}}
    ndkVersion = "21.1.6352462"

    defaultConfig {
        applicationId = "{{android_application_id}}"
        minSdk = {{android_min_sdk}}
        targetSdk = {{android_target_sdk}}
        versionCode = {{build_number}}
        versionName = "{{version}}"

        ndk {
            abiFilters += listOf("arm64-v8a")
        }
    }

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }
    kotlinOptions {
        jvmTarget = "17"
    }

    buildTypes {
        getByName("debug") {
            isMinifyEnabled = false
            // Keep symbols readable for ndk-stack.
            packaging {
                jniLibs.keepDebugSymbols += listOf("**/lib{{rust_lib_name}}.so")
            }
        }
        getByName("release") {
            isMinifyEnabled = false
        }
    }
}

dependencies {
    // Whisker host-side AAR. `whisker-runtime-android` transitively
    // pulls `whisker-module-android` + the four lynx-* AARs from the
    // gh-pages Maven repos declared in settings.gradle.kts.
    implementation("rs.whisker:whisker-runtime-android:{{whisker_sdk_version}}")
    implementation("androidx.appcompat:appcompat:1.7.0")
    implementation("androidx.core:core-ktx:1.13.1")
{{extra_gradle_dependencies}}
}