diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 990acf447..b9893a0e5 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -151,6 +151,9 @@
+
+
+
diff --git a/actions/build.gradle.kts b/actions/build.gradle.kts
index 03627edc0..2aa2b43ad 100644
--- a/actions/build.gradle.kts
+++ b/actions/build.gradle.kts
@@ -1,3 +1,22 @@
+/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins{
id("com.android.library")
id("kotlin-android")
diff --git a/annotation-processors-ksp/build.gradle.kts b/annotation-processors-ksp/build.gradle.kts
index 3e573d236..99567d82a 100644
--- a/annotation-processors-ksp/build.gradle.kts
+++ b/annotation-processors-ksp/build.gradle.kts
@@ -1,5 +1,3 @@
-import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
-
/*
* This file is part of AndroidIDE.
*
@@ -17,6 +15,9 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
* along with AndroidIDE. If not, see .
*/
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
kotlin("jvm")
}
diff --git a/annotation-processors/build.gradle.kts b/annotation-processors/build.gradle.kts
index 03c28ece2..f80a7adfc 100644
--- a/annotation-processors/build.gradle.kts
+++ b/annotation-processors/build.gradle.kts
@@ -1,5 +1,3 @@
-import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
-
/*
* This file is part of AndroidIDE.
*
@@ -17,6 +15,9 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
* along with AndroidIDE. If not, see .
*/
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
kotlin("jvm")
}
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 73310eb63..8b6a73caf 100755
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -1,6 +1,7 @@
@file:Suppress("UnstableApiUsage")
import com.itsaky.androidide.plugins.AndroidIDEAssetsPlugin
+import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.application")
diff --git a/build-info/build.gradle.kts b/build-info/build.gradle.kts
index e11780f92..30e451ff1 100644
--- a/build-info/build.gradle.kts
+++ b/build-info/build.gradle.kts
@@ -1,5 +1,3 @@
-import org.jetbrains.kotlin.incremental.createDirectory
-
/*
* This file is part of AndroidIDE.
*
@@ -17,14 +15,28 @@ import org.jetbrains.kotlin.incremental.createDirectory
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.AGP_VERSION_MINIMUM
+import com.itsaky.androidide.build.config.BuildConfig
+import com.itsaky.androidide.build.config.CI
+import com.itsaky.androidide.build.config.FDroidConfig
+import com.itsaky.androidide.build.config.ProjectConfig
+import com.itsaky.androidide.build.config.VersionUtils
+import com.itsaky.androidide.build.config.downloadVersion
+import com.itsaky.androidide.build.config.publishingVersion
+import com.itsaky.androidide.build.config.replaceContents
+import com.itsaky.androidide.build.config.simpleVersionName
+import org.jetbrains.kotlin.incremental.createDirectory
+
plugins {
+ //noinspection JavaPluginLanguageLevel
id("java-library")
id("com.vanniktech.maven.publish.base")
}
description = "Information about the AndroidIDE build"
-val buildInfoGenDir: Provider = project.layout.buildDirectory.dir("generated/buildInfo").also { it.get().asFile.createDirectory() }
+val buildInfoGenDir: Provider = project.layout.buildDirectory.dir("generated/buildInfo")
+ .also { it.get().asFile.createDirectory() }
sourceSets { getByName("main").java.srcDir(buildInfoGenDir) }
@@ -38,34 +50,34 @@ tasks.create("generateBuildInfo") {
dest = buildInfo.asFile,
comment = "//",
candidates =
- arrayOf(
- "PACKAGE_NAME" to BuildConfig.packageName,
- "MVN_GROUP_ID" to BuildConfig.packageName,
+ arrayOf(
+ "PACKAGE_NAME" to BuildConfig.packageName,
+ "MVN_GROUP_ID" to BuildConfig.packageName,
- "VERSION_NAME" to rootProject.version.toString(),
- "VERSION_NAME_SIMPLE" to rootProject.simpleVersionName,
- "VERSION_NAME_PUBLISHING" to rootProject.publishingVersion,
- "VERSION_NAME_DOWNLOAD" to rootProject.downloadVersion,
+ "VERSION_NAME" to rootProject.version.toString(),
+ "VERSION_NAME_SIMPLE" to rootProject.simpleVersionName,
+ "VERSION_NAME_PUBLISHING" to rootProject.publishingVersion,
+ "VERSION_NAME_DOWNLOAD" to rootProject.downloadVersion,
- "FDROID_BUILD" to FDroidConfig.isFDroidBuild.toString(),
- "FDROID_BUILD_VERSION_NAME" to (FDroidConfig.fDroidVersionName ?: "null"),
- "FDROID_BUILD_VERSION_CODE" to (FDroidConfig.fDroidVersionCode ?: -1).toString(),
+ "FDROID_BUILD" to FDroidConfig.isFDroidBuild.toString(),
+ "FDROID_BUILD_VERSION_NAME" to (FDroidConfig.fDroidVersionName ?: "null"),
+ "FDROID_BUILD_VERSION_CODE" to (FDroidConfig.fDroidVersionCode ?: -1).toString(),
- "CI_BUILD" to CI.isCiBuild.toString(),
- "CI_GIT_BRANCH" to CI.branchName,
- "CI_COMMIT_HASH" to CI.commitHash,
+ "CI_BUILD" to CI.isCiBuild.toString(),
+ "CI_GIT_BRANCH" to CI.branchName,
+ "CI_COMMIT_HASH" to CI.commitHash,
- "REPO_HOST" to ProjectConfig.REPO_HOST,
- "REPO_OWNER" to ProjectConfig.REPO_OWNER,
- "REPO_NAME" to ProjectConfig.REPO_NAME,
- "PROJECT_SITE" to ProjectConfig.PROJECT_SITE,
+ "REPO_HOST" to ProjectConfig.REPO_HOST,
+ "REPO_OWNER" to ProjectConfig.REPO_OWNER,
+ "REPO_NAME" to ProjectConfig.REPO_NAME,
+ "PROJECT_SITE" to ProjectConfig.PROJECT_SITE,
- "AGP_VERSION_MININUM" to AGP_VERSION_MINIMUM,
- "AGP_VERSION_LATEST" to libs.versions.agp.tooling.get(),
+ "AGP_VERSION_MININUM" to AGP_VERSION_MINIMUM,
+ "AGP_VERSION_LATEST" to libs.versions.agp.tooling.get(),
- "SNAPSHOTS_REPOSITORY" to VersionUtils.SONATYPE_SNAPSHOTS_REPO,
- "PUBLIC_REPOSITORY" to VersionUtils.SONATYPE_PUBLIC_REPO,
- )
+ "SNAPSHOTS_REPOSITORY" to VersionUtils.SONATYPE_SNAPSHOTS_REPO,
+ "PUBLIC_REPOSITORY" to VersionUtils.SONATYPE_PUBLIC_REPO,
+ )
)
}
}
diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts
new file mode 100644
index 000000000..ad7249495
--- /dev/null
+++ b/build-logic/build.gradle.kts
@@ -0,0 +1,25 @@
+/*
+* This file is part of AndroidIDE.
+*
+* AndroidIDE is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* AndroidIDE is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with AndroidIDE. If not, see .
+*/
+
+subprojects {
+ plugins.withId("java-library") {
+ extensions.getByType(JavaPluginExtension::class.java).apply {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+ }
+ }
+}
\ No newline at end of file
diff --git a/build-logic/common/.gitignore b/build-logic/common/.gitignore
new file mode 100644
index 000000000..42afabfd2
--- /dev/null
+++ b/build-logic/common/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/build-logic/common/build.gradle.kts b/build-logic/common/build.gradle.kts
new file mode 100644
index 000000000..b15036d67
--- /dev/null
+++ b/build-logic/common/build.gradle.kts
@@ -0,0 +1,32 @@
+/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+
+plugins {
+ //noinspection JavaPluginLanguageLevel
+ id("java-library")
+ alias(libs.plugins.kotlin.jvm)
+}
+
+tasks.withType {
+ kotlinOptions.jvmTarget = "17"
+}
+
+dependencies {
+ api(gradleApi())
+}
\ No newline at end of file
diff --git a/build-logic/ide/src/main/java/BuildConfig.kt b/build-logic/common/src/main/java/com/itsaky/androidide/build/config/BuildConfig.kt
similarity index 96%
rename from build-logic/ide/src/main/java/BuildConfig.kt
rename to build-logic/common/src/main/java/com/itsaky/androidide/build/config/BuildConfig.kt
index 16b7775e4..08201c47e 100644
--- a/build-logic/ide/src/main/java/BuildConfig.kt
+++ b/build-logic/common/src/main/java/com/itsaky/androidide/build/config/BuildConfig.kt
@@ -1,4 +1,4 @@
-/*
+package com.itsaky.androidide.build.config/*
* This file is part of AndroidIDE.
*
* AndroidIDE is free software: you can redistribute it and/or modify
diff --git a/build-logic/ide/src/main/java/CI.kt b/build-logic/common/src/main/java/com/itsaky/androidide/build/config/CI.kt
similarity index 66%
rename from build-logic/ide/src/main/java/CI.kt
rename to build-logic/common/src/main/java/com/itsaky/androidide/build/config/CI.kt
index bb4d520ea..af62ce518 100644
--- a/build-logic/ide/src/main/java/CI.kt
+++ b/build-logic/common/src/main/java/com/itsaky/androidide/build/config/CI.kt
@@ -15,8 +15,24 @@
* along with AndroidIDE. If not, see .
*/
+package com.itsaky.androidide.build.config/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
import java.io.File
-import org.gradle.kotlin.dsl.provideDelegate
/**
* Information about the CI build.
@@ -33,7 +49,8 @@ object CI {
/** Name of the current branch. */
val branchName by lazy {
- System.getenv("GITHUB_REF_NAME") ?: cmdOutput("git", "rev-parse", "--abbrev-ref", "HEAD") // by default, 'main'
+ System.getenv("GITHUB_REF_NAME") ?: cmdOutput("git", "rev-parse", "--abbrev-ref",
+ "HEAD") // by default, 'main'
}
/** Whether the current build is a CI build. */
diff --git a/build-logic/ide/src/main/java/FDroidConfig.kt b/build-logic/common/src/main/java/com/itsaky/androidide/build/config/FDroidConfig.kt
similarity index 79%
rename from build-logic/ide/src/main/java/FDroidConfig.kt
rename to build-logic/common/src/main/java/com/itsaky/androidide/build/config/FDroidConfig.kt
index ea089c84c..8d65c1e6d 100644
--- a/build-logic/ide/src/main/java/FDroidConfig.kt
+++ b/build-logic/common/src/main/java/com/itsaky/androidide/build/config/FDroidConfig.kt
@@ -15,6 +15,23 @@
* along with AndroidIDE. If not, see .
*/
+package com.itsaky.androidide.build.config/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
import org.gradle.api.Project
import java.io.File
diff --git a/build-logic/ide/src/main/java/ProjectConfig.kt b/build-logic/common/src/main/java/com/itsaky/androidide/build/config/ProjectConfig.kt
similarity index 73%
rename from build-logic/ide/src/main/java/ProjectConfig.kt
rename to build-logic/common/src/main/java/com/itsaky/androidide/build/config/ProjectConfig.kt
index 85647534f..cc146f257 100644
--- a/build-logic/ide/src/main/java/ProjectConfig.kt
+++ b/build-logic/common/src/main/java/com/itsaky/androidide/build/config/ProjectConfig.kt
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+package com.itsaky.androidide.build.config
+
import org.gradle.api.Project
/** @author Akash Yadav */
@@ -23,11 +25,11 @@ object ProjectConfig {
const val REPO_HOST = "github.com"
const val REPO_OWNER = "AndroidIDEOfficial"
const val REPO_NAME = "AndroidIDE"
- const val REPO_URL = "https://${REPO_HOST}/${REPO_OWNER}/${REPO_NAME}"
+ const val REPO_URL = "https://$REPO_HOST/$REPO_OWNER/$REPO_NAME"
const val SCM_GIT =
- "scm:git:git://${REPO_HOST}/${REPO_OWNER}/${REPO_NAME}.git"
+ "scm:git:git://$REPO_HOST/$REPO_OWNER/$REPO_NAME.git"
const val SCM_SSH =
- "scm:git:ssh://git@${REPO_HOST}/${REPO_OWNER}/${REPO_NAME}.git"
+ "scm:git:ssh://git@$REPO_HOST/$REPO_OWNER/$REPO_NAME.git"
const val PROJECT_SITE = "https://m.androidide.com"
}
@@ -39,10 +41,10 @@ private var shouldPrintVersionName = true
*/
val Project.isFDroidBuild: Boolean
get() {
- if (!FDroidConfig.hasRead) {
- FDroidConfig.load(this)
+ if (!com.itsaky.androidide.build.config.FDroidConfig.hasRead) {
+ com.itsaky.androidide.build.config.FDroidConfig.load(this)
}
- return FDroidConfig.isFDroidBuild
+ return com.itsaky.androidide.build.config.FDroidConfig.isFDroidBuild
}
val Project.simpleVersionName: String
@@ -52,14 +54,14 @@ val Project.simpleVersionName: String
val regex = Regex("^v\\d+\\.?\\d+\\.?\\d+-\\w+")
val simpleVersion = regex.find(version)?.value?.substring(1)?.also {
- if (shouldPrintVersionName) {
+ if (com.itsaky.androidide.build.config.shouldPrintVersionName) {
logger.warn("Simple version name is '$it' (from version $version)")
- shouldPrintVersionName = false
+ com.itsaky.androidide.build.config.shouldPrintVersionName = false
}
}
if (simpleVersion == null) {
- if (CI.isTestEnv) {
+ if (com.itsaky.androidide.build.config.CI.isTestEnv) {
return "1.0.0-beta"
}
@@ -78,9 +80,9 @@ val Project.projectVersionCode: Int
val regex = Regex("^\\d+\\.?\\d+\\.?\\d+")
val versionCode = regex.find(version)?.value?.replace(".", "")?.toInt()?.also {
- if (shouldPrintVersionCode) {
+ if (com.itsaky.androidide.build.config.shouldPrintVersionCode) {
logger.warn("Version code is '$it' (from version ${version}).")
- shouldPrintVersionCode = false
+ com.itsaky.androidide.build.config.shouldPrintVersionCode = false
}
}
?: throw IllegalStateException(
@@ -100,8 +102,8 @@ val Project.publishingVersion: String
return publishing
}
- if (CI.isCiBuild && CI.branchName != "main") {
- publishing += "-${CI.commitHash}-SNAPSHOT"
+ if (com.itsaky.androidide.build.config.CI.isCiBuild && com.itsaky.androidide.build.config.CI.branchName != "main") {
+ publishing += "-${com.itsaky.androidide.build.config.CI.commitHash}-SNAPSHOT"
}
return publishing
@@ -116,11 +118,11 @@ val Project.publishingVersion: String
*/
val Project.downloadVersion: String
get() {
- return if (CI.isCiBuild || isFDroidBuild) {
+ return if (com.itsaky.androidide.build.config.CI.isCiBuild || isFDroidBuild) {
publishingVersion
} else {
// sometimes, when working locally, Gradle fails to download the latest snapshot version
// this may cause issues while initializing the project in AndroidIDE
- VersionUtils.getLatestSnapshotVersion("gradle-plugin")
+ com.itsaky.androidide.build.config.VersionUtils.getLatestSnapshotVersion("gradle-plugin")
}
}
diff --git a/build-logic/ide/src/main/java/VersionUtils.kt b/build-logic/common/src/main/java/com/itsaky/androidide/build/config/VersionUtils.kt
similarity index 95%
rename from build-logic/ide/src/main/java/VersionUtils.kt
rename to build-logic/common/src/main/java/com/itsaky/androidide/build/config/VersionUtils.kt
index 209a48389..2a0db67ac 100644
--- a/build-logic/ide/src/main/java/VersionUtils.kt
+++ b/build-logic/common/src/main/java/com/itsaky/androidide/build/config/VersionUtils.kt
@@ -1,9 +1,3 @@
-import org.gradle.api.GradleException
-import java.io.BufferedInputStream
-import java.net.URI
-import javax.xml.parsers.DocumentBuilderFactory
-import javax.xml.xpath.XPathFactory
-
/*
* This file is part of AndroidIDE.
*
@@ -21,6 +15,14 @@ import javax.xml.xpath.XPathFactory
* along with AndroidIDE. If not, see .
*/
+package com.itsaky.androidide.build.config
+
+import org.gradle.api.GradleException
+import java.io.BufferedInputStream
+import java.net.URI
+import javax.xml.parsers.DocumentBuilderFactory
+import javax.xml.xpath.XPathFactory
+
/**
* @author Akash Yadav
*/
@@ -57,7 +59,7 @@ object VersionUtils {
}
val groupId = BuildConfig.packageName.replace('.', '/')
- val moduleMetadata = "${SONATYPE_SNAPSHOTS_REPO}/$groupId/${artifact}/maven-metadata.xml"
+ val moduleMetadata = "$SONATYPE_SNAPSHOTS_REPO/$groupId/${artifact}/maven-metadata.xml"
return try {
BufferedInputStream(URI.create(moduleMetadata).toURL().openStream()).use { inputStream ->
val builderFactory = DocumentBuilderFactory.newInstance()
diff --git a/build-logic/ide/src/main/java/config.kt b/build-logic/common/src/main/java/com/itsaky/androidide/build/config/config.kt
similarity index 96%
rename from build-logic/ide/src/main/java/config.kt
rename to build-logic/common/src/main/java/com/itsaky/androidide/build/config/config.kt
index ef317dff3..05e84f4de 100644
--- a/build-logic/ide/src/main/java/config.kt
+++ b/build-logic/common/src/main/java/com/itsaky/androidide/build/config/config.kt
@@ -1,4 +1,4 @@
-/*
+package com.itsaky.androidide.build.config/*
* This file is part of AndroidIDE.
*
* AndroidIDE is free software: you can redistribute it and/or modify
diff --git a/build-logic/ide/src/main/java/utils.kt b/build-logic/common/src/main/java/com/itsaky/androidide/build/config/utils.kt
similarity index 97%
rename from build-logic/ide/src/main/java/utils.kt
rename to build-logic/common/src/main/java/com/itsaky/androidide/build/config/utils.kt
index 76758186c..ebb1f1b36 100644
--- a/build-logic/ide/src/main/java/utils.kt
+++ b/build-logic/common/src/main/java/com/itsaky/androidide/build/config/utils.kt
@@ -1,5 +1,3 @@
-import java.io.File
-
/*
* This file is part of AndroidIDE.
*
@@ -17,6 +15,10 @@ import java.io.File
* along with AndroidIDE. If not, see .
*/
+package com.itsaky.androidide.build.config
+
+import java.io.File
+
/** @author Akash Yadav */
private const val generatedWarning = "DO NOT EDIT - Automatically generated file"
diff --git a/build-logic/ide/.gitignore b/build-logic/plugins/.gitignore
similarity index 100%
rename from build-logic/ide/.gitignore
rename to build-logic/plugins/.gitignore
diff --git a/build-logic/ide/build.gradle.kts b/build-logic/plugins/build.gradle.kts
similarity index 90%
rename from build-logic/ide/build.gradle.kts
rename to build-logic/plugins/build.gradle.kts
index 82139f2f0..11f63b75f 100644
--- a/build-logic/ide/build.gradle.kts
+++ b/build-logic/plugins/build.gradle.kts
@@ -1,5 +1,3 @@
-import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
-
/*
* This file is part of AndroidIDE.
*
@@ -17,6 +15,8 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
* along with AndroidIDE. If not, see .
*/
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+
plugins {
`kotlin-dsl`
}
@@ -27,17 +27,13 @@ repositories {
mavenCentral()
}
-java {
- sourceCompatibility = JavaVersion.VERSION_17
- targetCompatibility = JavaVersion.VERSION_17
-}
-
tasks.withType {
kotlinOptions.jvmTarget = "17"
}
dependencies {
- implementation(gradleApi())
+ implementation(projects.buildLogic.common)
+ implementation(projects.buildLogic.propertiesParser)
implementation("com.android.tools.build:gradle:${libs.versions.agp.asProvider().get()}")
implementation(libs.maven.publish)
diff --git a/build-logic/ide/src/main/java/build-logic.root-project.gradle.kts b/build-logic/plugins/src/main/java/build-logic.root-project.gradle.kts
similarity index 100%
rename from build-logic/ide/src/main/java/build-logic.root-project.gradle.kts
rename to build-logic/plugins/src/main/java/build-logic.root-project.gradle.kts
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/AndroidIDEAssetsPlugin.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/AndroidIDEAssetsPlugin.kt
similarity index 97%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/AndroidIDEAssetsPlugin.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/AndroidIDEAssetsPlugin.kt
index 498a0869f..360458ceb 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/AndroidIDEAssetsPlugin.kt
+++ b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/AndroidIDEAssetsPlugin.kt
@@ -17,16 +17,15 @@
package com.itsaky.androidide.plugins
-import BuildConfig
-import VersionUtils
import com.android.build.api.variant.ApplicationAndroidComponentsExtension
+import com.itsaky.androidide.build.config.BuildConfig
+import com.itsaky.androidide.build.config.downloadVersion
import com.itsaky.androidide.plugins.tasks.AddAndroidJarToAssetsTask
import com.itsaky.androidide.plugins.tasks.AddFileToAssetsTask
import com.itsaky.androidide.plugins.tasks.GenerateInitScriptTask
import com.itsaky.androidide.plugins.tasks.GradleWrapperGeneratorTask
import com.itsaky.androidide.plugins.tasks.SetupAapt2Task
import com.itsaky.androidide.plugins.util.SdkUtils.getAndroidJar
-import downloadVersion
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.configurationcache.extensions.capitalized
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/AndroidIDEPlugin.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/AndroidIDEPlugin.kt
similarity index 97%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/AndroidIDEPlugin.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/AndroidIDEPlugin.kt
index caec88256..88fe965be 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/AndroidIDEPlugin.kt
+++ b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/AndroidIDEPlugin.kt
@@ -18,7 +18,7 @@
package com.itsaky.androidide.plugins
import com.android.build.gradle.BaseExtension
-import isFDroidBuild
+import com.itsaky.androidide.build.config.isFDroidBuild
import org.gradle.api.GradleException
import org.gradle.api.Plugin
import org.gradle.api.Project
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/LexerGeneratorPlugin.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/LexerGeneratorPlugin.kt
similarity index 97%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/LexerGeneratorPlugin.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/LexerGeneratorPlugin.kt
index 83b4fafc5..32d07f4f7 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/LexerGeneratorPlugin.kt
+++ b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/LexerGeneratorPlugin.kt
@@ -17,7 +17,7 @@
package com.itsaky.androidide.plugins
-import BuildConfig
+import com.itsaky.androidide.build.config.BuildConfig
import org.antlr.v4.Tool
import org.gradle.api.Plugin
import org.gradle.api.Project
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/PropertiesParserPlugin.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/PropertiesParserPlugin.kt
similarity index 96%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/PropertiesParserPlugin.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/PropertiesParserPlugin.kt
index 022b62547..0cc380c42 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/PropertiesParserPlugin.kt
+++ b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/PropertiesParserPlugin.kt
@@ -17,8 +17,8 @@
package com.itsaky.androidide.plugins
-import com.itsaky.androidide.plugins.properties.PropertiesParser
-import com.itsaky.androidide.plugins.properties.gen.ClassGenerator
+import com.itsaky.androidide.build.propparser.PropertiesParser
+import com.itsaky.androidide.build.propparser.gen.ClassGenerator
import org.gradle.api.GradleException
import org.gradle.api.Plugin
import org.gradle.api.Project
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/SigningConfigPlugin.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/SigningConfigPlugin.kt
similarity index 89%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/SigningConfigPlugin.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/SigningConfigPlugin.kt
index 1db5b79ca..97a6db533 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/SigningConfigPlugin.kt
+++ b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/SigningConfigPlugin.kt
@@ -17,16 +17,16 @@
package com.itsaky.androidide.plugins
-import KEY_ALIAS
-import KEY_PASS
-import KEY_STORE_PASS
+import com.itsaky.androidide.build.config.KEY_ALIAS
+import com.itsaky.androidide.build.config.KEY_PASS
+import com.itsaky.androidide.build.config.KEY_STORE_PASS
import com.android.build.gradle.BaseExtension
import com.itsaky.androidide.plugins.util.SigningKeyUtils.downloadSigningKey
import com.itsaky.androidide.plugins.util.SigningKeyUtils.getEnvOrProp
-import isFDroidBuild
+import com.itsaky.androidide.build.config.isFDroidBuild
import org.gradle.api.Plugin
import org.gradle.api.Project
-import signingKey
+import com.itsaky.androidide.build.config.signingKey
/**
* Configures the signing keys to application modules.
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/TerminalBootstrapPackagesPlugin.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/TerminalBootstrapPackagesPlugin.kt
similarity index 100%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/TerminalBootstrapPackagesPlugin.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/TerminalBootstrapPackagesPlugin.kt
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/conf/AndroidModuleConf.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/conf/AndroidModuleConf.kt
similarity index 96%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/conf/AndroidModuleConf.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/conf/AndroidModuleConf.kt
index b2dd41fa0..9f1a8d27f 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/conf/AndroidModuleConf.kt
+++ b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/conf/AndroidModuleConf.kt
@@ -17,20 +17,19 @@
package com.itsaky.androidide.plugins.conf
-import BuildConfig
-import FDroidConfig
import com.android.build.api.dsl.CommonExtension
import com.android.build.api.variant.AndroidComponentsExtension
import com.android.build.api.variant.ApplicationAndroidComponentsExtension
import com.android.build.api.variant.FilterConfiguration
import com.android.build.api.variant.impl.getFilter
import com.android.build.gradle.BaseExtension
+import com.itsaky.androidide.build.config.BuildConfig
+import com.itsaky.androidide.build.config.FDroidConfig
+import com.itsaky.androidide.build.config.isFDroidBuild
+import com.itsaky.androidide.build.config.projectVersionCode
import com.itsaky.androidide.plugins.util.SdkUtils.getAndroidJar
-import isFDroidBuild
import org.gradle.api.Project
import org.gradle.api.artifacts.Dependency
-import org.gradle.kotlin.dsl.register
-import projectVersionCode
/**
* ABIs for which the product flavors will be created.
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/conf/JavaModuleConf.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/conf/JavaModuleConf.kt
similarity index 95%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/conf/JavaModuleConf.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/conf/JavaModuleConf.kt
index 94ee12b27..89fe6849f 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/conf/JavaModuleConf.kt
+++ b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/conf/JavaModuleConf.kt
@@ -17,7 +17,7 @@
package com.itsaky.androidide.plugins.conf
-import BuildConfig
+import com.itsaky.androidide.build.config.BuildConfig
import org.gradle.api.Project
import org.gradle.api.plugins.JavaPluginExtension
import org.gradle.kotlin.dsl.configure
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/conf/MavenPublishConf.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/conf/MavenPublishConf.kt
similarity index 97%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/conf/MavenPublishConf.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/conf/MavenPublishConf.kt
index f855d47a8..03293ed44 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/conf/MavenPublishConf.kt
+++ b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/conf/MavenPublishConf.kt
@@ -17,7 +17,7 @@
package com.itsaky.androidide.plugins.conf
-import ProjectConfig
+import com.itsaky.androidide.build.config.ProjectConfig
import com.vanniktech.maven.publish.AndroidMultiVariantLibrary
import com.vanniktech.maven.publish.GradlePlugin
import com.vanniktech.maven.publish.JavaLibrary
@@ -32,7 +32,7 @@ import org.gradle.api.tasks.testing.Test
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.create
import org.gradle.kotlin.dsl.withType
-import publishingVersion
+import com.itsaky.androidide.build.config.publishingVersion
import java.io.File
private val projectsRequiringMavenLocalForTests = arrayOf(":gradle-plugin")
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/AddAndroidJarToAssetsTask.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/AddAndroidJarToAssetsTask.kt
similarity index 97%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/AddAndroidJarToAssetsTask.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/AddAndroidJarToAssetsTask.kt
index 7a5fb5c84..8d6bcc407 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/AddAndroidJarToAssetsTask.kt
+++ b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/AddAndroidJarToAssetsTask.kt
@@ -17,7 +17,7 @@
package com.itsaky.androidide.plugins.tasks
-import BuildConfig
+import com.itsaky.androidide.build.config.BuildConfig
import org.gradle.api.DefaultTask
import org.gradle.api.GradleException
import org.gradle.api.file.DirectoryProperty
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/AddFileToAssetsTask.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/AddFileToAssetsTask.kt
similarity index 100%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/AddFileToAssetsTask.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/AddFileToAssetsTask.kt
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/GenerateInitScriptTask.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/GenerateInitScriptTask.kt
similarity index 97%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/GenerateInitScriptTask.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/GenerateInitScriptTask.kt
index 9cb79e2ab..09b552291 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/GenerateInitScriptTask.kt
+++ b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/GenerateInitScriptTask.kt
@@ -17,7 +17,7 @@
package com.itsaky.androidide.plugins.tasks
-import VersionUtils
+import com.itsaky.androidide.build.config.VersionUtils
import org.gradle.api.DefaultTask
import org.gradle.api.file.DirectoryProperty
import org.gradle.api.provider.Property
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/GradleVersionResolver.java b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/GradleVersionResolver.java
similarity index 100%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/GradleVersionResolver.java
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/GradleVersionResolver.java
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/GradleWrapperGeneratorTask.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/GradleWrapperGeneratorTask.kt
similarity index 100%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/GradleWrapperGeneratorTask.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/GradleWrapperGeneratorTask.kt
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/IDEWrapperGenerator.java b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/IDEWrapperGenerator.java
similarity index 100%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/IDEWrapperGenerator.java
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/IDEWrapperGenerator.java
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/SetupAapt2Task.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/SetupAapt2Task.kt
similarity index 96%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/SetupAapt2Task.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/SetupAapt2Task.kt
index a6163fbc0..cc17979c5 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/SetupAapt2Task.kt
+++ b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/SetupAapt2Task.kt
@@ -17,10 +17,10 @@
package com.itsaky.androidide.plugins.tasks
-import FDroidConfig
+import com.itsaky.androidide.build.config.FDroidConfig
import com.itsaky.androidide.plugins.util.DownloadUtils
import com.itsaky.androidide.plugins.util.ELFUtils
-import isFDroidBuild
+import com.itsaky.androidide.build.config.isFDroidBuild
import org.gradle.api.DefaultTask
import org.gradle.api.file.DirectoryProperty
import org.gradle.api.tasks.OutputDirectory
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/internal/WrapperDefaults.java b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/internal/WrapperDefaults.java
similarity index 100%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/internal/WrapperDefaults.java
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/internal/WrapperDefaults.java
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/internal/WrapperGenerator.java b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/internal/WrapperGenerator.java
similarity index 100%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/tasks/internal/WrapperGenerator.java
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/tasks/internal/WrapperGenerator.java
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/util/DownloadUtils.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/util/DownloadUtils.kt
similarity index 100%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/util/DownloadUtils.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/util/DownloadUtils.kt
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/util/ELFUtils.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/util/ELFUtils.kt
similarity index 100%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/util/ELFUtils.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/util/ELFUtils.kt
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/util/SdkUtils.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/util/SdkUtils.kt
similarity index 96%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/util/SdkUtils.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/util/SdkUtils.kt
index b1f31f303..662845daa 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/util/SdkUtils.kt
+++ b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/util/SdkUtils.kt
@@ -17,7 +17,7 @@
package com.itsaky.androidide.plugins.util
-import BuildConfig
+import com.itsaky.androidide.build.config.BuildConfig
import com.android.build.api.variant.AndroidComponentsExtension
import java.io.File
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/util/SigningKeyUtils.kt b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/util/SigningKeyUtils.kt
similarity index 90%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/util/SigningKeyUtils.kt
rename to build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/util/SigningKeyUtils.kt
index 2125627af..02224e6fb 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/util/SigningKeyUtils.kt
+++ b/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/util/SigningKeyUtils.kt
@@ -17,12 +17,12 @@
package com.itsaky.androidide.plugins.util
-import AUTH_PASS
-import AUTH_USER
-import KEY_BIN
-import KEY_URL
+import com.itsaky.androidide.build.config.AUTH_PASS
+import com.itsaky.androidide.build.config.AUTH_USER
+import com.itsaky.androidide.build.config.KEY_BIN
+import com.itsaky.androidide.build.config.KEY_URL
import org.gradle.api.Project
-import signingKey
+import com.itsaky.androidide.build.config.signingKey
import java.util.Base64
/**
diff --git a/build-logic/properties-parser/.gitignore b/build-logic/properties-parser/.gitignore
new file mode 100644
index 000000000..42afabfd2
--- /dev/null
+++ b/build-logic/properties-parser/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/build-logic/properties-parser/build.gradle.kts b/build-logic/properties-parser/build.gradle.kts
new file mode 100644
index 000000000..77d00c5c5
--- /dev/null
+++ b/build-logic/properties-parser/build.gradle.kts
@@ -0,0 +1,25 @@
+/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
+plugins {
+ //noinspection JavaPluginLanguageLevel
+ id("java-library")
+}
+
+dependencies {
+ api(projects.buildLogic.common)
+}
\ No newline at end of file
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/PropertiesParser.java b/build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/PropertiesParser.java
similarity index 95%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/PropertiesParser.java
rename to build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/PropertiesParser.java
index 6a4aef5f1..1727a2e1a 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/PropertiesParser.java
+++ b/build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/PropertiesParser.java
@@ -23,10 +23,10 @@
* questions.
*/
-package com.itsaky.androidide.plugins.properties;
+package com.itsaky.androidide.build.propparser;
-import com.itsaky.androidide.plugins.properties.gen.ClassGenerator;
-import com.itsaky.androidide.plugins.properties.parser.MessageFile;
+import com.itsaky.androidide.build.propparser.gen.ClassGenerator;
+import com.itsaky.androidide.build.propparser.parser.MessageFile;
import java.io.File;
import java.io.PrintStream;
import java.util.Map;
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/gen/ClassGenerator.java b/build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/gen/ClassGenerator.java
similarity index 96%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/gen/ClassGenerator.java
rename to build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/gen/ClassGenerator.java
index 52ac948f2..ce4eccf17 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/gen/ClassGenerator.java
+++ b/build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/gen/ClassGenerator.java
@@ -23,20 +23,20 @@
* questions.
*/
-package com.itsaky.androidide.plugins.properties.gen;
+package com.itsaky.androidide.build.propparser.gen;
import static java.util.stream.Collectors.toList;
-import com.itsaky.androidide.plugins.properties.parser.Message;
-import com.itsaky.androidide.plugins.properties.parser.MessageFile;
-import com.itsaky.androidide.plugins.properties.parser.MessageInfo;
-import com.itsaky.androidide.plugins.properties.parser.MessageLine;
-import com.itsaky.androidide.plugins.properties.parser.MessageType;
-import com.itsaky.androidide.plugins.properties.parser.MessageType.CompoundType;
-import com.itsaky.androidide.plugins.properties.parser.MessageType.CustomType;
-import com.itsaky.androidide.plugins.properties.parser.MessageType.SimpleType;
-import com.itsaky.androidide.plugins.properties.parser.MessageType.UnionType;
-import com.itsaky.androidide.plugins.properties.parser.MessageType.Visitor;
+import com.itsaky.androidide.build.propparser.parser.Message;
+import com.itsaky.androidide.build.propparser.parser.MessageFile;
+import com.itsaky.androidide.build.propparser.parser.MessageInfo;
+import com.itsaky.androidide.build.propparser.parser.MessageLine;
+import com.itsaky.androidide.build.propparser.parser.MessageType;
+import com.itsaky.androidide.build.propparser.parser.MessageType.CompoundType;
+import com.itsaky.androidide.build.propparser.parser.MessageType.CustomType;
+import com.itsaky.androidide.build.propparser.parser.MessageType.SimpleType;
+import com.itsaky.androidide.build.propparser.parser.MessageType.UnionType;
+import com.itsaky.androidide.build.propparser.parser.MessageType.Visitor;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileWriter;
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/parser/Message.java b/build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/parser/Message.java
similarity index 98%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/parser/Message.java
rename to build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/parser/Message.java
index 04cb3e046..6091cb535 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/parser/Message.java
+++ b/build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/parser/Message.java
@@ -23,7 +23,7 @@
* questions.
*/
-package com.itsaky.androidide.plugins.properties.parser;
+package com.itsaky.androidide.build.propparser.parser;
import java.util.ArrayList;
import java.util.List;
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/parser/MessageFile.java b/build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/parser/MessageFile.java
similarity index 97%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/parser/MessageFile.java
rename to build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/parser/MessageFile.java
index eb4a259b2..ee5f9ec1e 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/parser/MessageFile.java
+++ b/build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/parser/MessageFile.java
@@ -23,7 +23,7 @@
* questions.
*/
-package com.itsaky.androidide.plugins.properties.parser;
+package com.itsaky.androidide.build.propparser.parser;
import java.io.File;
import java.io.IOException;
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/parser/MessageInfo.java b/build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/parser/MessageInfo.java
similarity index 91%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/parser/MessageInfo.java
rename to build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/parser/MessageInfo.java
index 7e5de8d20..4958c1d82 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/parser/MessageInfo.java
+++ b/build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/parser/MessageInfo.java
@@ -23,12 +23,12 @@
* questions.
*/
-package com.itsaky.androidide.plugins.properties.parser;
+package com.itsaky.androidide.build.propparser.parser;
-import com.itsaky.androidide.plugins.properties.parser.MessageType.CompoundType;
-import com.itsaky.androidide.plugins.properties.parser.MessageType.OrType;
-import com.itsaky.androidide.plugins.properties.parser.MessageType.SimpleType;
-import com.itsaky.androidide.plugins.properties.parser.MessageType.UnionType;
+import com.itsaky.androidide.build.propparser.parser.MessageType.CompoundType;
+import com.itsaky.androidide.build.propparser.parser.MessageType.OrType;
+import com.itsaky.androidide.build.propparser.parser.MessageType.SimpleType;
+import com.itsaky.androidide.build.propparser.parser.MessageType.UnionType;
import java.util.ArrayList;
import java.util.List;
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/parser/MessageLine.java b/build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/parser/MessageLine.java
similarity index 97%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/parser/MessageLine.java
rename to build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/parser/MessageLine.java
index 54b30085c..dc6eb1dff 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/parser/MessageLine.java
+++ b/build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/parser/MessageLine.java
@@ -23,7 +23,7 @@
* questions.
*/
-package com.itsaky.androidide.plugins.properties.parser;
+package com.itsaky.androidide.build.propparser.parser;
import java.util.regex.Pattern;
diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/parser/MessageType.java b/build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/parser/MessageType.java
similarity index 99%
rename from build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/parser/MessageType.java
rename to build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/parser/MessageType.java
index 34a08e1cd..5a2a38a18 100644
--- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/properties/parser/MessageType.java
+++ b/build-logic/properties-parser/src/main/java/com/itsaky/androidide/build/propparser/parser/MessageType.java
@@ -23,7 +23,7 @@
* questions.
*/
-package com.itsaky.androidide.plugins.properties.parser;
+package com.itsaky.androidide.build.propparser.parser;
/**
* Common interface to all kinds of diagnostic argument types.
diff --git a/build-logic/settings.gradle.kts b/build-logic/settings.gradle.kts
index 70fb84e5d..7c01c9c9f 100644
--- a/build-logic/settings.gradle.kts
+++ b/build-logic/settings.gradle.kts
@@ -1,20 +1,21 @@
/*
- * This file is part of AndroidIDE.
- *
- * AndroidIDE is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * AndroidIDE is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with AndroidIDE. If not, see .
- */
+* This file is part of AndroidIDE.
+*
+* AndroidIDE is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* AndroidIDE is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with AndroidIDE. If not, see .
+*/
+@file:Suppress("UnstableApiUsage")
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
@@ -31,7 +32,9 @@ dependencyResolutionManagement {
}
include(
- ":ide"
+ ":common",
+ ":plugins",
+ ":properties-parser"
)
rootProject.name = "build-logic"
\ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
index 8165438ea..1c4a8dc82 100755
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -17,6 +17,9 @@
@file:Suppress("UnstableApiUsage")
+import com.itsaky.androidide.build.config.BuildConfig
+import com.itsaky.androidide.build.config.FDroidConfig
+import com.itsaky.androidide.build.config.publishingVersion
import com.itsaky.androidide.plugins.AndroidIDEPlugin
import com.itsaky.androidide.plugins.conf.configureAndroidModule
import com.itsaky.androidide.plugins.conf.configureJavaModule
diff --git a/common/build.gradle.kts b/common/build.gradle.kts
index 72b97b462..d8146a0df 100755
--- a/common/build.gradle.kts
+++ b/common/build.gradle.kts
@@ -1,3 +1,5 @@
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/editor-api/build.gradle.kts b/editor-api/build.gradle.kts
index bd74bfcc7..18290e85a 100644
--- a/editor-api/build.gradle.kts
+++ b/editor-api/build.gradle.kts
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/editor/build.gradle.kts b/editor/build.gradle.kts
index 8907e748f..309d7ec16 100644
--- a/editor/build.gradle.kts
+++ b/editor/build.gradle.kts
@@ -1,3 +1,5 @@
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/eventbus-android/build.gradle.kts b/eventbus-android/build.gradle.kts
index faba9795e..9de17e7f7 100644
--- a/eventbus-android/build.gradle.kts
+++ b/eventbus-android/build.gradle.kts
@@ -14,6 +14,9 @@
* You should have received a copy of the GNU General Public License
* along with AndroidIDE. If not, see .
*/
+
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("org.jetbrains.kotlin.android")
diff --git a/eventbus-events/build.gradle.kts b/eventbus-events/build.gradle.kts
index bd68ed52f..f256d2981 100644
--- a/eventbus-events/build.gradle.kts
+++ b/eventbus-events/build.gradle.kts
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/gradle-plugin/build.gradle.kts b/gradle-plugin/build.gradle.kts
index a60083ce6..579b7e4b2 100644
--- a/gradle-plugin/build.gradle.kts
+++ b/gradle-plugin/build.gradle.kts
@@ -15,6 +15,10 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.AGP_VERSION_MINIMUM
+import com.itsaky.androidide.build.config.BuildConfig
+import com.itsaky.androidide.build.config.ProjectConfig
+
plugins {
id("java-gradle-plugin")
id("org.jetbrains.kotlin.jvm")
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index d6fd2fd87..96cce6183 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -147,5 +147,6 @@ maven-publish = { module = "com.vanniktech:gradle-maven-publish-plugin", version
android-application = { id = "com.android.application", version.ref = "agp" }
android-library = { id = "com.android.library", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
+kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
maven-publish = { id = "com.vanniktech.maven.publish.base", version.ref = "maven-publish-plugin" }
gradle-publish = { id = "com.gradle.plugin-publish", version = "1.2.1" }
diff --git a/lexers/build.gradle.kts b/lexers/build.gradle.kts
index 8370f4106..03c8d35d2 100755
--- a/lexers/build.gradle.kts
+++ b/lexers/build.gradle.kts
@@ -16,6 +16,7 @@
*/
import com.itsaky.androidide.plugins.LexerGeneratorPlugin
+import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("java-library")
diff --git a/logsender-sample/build.gradle.kts b/logsender-sample/build.gradle.kts
index f488ae7ba..67bc7ebba 100644
--- a/logsender-sample/build.gradle.kts
+++ b/logsender-sample/build.gradle.kts
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.application")
}
diff --git a/logsender/build.gradle.kts b/logsender/build.gradle.kts
index 6a278a57d..c056df3c1 100644
--- a/logsender/build.gradle.kts
+++ b/logsender/build.gradle.kts
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("com.vanniktech.maven.publish.base")
diff --git a/lsp/api/build.gradle.kts b/lsp/api/build.gradle.kts
index 1eb932872..f189a045f 100644
--- a/lsp/api/build.gradle.kts
+++ b/lsp/api/build.gradle.kts
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/lsp/java/build.gradle.kts b/lsp/java/build.gradle.kts
index d386d766f..1bebb80a0 100644
--- a/lsp/java/build.gradle.kts
+++ b/lsp/java/build.gradle.kts
@@ -14,6 +14,9 @@
* You should have received a copy of the GNU General Public License
* along with AndroidIDE. If not, see .
*/
+
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/lsp/models/build.gradle.kts b/lsp/models/build.gradle.kts
index e4e442b3e..02bc6580c 100644
--- a/lsp/models/build.gradle.kts
+++ b/lsp/models/build.gradle.kts
@@ -1,3 +1,5 @@
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/lsp/xml/build.gradle.kts b/lsp/xml/build.gradle.kts
index 990974d6c..0faf59e0d 100644
--- a/lsp/xml/build.gradle.kts
+++ b/lsp/xml/build.gradle.kts
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/preferences/build.gradle.kts b/preferences/build.gradle.kts
index 353cb3bc3..18e5bf0ae 100644
--- a/preferences/build.gradle.kts
+++ b/preferences/build.gradle.kts
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/resources/build.gradle.kts b/resources/build.gradle.kts
index 83b6d0ed0..601ed3e11 100644
--- a/resources/build.gradle.kts
+++ b/resources/build.gradle.kts
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
}
diff --git a/subprojects/aaptcompiler/build.gradle.kts b/subprojects/aaptcompiler/build.gradle.kts
index 40fd2d340..3d59d1082 100644
--- a/subprojects/aaptcompiler/build.gradle.kts
+++ b/subprojects/aaptcompiler/build.gradle.kts
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/subprojects/flashbar/build.gradle.kts b/subprojects/flashbar/build.gradle.kts
index db32a8f27..f5049b943 100644
--- a/subprojects/flashbar/build.gradle.kts
+++ b/subprojects/flashbar/build.gradle.kts
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/subprojects/javac-services/build.gradle.kts b/subprojects/javac-services/build.gradle.kts
index c32cfb908..46040c98e 100644
--- a/subprojects/javac-services/build.gradle.kts
+++ b/subprojects/javac-services/build.gradle.kts
@@ -1,3 +1,5 @@
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/subprojects/layoutlib-api/build.gradle.kts b/subprojects/layoutlib-api/build.gradle.kts
index b774e02f2..510d8dcf6 100644
--- a/subprojects/layoutlib-api/build.gradle.kts
+++ b/subprojects/layoutlib-api/build.gradle.kts
@@ -14,6 +14,9 @@
* You should have received a copy of the GNU General Public License
* along with AndroidIDE. If not, see .
*/
+
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/subprojects/projects/build.gradle.kts b/subprojects/projects/build.gradle.kts
index 1e3bdc0d7..2493a9132 100644
--- a/subprojects/projects/build.gradle.kts
+++ b/subprojects/projects/build.gradle.kts
@@ -1,3 +1,5 @@
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/subprojects/tooling-api-impl/build.gradle.kts b/subprojects/tooling-api-impl/build.gradle.kts
index e3e3f529c..3030cc18a 100644
--- a/subprojects/tooling-api-impl/build.gradle.kts
+++ b/subprojects/tooling-api-impl/build.gradle.kts
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.BuildConfig
+
@Suppress("JavaPluginLanguageLevel")
plugins {
id("com.github.johnrengelman.shadow") version "8.1.1"
diff --git a/subprojects/xml-utils/build.gradle.kts b/subprojects/xml-utils/build.gradle.kts
index 68aed9bb2..3b7ff130a 100644
--- a/subprojects/xml-utils/build.gradle.kts
+++ b/subprojects/xml-utils/build.gradle.kts
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/templates-api/build.gradle.kts b/templates-api/build.gradle.kts
index cb94a094c..e8b2d9909 100644
--- a/templates-api/build.gradle.kts
+++ b/templates-api/build.gradle.kts
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("org.jetbrains.kotlin.android")
diff --git a/templates-impl/build.gradle.kts b/templates-impl/build.gradle.kts
index 8bf63d292..471409d24 100644
--- a/templates-impl/build.gradle.kts
+++ b/templates-impl/build.gradle.kts
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("org.jetbrains.kotlin.android")
diff --git a/termux/termux-app/build.gradle.kts b/termux/termux-app/build.gradle.kts
index 0606c8487..88c059ed9 100644
--- a/termux/termux-app/build.gradle.kts
+++ b/termux/termux-app/build.gradle.kts
@@ -1,6 +1,7 @@
@file:Suppress("UnstableApiUsage")
import com.itsaky.androidide.plugins.TerminalBootstrapPackagesPlugin
+import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
diff --git a/termux/termux-emulator/build.gradle.kts b/termux/termux-emulator/build.gradle.kts
index 672e2f663..8c3fd82a0 100644
--- a/termux/termux-emulator/build.gradle.kts
+++ b/termux/termux-emulator/build.gradle.kts
@@ -1,3 +1,5 @@
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/termux/termux-shared/build.gradle.kts b/termux/termux-shared/build.gradle.kts
index c963db9aa..59df34aee 100644
--- a/termux/termux-shared/build.gradle.kts
+++ b/termux/termux-shared/build.gradle.kts
@@ -1,3 +1,5 @@
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id ("com.android.library")
id("kotlin-android")
diff --git a/termux/termux-view/build.gradle.kts b/termux/termux-view/build.gradle.kts
index 84adc7146..800a69dab 100644
--- a/termux/termux-view/build.gradle.kts
+++ b/termux/termux-view/build.gradle.kts
@@ -1,3 +1,5 @@
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/testing/android/build.gradle.kts b/testing/android/build.gradle.kts
index bc10c2b34..123180f8e 100644
--- a/testing/android/build.gradle.kts
+++ b/testing/android/build.gradle.kts
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
kotlin("android")
diff --git a/testing/lsp/build.gradle.kts b/testing/lsp/build.gradle.kts
index 8b3c3b729..2bd3f2929 100644
--- a/testing/lsp/build.gradle.kts
+++ b/testing/lsp/build.gradle.kts
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/testing/unit/build.gradle.kts b/testing/unit/build.gradle.kts
index 3fb4b2be0..145181e94 100644
--- a/testing/unit/build.gradle.kts
+++ b/testing/unit/build.gradle.kts
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see .
*/
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
kotlin("android")
diff --git a/uidesigner/build.gradle.kts b/uidesigner/build.gradle.kts
index 23071be32..87ccca792 100644
--- a/uidesigner/build.gradle.kts
+++ b/uidesigner/build.gradle.kts
@@ -1,3 +1,5 @@
+import com.itsaky.androidide.build.config.BuildConfig
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/xml-inflater/build.gradle.kts b/xml-inflater/build.gradle.kts
index 853a002a6..8f2db5ccf 100644
--- a/xml-inflater/build.gradle.kts
+++ b/xml-inflater/build.gradle.kts
@@ -15,7 +15,7 @@
* along with AndroidIDE. If not, see .
*/
-@file:Suppress("UnstableApiUsage")
+import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")