Hi, How to get targets alias ? Thanks like “${proj...
# kotlin-native
v
Hi, How to get targets alias ? Thanks like “${project.name}” Because I want basename is different
Copy code
binaries {
                sharedLib {
                    baseName = iOSArm64 or iOSX64
                }
            }
a
Maybe something like
targets.iosArm64
? Please have a look on this https://www.kotlincn.net/docs/reference/native/gradle_plugin.html#managing-targets
v
Copy code
def targetName_AndroidNativeArm64 = "androidNativeArm64"
def targetName_AndroidNativeArm32 = "androidNativeArm32"
def targetName_iOSArm64 = "iOSArm64"
def targetName_iOSX64 = "iOSX64"

kotlin {
    targets {
        // Android Arm64 Platform (Parent Platform)
        androidNativeArm64("${targetName_AndroidNativeArm64}") {
            binaries {
                sharedLib {
                    baseName = "${targetName_AndroidNativeArm64}"
                }
            }
        }

        // Android Arm32 Platform
        androidNativeArm32("${targetName_AndroidNativeArm32}") {
            binaries {
                sharedLib {
                    baseName = "${targetName_AndroidNativeArm32}"
                }
            }
        }

        // Configure Android
        configure([androidNativeArm64, androidNativeArm32]) {
        }

        // *********************************************************

        // iOS Arm64 Platform (Parent Platform)
        iosArm64("${targetName_iOSArm64}") {
            binaries {
                framework {
                    baseName = "${targetName_iOSArm64}"
                }
            }
        }

        // iOS X64 Platform
        iosX64("${targetName_iOSX64}") {
            binaries {
                framework {
                    baseName = "${targetName_iOSX64}"
                }
            }
        }

        // Configure iOS
        configure([iOSArm64, iOSX64]) {
        }

        // *********************************************************

        // JVM Platform
        jvm()

        // *********************************************************

        // Configure C Interop
        configure([androidNativeArm64, androidNativeArm32, iOSArm64, iOSX64]) {
            compilations.main.cinterops {
                // something
            }
        }
    }

    sourceSets {
        // Common Module
        commonMain {
            dependencies {
                implementation kotlin('stdlib-common')
            }
        }

        // *********************************************************

        // Android Parent Module
        androidNativeArm64Main {
        }
        configure([androidNativeArm32Main]) {
            dependsOn androidNativeArm64Main
        }

        // *********************************************************

        // iOS Parent Module
        iOSArm64Main {
        }
        configure([iOSX64Main]) {
            dependsOn iOSArm64Main
        }

        // *********************************************************

        // JVM Module
        jvmMain {
            dependencies {
                implementation kotlin('stdlib-jdk8')
            }
        }
    }
}
This is my setting now. I want to simplily about “basename” block, maybe i can write once to be done Thanks
a
Why don’t you try to configure it the same way as the
cinterops
?
v
as the
cinterops
, it has a question that i can’t set different basename.
m
It's
targetName
property of
KotlinNativeTarget
class.