Fix linkTaskName getters of K/N compilations
This commit is contained in:
+1
@@ -183,6 +183,7 @@ class NewMultiplatformIT : BaseGradleIT() {
|
||||
build("checkBinaryGetters") {
|
||||
assertTrue(output.contains("Wasm binary file: main.wasm"))
|
||||
assertTrue(output.contains("Wasm link task: linkMainReleaseExecutableWasm32"))
|
||||
assertTrue(output.contains("Wasm link task name: linkMainReleaseExecutableWasm32"))
|
||||
|
||||
val testFiles = listOf(
|
||||
"MacOS" to "test.kexe",
|
||||
|
||||
+1
@@ -64,6 +64,7 @@ kotlin {
|
||||
doLast {
|
||||
println("Wasm binary file: ${wasm32.compilations.getByName("main").getBinary("EXECUTABLE", "RELEASE").name}")
|
||||
println("Wasm link task: ${wasm32.compilations.getByName("main").getLinkTask("EXECUTABLE", "RELEASE").name}")
|
||||
println("Wasm link task name: ${wasm32.compilations.getByName("main").linkTaskName("EXECUTABLE", "RELEASE")}")
|
||||
|
||||
println("Windows test file: ${mingw64.compilations.getByName("test").getBinary("EXECUTABLE", "DEBUG").name}")
|
||||
println("Windows test link task: ${mingw64.compilations.getByName("test").getLinkTask("EXECUTABLE", "DEBUG").name}")
|
||||
|
||||
+1
@@ -84,6 +84,7 @@ task checkBinaryGetters {
|
||||
doLast {
|
||||
println("Wasm binary file: ${kotlin.targets.wasm32.compilations.main.getBinary("EXECUTABLE", "RELEASE").name}")
|
||||
println("Wasm link task: ${kotlin.targets.wasm32.compilations.main.getLinkTask("EXECUTABLE", "RELEASE").name}")
|
||||
println("Wasm link task name: ${kotlin.targets.wasm32.compilations.main.linkTaskName("EXECUTABLE", "RELEASE")}")
|
||||
|
||||
println("Windows test file: ${kotlin.targets.mingw64.compilations.test.getBinary("EXECUTABLE", "DEBUG").name}")
|
||||
println("Windows test link task: ${kotlin.targets.mingw64.compilations.test.getLinkTask("EXECUTABLE", "DEBUG").name}")
|
||||
|
||||
+6
-6
@@ -36,16 +36,13 @@ open class KotlinNativeBinaryContainer @Inject constructor(
|
||||
internal val prefixGroups: NamedDomainObjectSet<PrefixGroup> = WrapUtil.toNamedDomainObjectSet(PrefixGroup::class.java)
|
||||
|
||||
// region DSL getters.
|
||||
private fun generateName(prefix: String, buildType: NativeBuildType, outputKindClassifier: String) =
|
||||
lowerCamelCaseName(prefix, buildType.getName(), outputKindClassifier)
|
||||
|
||||
private inline fun <reified T : NativeBinary> getBinary(
|
||||
namePrefix: String,
|
||||
buildType: NativeBuildType,
|
||||
outputKind: NativeOutputKind
|
||||
): T {
|
||||
val classifier = outputKind.taskNameClassifier
|
||||
val name = generateName(namePrefix, buildType, classifier)
|
||||
val name = generateBinaryName(namePrefix, buildType, classifier)
|
||||
val binary = getByName(name)
|
||||
require(binary is T && binary.buildType == buildType) {
|
||||
"Binary $name has incorrect outputKind or build type.\n" +
|
||||
@@ -60,7 +57,7 @@ open class KotlinNativeBinaryContainer @Inject constructor(
|
||||
outputKind: NativeOutputKind
|
||||
): T? {
|
||||
val classifier = outputKind.taskNameClassifier
|
||||
val name = generateName(namePrefix, buildType, classifier)
|
||||
val name = generateBinaryName(namePrefix, buildType, classifier)
|
||||
val binary = findByName(name)
|
||||
return if (binary is T && binary.buildType == buildType) {
|
||||
binary
|
||||
@@ -112,7 +109,7 @@ open class KotlinNativeBinaryContainer @Inject constructor(
|
||||
}
|
||||
|
||||
buildTypes.forEach { buildType ->
|
||||
val name = generateName(namePrefix, buildType, outputKind.taskNameClassifier)
|
||||
val name = generateBinaryName(namePrefix, buildType, outputKind.taskNameClassifier)
|
||||
|
||||
require(name !in nameToBinary) {
|
||||
"Cannot create binary $name: binary with such a name already exists"
|
||||
@@ -149,6 +146,9 @@ open class KotlinNativeBinaryContainer @Inject constructor(
|
||||
|
||||
companion object {
|
||||
internal val DEFAULT_TEST_BUILD_TYPE = NativeBuildType.DEBUG
|
||||
|
||||
internal fun generateBinaryName(prefix: String, buildType: NativeBuildType, outputKindClassifier: String) =
|
||||
lowerCamelCaseName(prefix, buildType.getName(), outputKindClassifier)
|
||||
}
|
||||
// endregion.
|
||||
|
||||
|
||||
+2
-4
@@ -412,10 +412,8 @@ class KotlinNativeCompilation(
|
||||
fun linkTaskName(kind: NativeOutputKind, buildType: NativeBuildType): String =
|
||||
lowerCamelCaseName(
|
||||
"link",
|
||||
compilationName.takeIf { it != KotlinCompilation.MAIN_COMPILATION_NAME }.orEmpty(),
|
||||
buildType.name.toLowerCase(),
|
||||
kind.taskNameClassifier,
|
||||
target.disambiguationClassifier
|
||||
KotlinNativeBinaryContainer.generateBinaryName(compilationName, buildType, kind.taskNameClassifier),
|
||||
target.targetName
|
||||
)
|
||||
|
||||
fun linkTaskName(kind: String, buildType: String) =
|
||||
|
||||
Reference in New Issue
Block a user