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