mirror of
https://github.com/fcitx5-android/fcitx5-android.git
synced 2026-08-02 20:16:06 +08:00
Migrate deprecations in gradle 8.14
This commit is contained in:
parent
5a4870c057
commit
5d184920a2
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2023 Fcitx5 for Android Contributors
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2025 Fcitx5 for Android Contributors
|
||||
*/
|
||||
import com.android.build.api.dsl.ApplicationExtension
|
||||
import com.android.build.api.variant.ApplicationAndroidComponentsExtension
|
||||
@ -25,6 +25,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
* - Provide default configuration for `android {...}`
|
||||
* - Add desugar JDK libs
|
||||
*/
|
||||
@Suppress("unused")
|
||||
class AndroidAppConventionPlugin : AndroidBaseConventionPlugin() {
|
||||
|
||||
override fun apply(target: Project) {
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
/*
|
||||
* SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2023 Fcitx5 for Android Contributors
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2025 Fcitx5 for Android Contributors
|
||||
*/
|
||||
import com.android.build.gradle.tasks.ProcessLibraryArtProfileTask
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.kotlin.dsl.withType
|
||||
|
||||
@Suppress("unused")
|
||||
class AndroidLibConventionPlugin : AndroidBaseConventionPlugin() {
|
||||
|
||||
override fun apply(target: Project) {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2023 Fcitx5 for Android Contributors
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2025 Fcitx5 for Android Contributors
|
||||
*/
|
||||
import com.android.build.gradle.internal.dsl.BaseAppModuleExtension
|
||||
import org.gradle.api.Plugin
|
||||
@ -36,7 +36,7 @@ class AndroidPluginAppConventionPlugin : Plugin<Project> {
|
||||
applicationVariants.all {
|
||||
val pluginsTaskName = "assemble${name.capitalized()}Plugins"
|
||||
val pluginsTask = target.rootProject.tasks.findByName(pluginsTaskName)
|
||||
?: target.rootProject.task(pluginsTaskName)
|
||||
?: target.rootProject.tasks.register(pluginsTaskName).get()
|
||||
pluginsTask.dependsOn(assembleProvider)
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,10 +1,9 @@
|
||||
/*
|
||||
* SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2023 Fcitx5 for Android Contributors
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2025 Fcitx5 for Android Contributors
|
||||
*/
|
||||
import com.android.build.gradle.internal.dsl.BaseAppModuleExtension
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.encodeToString
|
||||
import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
@ -12,11 +11,12 @@ import org.gradle.api.file.RegularFileProperty
|
||||
import org.gradle.api.tasks.OutputFile
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
import org.gradle.kotlin.dsl.configure
|
||||
import org.gradle.kotlin.dsl.task
|
||||
import org.gradle.kotlin.dsl.register
|
||||
|
||||
/**
|
||||
* Add task `generateBuildMetadata${Variant}`
|
||||
*/
|
||||
@Suppress("unused")
|
||||
class BuildMetadataPlugin : Plugin<Project> {
|
||||
|
||||
override fun apply(target: Project) {
|
||||
@ -32,7 +32,7 @@ class BuildMetadataPlugin : Plugin<Project> {
|
||||
applicationVariants.all {
|
||||
val variantName = name.capitalized()
|
||||
target.afterEvaluate {
|
||||
target.task<BuildMetadataTask>("generateBuildMetadata${variantName}") {
|
||||
target.tasks.register<BuildMetadataTask>("generateBuildMetadata${variantName}") {
|
||||
val packageTask = packageApplicationProvider.get() // package${Variant} task
|
||||
// create metadata file after package, because it's outputDirectory would
|
||||
// be cleared at some time before package
|
||||
|
||||
@ -1,9 +1,8 @@
|
||||
/*
|
||||
* SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2023 Fcitx5 for Android Contributors
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2025 Fcitx5 for Android Contributors
|
||||
*/
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.encodeToString
|
||||
import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
@ -20,7 +19,7 @@ import org.gradle.api.tasks.PathSensitive
|
||||
import org.gradle.api.tasks.PathSensitivity
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
import org.gradle.kotlin.dsl.create
|
||||
import org.gradle.kotlin.dsl.task
|
||||
import org.gradle.kotlin.dsl.register
|
||||
import org.gradle.work.ChangeType
|
||||
import org.gradle.work.Incremental
|
||||
import org.gradle.work.InputChanges
|
||||
@ -28,7 +27,6 @@ import org.jetbrains.kotlin.com.google.common.hash.Hashing
|
||||
import org.jetbrains.kotlin.com.google.common.io.ByteSource
|
||||
import java.io.File
|
||||
import java.nio.charset.Charset
|
||||
import kotlin.collections.set
|
||||
|
||||
interface DataDescriptorPluginExtension {
|
||||
/**
|
||||
@ -58,13 +56,13 @@ class DataDescriptorPlugin : Plugin<Project> {
|
||||
val extension = target.extensions.create<DataDescriptorPluginExtension>(TASK)
|
||||
extension.excludes.convention(listOf())
|
||||
extension.symlinks.convention(mapOf())
|
||||
target.task<DataDescriptorTask>(TASK) {
|
||||
target.tasks.register<DataDescriptorTask>(TASK) {
|
||||
inputDir.set(target.assetsDir)
|
||||
outputFile.set(target.assetsDir.resolve(FILE_NAME))
|
||||
excludes.set(extension.excludes)
|
||||
symlinks.set(extension.symlinks)
|
||||
}
|
||||
target.task<Delete>(CLEAN_TASK) {
|
||||
target.tasks.register<Delete>(CLEAN_TASK) {
|
||||
delete(target.assetsDir.resolve(FILE_NAME))
|
||||
}.also {
|
||||
target.cleanTask.dependsOn(it)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2024 Fcitx5 for Android Contributors
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2025 Fcitx5 for Android Contributors
|
||||
*/
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
@ -8,7 +8,7 @@ import org.gradle.api.logging.LogLevel
|
||||
import org.gradle.api.tasks.Delete
|
||||
import org.gradle.kotlin.dsl.create
|
||||
import org.gradle.kotlin.dsl.getByName
|
||||
import org.gradle.kotlin.dsl.task
|
||||
import org.gradle.kotlin.dsl.register
|
||||
import java.io.File
|
||||
import kotlin.io.path.isSymbolicLink
|
||||
|
||||
@ -31,8 +31,8 @@ class FcitxComponentPlugin : Plugin<Project> {
|
||||
}
|
||||
|
||||
override fun apply(target: Project) {
|
||||
val installTask = target.task(INSTALL_TASK)
|
||||
val deleteTask = target.task(DELETE_TASK)
|
||||
val installTask = target.tasks.register(INSTALL_TASK)
|
||||
val deleteTask = target.tasks.register(DELETE_TASK)
|
||||
registerCMakeTask(target, "generate-desktop-file", "config")
|
||||
registerCMakeTask(target, "translation-file", "translation")
|
||||
registerCleanTask(target)
|
||||
@ -45,7 +45,7 @@ class FcitxComponentPlugin : Plugin<Project> {
|
||||
registerCMakeTask(target, "translation-file", "translation", project)
|
||||
}
|
||||
if (ext.excludeFiles.isNotEmpty()) {
|
||||
deleteTask.apply {
|
||||
deleteTask.get().apply {
|
||||
dependsOn(installTask)
|
||||
doLast {
|
||||
ext.excludeFiles.forEach {
|
||||
@ -75,16 +75,17 @@ class FcitxComponentPlugin : Plugin<Project> {
|
||||
} else {
|
||||
"installLibrary$componentName[${sourceProject.name}]"
|
||||
}
|
||||
// FIXME: this is deprecated, but `tasks.register` would result in task warming-up failure
|
||||
val task = project.task(taskName) {
|
||||
runAfterNativeConfigure(sourceProject) { abiModel ->
|
||||
val cmake = abiModel.variant.module.cmake!!.cmakeExe!!
|
||||
if (target.isNotEmpty()) {
|
||||
sourceProject.exec {
|
||||
sourceProject.providers.exec {
|
||||
workingDir = abiModel.cxxBuildFolder
|
||||
commandLine(cmake, "--build", ".", "--target", target)
|
||||
}
|
||||
}
|
||||
sourceProject.exec {
|
||||
sourceProject.providers.exec {
|
||||
workingDir = abiModel.cxxBuildFolder
|
||||
environment("DESTDIR", project.assetsDir.absolutePath)
|
||||
commandLine(cmake, "--install", ".", "--component", component)
|
||||
@ -102,7 +103,7 @@ class FcitxComponentPlugin : Plugin<Project> {
|
||||
}
|
||||
|
||||
private fun registerCleanTask(project: Project) {
|
||||
project.task<Delete>(CLEAN_TASK) {
|
||||
project.tasks.register<Delete>(CLEAN_TASK) {
|
||||
delete(project.assetsDir.resolve("usr/share/locale"))
|
||||
// delete all non symlink files
|
||||
// true -> delete
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2023 Fcitx5 for Android Contributors
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2025 Fcitx5 for Android Contributors
|
||||
*/
|
||||
import com.android.build.api.variant.LibraryAndroidComponentsExtension
|
||||
import com.android.build.gradle.tasks.PrefabPackageConfigurationTask
|
||||
@ -10,10 +10,11 @@ import org.gradle.api.tasks.Delete
|
||||
import org.gradle.kotlin.dsl.configure
|
||||
import org.gradle.kotlin.dsl.create
|
||||
import org.gradle.kotlin.dsl.getByName
|
||||
import org.gradle.kotlin.dsl.task
|
||||
import org.gradle.kotlin.dsl.register
|
||||
import org.gradle.kotlin.dsl.withType
|
||||
import java.io.File
|
||||
|
||||
@Suppress("unused")
|
||||
class FcitxHeadersPlugin : Plugin<Project> {
|
||||
|
||||
abstract class FcitxHeadersExtension {
|
||||
@ -55,10 +56,11 @@ class FcitxHeadersPlugin : Plugin<Project> {
|
||||
}
|
||||
|
||||
private fun registerInstallTask(project: Project, name: String, component: String, dest: File) {
|
||||
// FIXME: this is deprecated, but `tasks.register` would result in task warming-up failure
|
||||
val installHeadersTask = project.task(name) {
|
||||
runAfterNativeConfigure(project) { abiModel ->
|
||||
val cmake = abiModel.variant.module.cmake!!.cmakeExe!!
|
||||
project.exec {
|
||||
project.providers.exec {
|
||||
workingDir = abiModel.cxxBuildFolder
|
||||
environment("DESTDIR", dest.absolutePath)
|
||||
commandLine(cmake, "--install", ".", "--component", component)
|
||||
@ -73,7 +75,7 @@ class FcitxHeadersPlugin : Plugin<Project> {
|
||||
}
|
||||
|
||||
private fun registerCleanTask(project: Project) {
|
||||
project.task<Delete>(CLEAN_TASK) {
|
||||
project.tasks.register<Delete>(CLEAN_TASK) {
|
||||
delete(project.headersInstallDir)
|
||||
delete(project.develComponentInstallDir)
|
||||
}.also {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2023 Fcitx5 for Android Contributors
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2025 Fcitx5 for Android Contributors
|
||||
*/
|
||||
import com.android.build.api.variant.ApplicationAndroidComponentsExtension
|
||||
import com.android.build.api.variant.FilterConfiguration.FilterType
|
||||
@ -8,6 +8,7 @@ import com.android.build.gradle.internal.dsl.BaseAppModuleExtension
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.kotlin.dsl.configure
|
||||
|
||||
@Suppress("unused")
|
||||
class NativeAppConventionPlugin : NativeBaseConventionPlugin() {
|
||||
|
||||
override fun apply(target: Project) {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2023 Fcitx5 for Android Contributors
|
||||
* SPDX-FileCopyrightText: Copyright 2021-2025 Fcitx5 for Android Contributors
|
||||
*/
|
||||
import com.android.build.gradle.LibraryExtension
|
||||
import com.android.build.gradle.tasks.PrefabPackageConfigurationTask
|
||||
@ -8,6 +8,7 @@ import org.gradle.api.Project
|
||||
import org.gradle.kotlin.dsl.configure
|
||||
import org.gradle.kotlin.dsl.withType
|
||||
|
||||
@Suppress("unused")
|
||||
class NativeLibConventionPlugin : NativeBaseConventionPlugin() {
|
||||
|
||||
override fun apply(target: Project) {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
* SPDX-FileCopyrightText: Copyright 2024 Fcitx5 for Android Contributors
|
||||
* SPDX-FileCopyrightText: Copyright 2024-2025 Fcitx5 for Android Contributors
|
||||
*/
|
||||
|
||||
import com.android.build.gradle.internal.dsl.SigningConfig
|
||||
@ -9,20 +9,19 @@ import org.gradle.api.NamedDomainObjectContainer
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.Task
|
||||
import org.gradle.kotlin.dsl.the
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.io.File
|
||||
import kotlin.io.encoding.Base64
|
||||
import kotlin.io.encoding.ExperimentalEncodingApi
|
||||
|
||||
fun Project.runCmd(cmd: String, defaultValue: String = ""): String {
|
||||
val stdout = ByteArrayOutputStream()
|
||||
val result = stdout.use {
|
||||
project.exec {
|
||||
commandLine = cmd.split(" ")
|
||||
standardOutput = stdout
|
||||
}
|
||||
val output = providers.exec {
|
||||
commandLine = cmd.split(" ")
|
||||
}
|
||||
return if (output.result.get().exitValue == 0) {
|
||||
output.standardOutput.asText.get().trim()
|
||||
} else {
|
||||
defaultValue
|
||||
}
|
||||
return if (result.exitValue == 0) stdout.toString().trim() else defaultValue
|
||||
}
|
||||
|
||||
val Project.libs get() = the<LibrariesForLibs>()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user