1
0
mirror of https://github.com/mamoe/mirai.git synced 2025-04-25 04:50:26 +08:00

[build] Resolve compiler warnings in buildSrc

This commit is contained in:
Him188 2023-03-21 20:52:07 +00:00
parent c74e9d2858
commit dca39f9b60
No known key found for this signature in database
GPG Key ID: BA439CDDCF652375
6 changed files with 37 additions and 26 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright 2019-2022 Mamoe Technologies and contributors.
* Copyright 2019-2023 Mamoe Technologies and contributors.
*
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
@ -16,7 +16,6 @@ repositories {
google()
mavenCentral()
gradlePluginPortal()
maven("https://repo.mirai.mamoe.net/keep") // for modified shadow plugin
}
kotlin {
@ -54,14 +53,22 @@ dependencies {
// api("com.github.jengelman.gradle.plugins", "shadow", version("shadow"))
api("com.github.johnrengelman", "shadow", version("shadow"))
api("org.jetbrains.kotlin", "kotlin-gradle-plugin", version("kotlinCompiler"))
api("org.jetbrains.kotlin", "kotlin-gradle-plugin", version("kotlinCompiler")) {
exclude("org.jetbrains.kotlin", "kotlin-stdlib")
exclude("org.jetbrains.kotlin", "kotlin-stdlib-common")
exclude("org.jetbrains.kotlin", "kotlin-reflect")
}
// api("org.jetbrains.kotlin", "kotlin-compiler-embeddable", version("kotlinCompiler"))
// api(ktor("client-okhttp", "1.4.3"))
api("com.android.tools.build", "gradle", version("androidGradlePlugin"))
api(asm("tree"))
api(asm("util"))
api(asm("commons"))
api("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.2")
api("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.2") {
exclude("org.jetbrains.kotlin", "kotlin-stdlib")
exclude("org.jetbrains.kotlin", "kotlin-reflect")
exclude("org.jetbrains.kotlin", "kotlin-stdlib-common")
}
api("gradle.plugin.com.google.gradle:osdetector-gradle-plugin:1.7.0")

View File

@ -1,5 +1,5 @@
/*
* Copyright 2019-2022 Mamoe Technologies and contributors.
* Copyright 2019-2023 Mamoe Technologies and contributors.
*
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
@ -18,6 +18,7 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.MAIN_COMPI
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.TEST_COMPILATION_NAME
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetPreset
import org.jetbrains.kotlin.gradle.plugin.mpp.*
import org.jetbrains.kotlin.gradle.tasks.KotlinNativeLink
@ -159,7 +160,9 @@ fun Project.configureJvmTargetsHierarchical() {
if (IDEA_ACTIVE) {
jvm("jvmBase") { // dummy target for resolution, not published
compilations.all {
this.compileKotlinTask.enabled = false // IDE complain
this.compileTaskProvider.configure { // IDE complain
enabled = false
}
}
attributes.attribute(KotlinPlatformType.attribute, KotlinPlatformType.common) // magic
attributes.attribute(MIRAI_PLATFORM_ATTRIBUTE, "jvmBase") // avoid resolution
@ -232,13 +235,13 @@ fun KotlinMultiplatformExtension.configureNativeTargetsHierarchical(
val nativeMainSets = mutableListOf<KotlinSourceSet>()
val nativeTestSets = mutableListOf<KotlinSourceSet>()
val nativeTargets = mutableListOf<KotlinNativeTarget>()
val nativeTargets = mutableListOf<KotlinTarget>() // actually KotlinNativeTarget, but KotlinNativeTarget is an internal API (complained by IDEA)
fun KotlinMultiplatformExtension.addNativeTarget(
preset: KotlinTargetPreset<*>,
): KotlinNativeTarget {
val target = targetFromPreset(preset, preset.name) as KotlinNativeTarget
): KotlinTarget {
val target = targetFromPreset(preset, preset.name)
nativeMainSets.add(target.compilations[MAIN_COMPILATION_NAME].kotlinSourceSets.first())
nativeTestSets.add(target.compilations[TEST_COMPILATION_NAME].kotlinSourceSets.first())
nativeTargets.add(target)
@ -313,7 +316,7 @@ fun KotlinMultiplatformExtension.configureNativeTargetsHierarchical(
}
// Workaround from https://youtrack.jetbrains.com/issue/KT-52433/KotlinNative-Unable-to-generate-framework-with-Kotlin-1621-and-Xcode-134#focus=Comments-27-6140143.0-0
project.tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinNativeLink>().configureEach {
project.tasks.withType<KotlinNativeLink>().configureEach {
val properties = listOf(
"ios_arm32", "watchos_arm32", "watchos_x86"
).joinToString(separator = ";") { "clangDebugFlags.$it=-Os" }
@ -540,7 +543,7 @@ private fun Project.configureNativeInterop(
}
}
val generateKotlinBindings = tasks.register("generateKotlinBindings${compilationName.titlecase()}") {
tasks.register("generateKotlinBindings${compilationName.titlecase()}") {
group = "mirai"
description = "Generates Kotlin bindings for Rust"
dependsOn(bindgen)

View File

@ -1,5 +1,5 @@
/*
* Copyright 2019-2022 Mamoe Technologies and contributors.
* Copyright 2019-2023 Mamoe Technologies and contributors.
*
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
@ -38,11 +38,9 @@ fun Project.configureRemoteRepos() {
repositories {
maven {
name = "MiraiStageRepo"
var stageRepoLoc = getLocalProperty("publishing.stage-repo")?.let(::File)
if (stageRepoLoc?.exists() != true) {
stageRepoLoc = rootProject.file("ci-release-helper/stage-repo")
}
stageRepoLoc as File
val stageRepoLoc = getLocalProperty("publishing.stage-repo")?.let(::File)
?.takeIf { it.exists() }
?: rootProject.file("ci-release-helper/stage-repo")
url = stageRepoLoc.also { it.mkdirs() }.toURI()
}

View File

@ -1,5 +1,5 @@
/*
* Copyright 2019-2022 Mamoe Technologies and contributors.
* Copyright 2019-2023 Mamoe Technologies and contributors.
*
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
@ -101,7 +101,7 @@ fun KotlinDependencyHandler.relocateCompileOnly(
}
project.relocationFilters.add(
RelocationFilter(
dependency.group!!, dependency.name, relocatedDependency.packages.toList(), includeInRuntime = false,
dependency.groupNotNull, dependency.name, relocatedDependency.packages.toList(), includeInRuntime = false,
)
)
// Don't add to runtime
@ -125,7 +125,7 @@ fun DependencyHandler.relocateCompileOnly(
})
project.relocationFilters.add(
RelocationFilter(
dependency.group!!, dependency.name, relocatedDependency.packages.toList(), includeInRuntime = false,
dependency.groupNotNull, dependency.name, relocatedDependency.packages.toList(), includeInRuntime = false,
)
)
// Don't add to runtime
@ -149,7 +149,7 @@ fun KotlinDependencyHandler.relocateImplementation(
}
project.relocationFilters.add(
RelocationFilter(
dependency.group!!, dependency.name, relocatedDependency.packages.toList(), includeInRuntime = true,
dependency.groupNotNull, dependency.name, relocatedDependency.packages.toList(), includeInRuntime = true,
)
)
project.configurations.maybeCreate(SHADOW_RELOCATION_CONFIGURATION_NAME)
@ -184,7 +184,7 @@ fun DependencyHandler.relocateImplementation(
})
project.relocationFilters.add(
RelocationFilter(
dependency.group!!, dependency.name, relocatedDependency.packages.toList(), includeInRuntime = true,
dependency.groupNotNull, dependency.name, relocatedDependency.packages.toList(), includeInRuntime = true,
)
)
project.configurations.maybeCreate(SHADOW_RELOCATION_CONFIGURATION_NAME)
@ -201,6 +201,9 @@ fun DependencyHandler.relocateImplementation(
return dependency
}
@Suppress("UNNECESSARY_NOT_NULL_ASSERTION") // compiler bug
private val ExternalModuleDependency.groupNotNull get() = group!!
private fun ExternalModuleDependency.intrinsicExclusions() {
exclude(ExcludeProperties.`everything from kotlin`)
exclude(ExcludeProperties.`everything from kotlinx`)

View File

@ -1,5 +1,5 @@
/*
* Copyright 2019-2022 Mamoe Technologies and contributors.
* Copyright 2019-2023 Mamoe Technologies and contributors.
*
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
@ -101,7 +101,7 @@ private fun KotlinTarget.configureRelocationForMppTarget(project: Project) = pro
destinationDirectory.set(buildDir.resolve("libs")) // build/libs
archiveBaseName.set("${project.name}-${targetName.toLowerCase()}") // e.g. "mirai-core-api-jvm"
dependsOn(compilations["main"].compileKotlinTask) // e.g. compileKotlinJvm
dependsOn(compilations["main"].compileTaskProvider) // e.g. compileKotlinJvm
from(compilations["main"].output) // Add compilation result of mirai sourcecode, not including dependencies
configuration?.let {
@ -257,7 +257,7 @@ fun Project.registerRegularShadowTask(
}
val compilation = target.compilations["main"]
dependsOn(compilation.compileKotlinTask)
dependsOn(compilation.compileTaskProvider)
from(compilation.output)
// components.findByName("java")?.let { from(it) }

View File

@ -31,7 +31,7 @@ object Versions {
val consoleIntellij get() = "223-$project-172-1" // idea-mirai-kotlin-patch
val consoleTerminal get() = project
const val kotlinCompiler = "1.8.10"
const val kotlinCompiler = "1.8.20-RC"
const val kotlinStdlib = kotlinCompiler
const val dokka = "1.8.10"