diff --git a/kotlin-native/backend.native/tests/build.gradle b/kotlin-native/backend.native/tests/build.gradle index b9d23b48ca7..bcc8b895ffe 100644 --- a/kotlin-native/backend.native/tests/build.gradle +++ b/kotlin-native/backend.native/tests/build.gradle @@ -61,7 +61,7 @@ ext.target = platformManager.targetManager(project.testTarget).target ext.testLibraryDir = "${ext.testOutputRoot}/klib/platform/${project.target.name}" // Add executor to run tests depending on a target -project.convention.plugins.executor = ExecutorServiceKt.create(project) +project.extensions.executor = ExecutorServiceKt.create(project) compileTestKotlin { @@ -4710,7 +4710,7 @@ if (PlatformInfo.isAppleTarget(project)) { interop = 'objcSmoke' doBeforeBuild { mkdir(buildDir) - execClangForCompilerTests(project.target) { + project.extensions.execClang.execClangForCompilerTests(project.target) { args "$projectDir/interop/objc/smoke.m" args "-lobjc", '-fobjc-arc' args '-fPIC', '-shared', '-o', "$buildDir/libobjcsmoke.dylib" @@ -4735,7 +4735,7 @@ if (PlatformInfo.isAppleTarget(project)) { interop = 'objcSmoke' doBeforeBuild { mkdir(buildDir) - execClangForCompilerTests(project.target) { + project.extensions.execClang.execClangForCompilerTests(project.target) { args "$projectDir/interop/objc/smoke.m" args "-lobjc", '-fobjc-arc' args '-fPIC', '-shared', '-o', "$buildDir/libobjcsmoke.dylib" @@ -4773,7 +4773,7 @@ if (PlatformInfo.isAppleTarget(project)) { doBeforeBuild { mkdir(buildDir) - execClangForCompilerTests(project.target) { + project.extensions.execClang.execClangForCompilerTests(project.target) { args fileTree("$projectDir/interop/objc/tests/") { include '**/*.m' } args "-lobjc", '-fobjc-arc' args '-fPIC', '-shared', '-o', "$buildDir/libobjctests.dylib" @@ -4793,7 +4793,7 @@ if (PlatformInfo.isAppleTarget(project)) { doBeforeBuild { mkdir(buildDir) - execClangForCompilerTests(project.target) { + project.extensions.execClang.execClangForCompilerTests(project.target) { args "$projectDir/interop/objc_with_initializer/objc_misc.m" args "-lobjc", '-fobjc-arc' args '-fPIC', '-shared', '-o', "$buildDir/libobjcmisc.dylib" @@ -4810,7 +4810,7 @@ if (PlatformInfo.isAppleTarget(project)) { doBeforeBuild { mkdir(buildDir) - execClangForCompilerTests(project.target) { + project.extensions.execClang.execClangForCompilerTests(project.target) { args "$projectDir/interop/objc/msg_send/messaging.m" args "-lobjc", '-fobjc-arc' args '-fPIC', '-shared', '-o', "$buildDir/libobjcmessaging.dylib" @@ -4828,7 +4828,7 @@ if (PlatformInfo.isAppleTarget(project)) { doBeforeBuild { mkdir(buildDir) - execClangForCompilerTests(project.target) { + project.extensions.execClang.execClangForCompilerTests(project.target) { args "$projectDir/interop/objc/foreignException/objc_wrap.m" args "-lobjc", '-fobjc-arc' args '-fPIC', '-shared', '-o', "$buildDir/libobjcexception.dylib" @@ -4847,7 +4847,7 @@ if (PlatformInfo.isAppleTarget(project)) { doBeforeBuild { mkdir(buildDir) - execClangForCompilerTests(project.target) { + project.extensions.execClang.execClangForCompilerTests(project.target) { args "$projectDir/interop/objc/foreignException/objc_wrap.m" args "-lobjc", '-fobjc-arc' args '-fPIC', '-shared', '-o', "$buildDir/libobjcexception.dylib" @@ -4866,7 +4866,7 @@ if (PlatformInfo.isAppleTarget(project)) { doBeforeBuild { mkdir(buildDir) - execClangForCompilerTests(project.target) { + project.extensions.execClang.execClangForCompilerTests(project.target) { args "$projectDir/interop/objc/foreignException/objc_wrap.m" args "-lobjc", '-fobjc-arc' args '-fPIC', '-shared', '-o', "$buildDir/libobjcexception.dylib" @@ -4909,7 +4909,7 @@ if (PlatformInfo.isAppleTarget(project)) { doBeforeBuild { mkdir(buildDir) - execClangForCompilerTests(project.target) { + project.extensions.execClang.execClangForCompilerTests(project.target) { args "$projectDir/interop/objc/kt42172/objclib.m" args "-lobjc", '-fobjc-arc' args '-fPIC', '-shared', '-o', "$buildDir/libobjc_kt42172.dylib" diff --git a/kotlin-native/build-tools/src/main/groovy/org/jetbrains/kotlin/NativeInteropPlugin.groovy b/kotlin-native/build-tools/src/main/groovy/org/jetbrains/kotlin/NativeInteropPlugin.groovy index 7c3897c4c8b..e12f7d97938 100644 --- a/kotlin-native/build-tools/src/main/groovy/org/jetbrains/kotlin/NativeInteropPlugin.groovy +++ b/kotlin-native/build-tools/src/main/groovy/org/jetbrains/kotlin/NativeInteropPlugin.groovy @@ -251,7 +251,7 @@ class NamedNativeInteropConfig implements Named { } // TODO: the interop plugin should probably be reworked to execute clang from build scripts directly - environment['PATH'] = project.files(project.hostPlatform.clang.clangPaths).asPath + + environment['PATH'] = project.files(project.extensions.platformManager.hostPlatform.clang.clangPaths).asPath + File.pathSeparator + environment['PATH'] args compilerOpts.collectMany { ['-compiler-option', it] } diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/CompilationDatabase.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/CompilationDatabase.kt index b4dddca6e9f..e54abc1eebb 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/CompilationDatabase.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/CompilationDatabase.kt @@ -16,6 +16,7 @@ import org.gradle.api.tasks.Input import org.gradle.api.tasks.InputFiles import org.gradle.api.tasks.OutputFile import org.gradle.api.tasks.TaskAction +import org.gradle.kotlin.dsl.getByType import org.jetbrains.kotlin.bitcode.CompileToBitcode import java.io.FileReader import java.io.FileWriter @@ -63,7 +64,7 @@ open class GenerateCompilationDatabase @Inject constructor(@Input val target: St @TaskAction fun run() { - val plugin = project.convention.getPlugin(ExecClang::class.java) + val plugin = project.extensions.getByType() val executable = plugin.resolveExecutable(executable) val args = listOf(executable) + compilerFlags + plugin.clangArgsForCppRuntime(target) val entries: List = files.map { Entry.create(srcRoot, it, args, outputDir) } diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/KotlinNativeTest.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/KotlinNativeTest.kt index 2497bdc6356..4ef4d917344 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/KotlinNativeTest.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/KotlinNativeTest.kt @@ -11,6 +11,7 @@ import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.provider.Provider import org.gradle.api.tasks.* +import org.gradle.kotlin.dsl.getByType import org.gradle.language.base.plugins.LifecycleBasePlugin import org.gradle.process.ExecSpec import org.jetbrains.kotlin.konan.exec.Command @@ -528,7 +529,7 @@ open class KonanDynamicTest : KonanStandaloneTest() { private fun clang() { val log = ByteArrayOutputStream() - val plugin = project.convention.getPlugin(ExecClang::class.java) + val plugin = project.extensions.getByType() val artifactsDir = "$outputDirectory/${project.testTarget}" fun flagsContain(opt: String) = project.globalTestArgs.contains(opt) || flags.contains(opt) diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/bitcode/CompileToBitcode.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/bitcode/CompileToBitcode.kt index 0d2efc66a72..84ead77fd5d 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/bitcode/CompileToBitcode.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/bitcode/CompileToBitcode.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.bitcode import org.gradle.api.DefaultTask import org.gradle.api.file.FileCollection import org.gradle.api.tasks.* +import org.gradle.kotlin.dsl.getByType import org.jetbrains.kotlin.ExecClang import org.jetbrains.kotlin.konan.target.Family import org.jetbrains.kotlin.konan.target.HostManager @@ -161,7 +162,7 @@ open class CompileToBitcode @Inject constructor( @TaskAction fun compile() { objDir.mkdirs() - val plugin = project.convention.getPlugin(ExecClang::class.java) + val plugin = project.extensions.getByType() plugin.execKonanClang(target) { workingDir = objDir diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/testing/native/NativeTest.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/testing/native/NativeTest.kt index 9583f58b7fc..4be97c8a846 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/testing/native/NativeTest.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/testing/native/NativeTest.kt @@ -11,6 +11,7 @@ import javax.inject.Inject import org.gradle.api.* import org.gradle.api.file.ConfigurableFileCollection import org.gradle.api.tasks.* +import org.gradle.kotlin.dsl.getByType import org.jetbrains.kotlin.ExecClang import org.jetbrains.kotlin.bitcode.CompileToBitcode import org.jetbrains.kotlin.bitcode.CompileToBitcodeExtension @@ -37,7 +38,7 @@ open class CompileNativeTest @Inject constructor( @TaskAction fun compile() { - val plugin = project.convention.getPlugin(ExecClang::class.java) + val plugin = project.extensions.getByType() val args = clangArgs + sanitizerFlags + listOf(inputFile.absolutePath, "-o", outputFile.absolutePath) if (target.family.isAppleFamily) { plugin.execToolchainClang(target) { diff --git a/kotlin-native/build.gradle b/kotlin-native/build.gradle index 762c4bdf75d..9e209e8cc5d 100644 --- a/kotlin-native/build.gradle +++ b/kotlin-native/build.gradle @@ -134,8 +134,8 @@ void setupHostAndTarget() { void setupClang(Project project) { - project.convention.plugins.platformManager = project.project(":kotlin-native").ext.platformManager - project.convention.plugins.execClang = new org.jetbrains.kotlin.ExecClang(project) + project.extensions.platformManager = project.project(":kotlin-native").ext.platformManager + project.extensions.execClang = new org.jetbrains.kotlin.ExecClang(project) } void loadLocalProperties() {