Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ say so in a comment.

A plugin is an Android *application* module (despite installing as a library) with:

1. **`build.gradle.kts`** applies `com.android.application`, `org.jetbrains.kotlin.android`, and `com.itsaky.androidide.plugins.build`. Configures `pluginBuilder { pluginName = "..." }`. Uses `compileOnly(files("../../libs/plugin-api.jar"))` — never `implementation`.
1. **`build.gradle.kts`** applies `com.android.application` and `com.itsaky.androidide.plugins.build`. It must **not** apply `org.jetbrains.kotlin.android` — AGP 9 compiles Kotlin itself and refuses that plugin ("already on the classpath with an unknown version"); the Kotlin version is pinned on the buildscript classpath in `settings.gradle.kts` instead, which is where AGP 9 takes its compiler from. Configures `pluginBuilder { pluginName = "..." }`. Uses `compileOnly(files("../../libs/plugin-api.jar"))` — never `implementation`.
2. **`settings.gradle.kts`** declares the jars it needs on the buildscript classpath plus AGP and Kotlin.
3. **`src/main/AndroidManifest.xml`** declares plugin identity as `<meta-data>` entries on `<application>`: `plugin.id`, `plugin.name`, `plugin.version` (resolved from `${pluginVersion}`), `plugin.description`, `plugin.author`, `plugin.main_class`, `plugin.min_ide_version`, and optional `plugin.permissions`. Optionally `plugin.vcs_revision` / `plugin.build_timestamp` — see **Build provenance** below.
4. **Main class** implements `com.itsaky.androidide.plugins.IPlugin`. Lifecycle: `initialize(PluginContext) → activate() → deactivate() → dispose()`. Services are obtained via `context.services.get(SomeService::class.java)` (e.g. `IdeBuildService` for build hooks). Android `Context` is `context.androidContext`.
Expand Down
5 changes: 2 additions & 3 deletions cotg-ndk/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("com.itsaky.androidide.plugins.build")
}

Expand Down Expand Up @@ -63,13 +62,13 @@ dependencies {
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("com.google.android.material:material:1.10.0")
implementation("androidx.fragment:fragment-ktx:1.8.8")
implementation("org.jetbrains.kotlin:kotlin-stdlib:2.3.0")
implementation("org.jetbrains.kotlin:kotlin-stdlib:2.3.21")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0")
}

tasks.wrapper {
gradleVersion = "8.14.3"
gradleVersion = "9.6.1"
distributionType = Wrapper.DistributionType.BIN
}

Expand Down
2 changes: 1 addition & 1 deletion cotg-ndk/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
4 changes: 2 additions & 2 deletions cotg-ndk/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ buildscript {
dependencies {
classpath(files("../libs/gradle-plugin.jar"))
classpath(files("../libs/plugin-api.jar"))
classpath("com.android.tools.build:gradle:8.11.0")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.0")
classpath("com.android.tools.build:gradle:9.3.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.21")
}
}

Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
5 changes: 2 additions & 3 deletions pebble-custom-function-template-installer/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("com.itsaky.androidide.plugins.build")
}

Expand Down Expand Up @@ -52,7 +51,7 @@ dependencies {
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("com.google.android.material:material:1.10.0")
implementation("androidx.fragment:fragment-ktx:1.8.8")
implementation("org.jetbrains.kotlin:kotlin-stdlib:2.3.0")
implementation("org.jetbrains.kotlin:kotlin-stdlib:2.3.21")
}

tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
Expand All @@ -63,7 +62,7 @@ tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach
}

tasks.wrapper {
gradleVersion = "8.14.3"
gradleVersion = "9.6.1"
distributionType = Wrapper.DistributionType.BIN
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
4 changes: 2 additions & 2 deletions pebble-custom-function-template-installer/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ buildscript {
dependencies {
classpath(files("libs/plugin-api.jar"))
classpath(files("libs/gradle-plugin.jar"))
classpath("com.android.tools.build:gradle:8.11.0")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.0")
classpath("com.android.tools.build:gradle:9.3.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.21")
}
}

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${{KOTLIN_VERSION}}")
}
}

plugins {
id("com.android.application") apply false version "${{AGP_VERSION}}"
id("com.android.library") apply false version "${{AGP_VERSION}}"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
plugins {
id("com.android.library")
kotlin("android")
}

android {
Expand Down Expand Up @@ -28,8 +27,12 @@ android {
sourceCompatibility = ${{JAVA_SOURCE_COMPAT}}
targetCompatibility = ${{JAVA_TARGET_COMPAT}}
}
kotlinOptions {
jvmTarget = "17"

}

kotlin {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.fromTarget("${{JAVA_TARGET}}"))
}
}

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Thu Apr 09 17:25:31 MST 2026
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-${{GRADLE_VERSION}}-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ import java.io.FileInputStream

plugins {
id("com.android.application") version "${{AGP_VERSION}}"
${% if LANGUAGE == 'kotlin' %}
kotlin("android") version "${{KOTLIN_VERSION}}"
${% endif %}
}

val keystorePropsFile = rootProject.file("release.properties")
Expand Down Expand Up @@ -118,10 +115,10 @@ android {

configurations.all {
resolutionStrategy {
// Force the use of Kotlin stdlib 1.9.22 for all modules
force("org.jetbrains.kotlin:kotlin-stdlib:1.9.22")
force("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.22")
force("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.22")
// Force the use of Kotlin stdlib for all modules
force("org.jetbrains.kotlin:kotlin-stdlib:${{KOTLIN_VERSION}}")
force("org.jetbrains.kotlin:kotlin-stdlib-jdk7:${{KOTLIN_VERSION}}")
force("org.jetbrains.kotlin:kotlin-stdlib-jdk8:${{KOTLIN_VERSION}}")

// Force specific AndroidX versions to avoid conflicts
force("androidx.collection:collection:1.4.2")
Expand All @@ -139,8 +136,10 @@ tasks.withType<JavaCompile> {


${% if LANGUAGE == 'kotlin' %}
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
kotlinOptions.jvmTarget = "${{JAVA_TARGET}}"
kotlin {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.fromTarget("${{JAVA_TARGET}}"))
}
}
${% endif %}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${{KOTLIN_VERSION}}")
}
}

plugins {
id("com.android.application") apply false version "${{AGP_VERSION}}"
id("com.android.library") apply false version "${{AGP_VERSION}}"
Expand Down
3 changes: 1 addition & 2 deletions plugins/AI-Agent-Gemini/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("com.itsaky.androidide.plugins.build")
}

Expand Down Expand Up @@ -62,7 +61,7 @@ dependencies {
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("androidx.fragment:fragment-ktx:1.8.8")
implementation("com.google.android.material:material:1.10.0")
implementation("org.jetbrains.kotlin:kotlin-stdlib:2.3.0")
implementation("org.jetbrains.kotlin:kotlin-stdlib:2.3.21")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")

testImplementation(files("../../libs/plugin-api.jar"))
Expand Down
4 changes: 2 additions & 2 deletions plugins/AI-Agent-Gemini/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ buildscript {
dependencies {
classpath(files("../../libs/plugin-api.jar"))
classpath(files("../../libs/gradle-plugin.jar"))
classpath("com.android.tools.build:gradle:8.11.0")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.0")
classpath("com.android.tools.build:gradle:9.3.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.21")
}
}

Expand Down
3 changes: 1 addition & 2 deletions plugins/AI-Agent-Local/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import java.util.zip.ZipFile

plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("com.itsaky.androidide.plugins.build")
}

Expand Down Expand Up @@ -75,7 +74,7 @@ dependencies {
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("androidx.fragment:fragment-ktx:1.8.8")
implementation("com.google.android.material:material:1.10.0")
implementation("org.jetbrains.kotlin:kotlin-stdlib:2.3.0")
implementation("org.jetbrains.kotlin:kotlin-stdlib:2.3.21")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")

testImplementation(files("../../libs/plugin-api.jar"))
Expand Down
4 changes: 2 additions & 2 deletions plugins/AI-Agent-Local/gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
# agreement is enforced by scripts/check-toolchain.sh.

[versions]
agp = "8.11.0"
kotlin = "2.3.0"
agp = "9.3.1"
kotlin = "2.3.21"

# appcompat tracks the repo majority (21 modules) and matches the literal in
# this plugin's build.gradle.kts. Declaring 1.7.1 here while the parent module pinned
Expand Down
1 change: 0 additions & 1 deletion plugins/AI-Agent-Local/llama-impl/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
plugins {
id("com.android.library")
id("org.jetbrains.kotlin.android")
}

kotlin {
Expand Down
4 changes: 2 additions & 2 deletions plugins/AI-Agent-Local/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ buildscript {
dependencies {
classpath(files("../../libs/plugin-api.jar"))
classpath(files("../../libs/gradle-plugin.jar"))
classpath("com.android.tools.build:gradle:8.11.0")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.0")
classpath("com.android.tools.build:gradle:9.3.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.21")
}
}

Expand Down
3 changes: 1 addition & 2 deletions plugins/AI-Agent-MCP/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("com.itsaky.androidide.plugins.build")
}

Expand Down Expand Up @@ -70,7 +69,7 @@ dependencies {
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("androidx.fragment:fragment-ktx:1.8.8")
implementation("com.google.android.material:material:1.10.0")
implementation("org.jetbrains.kotlin:kotlin-stdlib:2.3.0")
implementation("org.jetbrains.kotlin:kotlin-stdlib:2.3.21")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1")

testImplementation(files("../../libs/plugin-api.jar"))
Expand Down
4 changes: 2 additions & 2 deletions plugins/AI-Agent-MCP/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ buildscript {
dependencies {
classpath(files("../../libs/plugin-api.jar"))
classpath(files("../../libs/gradle-plugin.jar"))
classpath("com.android.tools.build:gradle:8.11.0")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.0")
classpath("com.android.tools.build:gradle:9.3.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.21")
}
}

Expand Down
3 changes: 1 addition & 2 deletions plugins/AI-Agent-OpenAI/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("com.itsaky.androidide.plugins.build")
}

Expand Down Expand Up @@ -62,7 +61,7 @@ dependencies {
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("androidx.fragment:fragment-ktx:1.8.8")
implementation("com.google.android.material:material:1.10.0")
implementation("org.jetbrains.kotlin:kotlin-stdlib:2.3.0")
implementation("org.jetbrains.kotlin:kotlin-stdlib:2.3.21")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")

testImplementation(files("../../libs/plugin-api.jar"))
Expand Down
4 changes: 2 additions & 2 deletions plugins/AI-Agent-OpenAI/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ buildscript {
dependencies {
classpath(files("../../libs/plugin-api.jar"))
classpath(files("../../libs/gradle-plugin.jar"))
classpath("com.android.tools.build:gradle:8.11.0")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.0")
classpath("com.android.tools.build:gradle:9.3.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.21")
}
}

Expand Down
1 change: 0 additions & 1 deletion plugins/AI-Code-Suggestions/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("com.itsaky.androidide.plugins.build")
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
4 changes: 2 additions & 2 deletions plugins/AI-Code-Suggestions/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ buildscript {
dependencies {
classpath(files("../../libs/plugin-api.jar"))
classpath(files("../../libs/gradle-plugin.jar"))
classpath("com.android.tools.build:gradle:8.11.0")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.0")
classpath("com.android.tools.build:gradle:9.3.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.21")
}
}

Expand Down
Loading
Loading