build(build-logic): modularize :build-logic composite build

This commit is contained in:
Akash Yadav
2024-02-17 20:34:04 +05:30
parent 8ae87d77e5
commit a9195f0f53
86 changed files with 364 additions and 135 deletions
+3
View File
@@ -151,6 +151,9 @@
<module name="build-logic.ats" target="17" />
<module name="build-logic.ats.main" target="17" />
<module name="build-logic.ats.test" target="17" />
<module name="build-logic.ide" target="17" />
<module name="build-logic.ide.main" target="17" />
<module name="build-logic.ide.test" target="17" />
<module name="composite-builds.plugins" target="17" />
<module name="composite-builds.plugins.main" target="17" />
<module name="composite-builds.plugins.test" target="17" />
+19
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins{
id("com.android.library")
id("kotlin-android")
+3 -2
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import com.itsaky.androidide.build.config.BuildConfig
plugins {
kotlin("jvm")
}
+3 -2
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import com.itsaky.androidide.build.config.BuildConfig
plugins {
kotlin("jvm")
}
+1
View File
@@ -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")
+37 -25
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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<Directory> = project.layout.buildDirectory.dir("generated/buildInfo").also { it.get().asFile.createDirectory() }
val buildInfoGenDir: Provider<Directory> = 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,
)
)
}
}
+25
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
subprojects {
plugins.withId("java-library") {
extensions.getByType(JavaPluginExtension::class.java).apply {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
}
}
+1
View File
@@ -0,0 +1 @@
/build
+32
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
//noinspection JavaPluginLanguageLevel
id("java-library")
alias(libs.plugins.kotlin.jvm)
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "17"
}
dependencies {
api(gradleApi())
}
@@ -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
@@ -15,8 +15,24 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
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 <https://www.gnu.org/licenses/>.
*/
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. */
@@ -15,6 +15,23 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
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 <https://www.gnu.org/licenses/>.
*/
import org.gradle.api.Project
import java.io.File
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
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")
}
}
@@ -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 <https://www.gnu.org/licenses/>.
*/
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()
@@ -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
@@ -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 <https://www.gnu.org/licenses/>.
*/
package com.itsaky.androidide.build.config
import java.io.File
/** @author Akash Yadav */
private const val generatedWarning = "DO NOT EDIT - Automatically generated file"
@@ -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 <https://www.gnu.org/licenses/>.
*/
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<KotlinCompile> {
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)
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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.
@@ -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.
@@ -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
@@ -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")
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
/**
+1
View File
@@ -0,0 +1 @@
/build
@@ -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 <https://www.gnu.org/licenses/>.
*/
plugins {
//noinspection JavaPluginLanguageLevel
id("java-library")
}
dependencies {
api(projects.buildLogic.common)
}
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -23,7 +23,7 @@
* questions.
*/
package com.itsaky.androidide.plugins.properties.parser;
package com.itsaky.androidide.build.propparser.parser;
import java.util.regex.Pattern;
@@ -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.
+19 -16
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
* 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 <https://www.gnu.org/licenses/>.
*/
@file:Suppress("UnstableApiUsage")
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
@@ -31,7 +32,9 @@ dependencyResolutionManagement {
}
include(
":ide"
":common",
":plugins",
":properties-parser"
)
rootProject.name = "build-logic"
+3
View File
@@ -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
+2
View File
@@ -1,3 +1,5 @@
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
+2
View File
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
+2
View File
@@ -1,3 +1,5 @@
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
+3
View File
@@ -14,6 +14,9 @@
* You should have received a copy of the GNU General Public License
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("org.jetbrains.kotlin.android")
+2
View File
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
+4
View File
@@ -15,6 +15,10 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
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")
+1
View File
@@ -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" }
+1
View File
@@ -16,6 +16,7 @@
*/
import com.itsaky.androidide.plugins.LexerGeneratorPlugin
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("java-library")
+2
View File
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.application")
}
+2
View File
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("com.vanniktech.maven.publish.base")
+2
View File
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
+3
View File
@@ -14,6 +14,9 @@
* You should have received a copy of the GNU General Public License
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
+2
View File
@@ -1,3 +1,5 @@
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
+2
View File
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
+2
View File
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
+2
View File
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
}
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
+2
View File
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
@@ -1,3 +1,5 @@
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
@@ -14,6 +14,9 @@
* You should have received a copy of the GNU General Public License
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
+2
View File
@@ -1,3 +1,5 @@
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
@Suppress("JavaPluginLanguageLevel")
plugins {
id("com.github.johnrengelman.shadow") version "8.1.1"
+2
View File
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
+2
View File
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("org.jetbrains.kotlin.android")
+2
View File
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("org.jetbrains.kotlin.android")
+1
View File
@@ -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")
+2
View File
@@ -1,3 +1,5 @@
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
+2
View File
@@ -1,3 +1,5 @@
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id ("com.android.library")
id("kotlin-android")
+2
View File
@@ -1,3 +1,5 @@
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
+2
View File
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
kotlin("android")
+2
View File
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
+2
View File
@@ -15,6 +15,8 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
kotlin("android")
+2
View File
@@ -1,3 +1,5 @@
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")
id("kotlin-android")
+1 -1
View File
@@ -15,7 +15,7 @@
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
@file:Suppress("UnstableApiUsage")
import com.itsaky.androidide.build.config.BuildConfig
plugins {
id("com.android.library")