A native counterpart for plubing metadata and ir versions to klib manifest
(cherry picked from commit 06a515393df6c1c071a551353a2a82fd2252a24c)
This commit is contained in:
committed by
Vasily Levchenko
parent
aafe34db13
commit
fcba683e72
+9
-5
@@ -4,12 +4,14 @@
|
|||||||
*/
|
*/
|
||||||
package org.jetbrains.kotlin.native.interop.gen.jvm
|
package org.jetbrains.kotlin.native.interop.gen.jvm
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.backend.common.serialization.KlibIrVersion
|
||||||
|
import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataVersion
|
||||||
|
import org.jetbrains.kotlin.konan.CompilerVersion
|
||||||
import org.jetbrains.kotlin.konan.CURRENT
|
import org.jetbrains.kotlin.konan.CURRENT
|
||||||
import org.jetbrains.kotlin.konan.KonanVersion
|
|
||||||
import org.jetbrains.kotlin.konan.file.File
|
import org.jetbrains.kotlin.konan.file.File
|
||||||
import org.jetbrains.kotlin.konan.library.impl.KonanLibraryWriterImpl
|
import org.jetbrains.kotlin.konan.library.impl.KonanLibraryWriterImpl
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
import org.jetbrains.kotlin.library.KonanLibraryVersioning
|
import org.jetbrains.kotlin.library.KotlinLibraryVersioning
|
||||||
import org.jetbrains.kotlin.library.KotlinAbiVersion
|
import org.jetbrains.kotlin.library.KotlinAbiVersion
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
@@ -22,10 +24,12 @@ data class LibraryCreationArguments(
|
|||||||
)
|
)
|
||||||
|
|
||||||
fun createInteropLibrary(arguments: LibraryCreationArguments) {
|
fun createInteropLibrary(arguments: LibraryCreationArguments) {
|
||||||
val version = KonanLibraryVersioning(
|
val version = KotlinLibraryVersioning(
|
||||||
libraryVersion = null,
|
libraryVersion = null,
|
||||||
abiVersion = KotlinAbiVersion.CURRENT,
|
abiVersion = KotlinAbiVersion.CURRENT,
|
||||||
compilerVersion = KonanVersion.CURRENT
|
compilerVersion = CompilerVersion.CURRENT.toString(),
|
||||||
|
metadataVersion = KlibMetadataVersion.INSTANCE.toString(),
|
||||||
|
irVersion = KlibIrVersion.INSTANCE.toString()
|
||||||
)
|
)
|
||||||
KonanLibraryWriterImpl(
|
KonanLibraryWriterImpl(
|
||||||
File(arguments.outputPath),arguments.moduleName, version, arguments.target
|
File(arguments.outputPath),arguments.moduleName, version, arguments.target
|
||||||
@@ -34,4 +38,4 @@ fun createInteropLibrary(arguments: LibraryCreationArguments) {
|
|||||||
addManifestAddend(arguments.manifest)
|
addManifestAddend(arguments.manifest)
|
||||||
commit()
|
commit()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
|||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.config.Services
|
import org.jetbrains.kotlin.config.Services
|
||||||
import org.jetbrains.kotlin.konan.CURRENT
|
import org.jetbrains.kotlin.konan.CURRENT
|
||||||
import org.jetbrains.kotlin.konan.KonanVersion
|
import org.jetbrains.kotlin.konan.CompilerVersion
|
||||||
import org.jetbrains.kotlin.konan.file.File
|
import org.jetbrains.kotlin.konan.file.File
|
||||||
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
||||||
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
|
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
|
||||||
@@ -47,7 +47,7 @@ class K2Native : CLICompiler<K2NativeCompilerArguments>() {
|
|||||||
@Nullable paths: KotlinPaths?): ExitCode {
|
@Nullable paths: KotlinPaths?): ExitCode {
|
||||||
|
|
||||||
if (arguments.version) {
|
if (arguments.version) {
|
||||||
println("Kotlin/Native: ${KonanVersion.CURRENT}")
|
println("Kotlin/Native: ${CompilerVersion.CURRENT}")
|
||||||
return ExitCode.OK
|
return ExitCode.OK
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,7 +82,7 @@ class K2Native : CLICompiler<K2NativeCompilerArguments>() {
|
|||||||
|Compilation failed: ${e.message}
|
|Compilation failed: ${e.message}
|
||||||
|
|
||||||
| * Source files: ${environment.getSourceFiles().joinToString(transform = KtFile::getName)}
|
| * Source files: ${environment.getSourceFiles().joinToString(transform = KtFile::getName)}
|
||||||
| * Compiler version info: Konan: ${KonanVersion.CURRENT} / Kotlin: ${KotlinVersion.CURRENT}
|
| * Compiler version info: Konan: ${CompilerVersion.CURRENT} / Kotlin: ${KotlinVersion.CURRENT}
|
||||||
| * Output kind: ${configuration.get(KonanConfigKeys.PRODUCE)}
|
| * Output kind: ${configuration.get(KonanConfigKeys.PRODUCE)}
|
||||||
|
|
||||||
""".trimMargin())
|
""".trimMargin())
|
||||||
|
|||||||
+10
-4
@@ -5,12 +5,14 @@
|
|||||||
package org.jetbrains.kotlin.backend.konan
|
package org.jetbrains.kotlin.backend.konan
|
||||||
|
|
||||||
import llvm.*
|
import llvm.*
|
||||||
|
import org.jetbrains.kotlin.backend.common.serialization.KlibIrVersion
|
||||||
|
import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataVersion
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.*
|
import org.jetbrains.kotlin.backend.konan.llvm.*
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.Llvm
|
import org.jetbrains.kotlin.backend.konan.llvm.Llvm
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.objc.linkObjC
|
import org.jetbrains.kotlin.backend.konan.llvm.objc.linkObjC
|
||||||
import org.jetbrains.kotlin.konan.CURRENT
|
import org.jetbrains.kotlin.konan.CURRENT
|
||||||
import org.jetbrains.kotlin.library.KotlinAbiVersion
|
import org.jetbrains.kotlin.library.KotlinAbiVersion
|
||||||
import org.jetbrains.kotlin.konan.KonanVersion
|
import org.jetbrains.kotlin.konan.CompilerVersion
|
||||||
import org.jetbrains.kotlin.konan.file.isBitcode
|
import org.jetbrains.kotlin.konan.file.isBitcode
|
||||||
import org.jetbrains.kotlin.library.*
|
import org.jetbrains.kotlin.library.*
|
||||||
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
||||||
@@ -122,12 +124,16 @@ internal fun produceOutput(context: Context) {
|
|||||||
val libraryName = context.config.moduleId
|
val libraryName = context.config.moduleId
|
||||||
val neededLibraries = context.librariesWithDependencies
|
val neededLibraries = context.librariesWithDependencies
|
||||||
val abiVersion = KotlinAbiVersion.CURRENT
|
val abiVersion = KotlinAbiVersion.CURRENT
|
||||||
val compilerVersion = KonanVersion.CURRENT
|
val compilerVersion = CompilerVersion.CURRENT.toString()
|
||||||
val libraryVersion = config.get(KonanConfigKeys.LIBRARY_VERSION)
|
val libraryVersion = config.get(KonanConfigKeys.LIBRARY_VERSION)
|
||||||
val versions = KonanLibraryVersioning(
|
val metadataVersion = KlibMetadataVersion.INSTANCE.toString()
|
||||||
|
val irVersion = KlibIrVersion.INSTANCE.toString()
|
||||||
|
val versions = KotlinLibraryVersioning(
|
||||||
abiVersion = abiVersion,
|
abiVersion = abiVersion,
|
||||||
libraryVersion = libraryVersion,
|
libraryVersion = libraryVersion,
|
||||||
compilerVersion = compilerVersion
|
compilerVersion = compilerVersion,
|
||||||
|
metadataVersion = metadataVersion,
|
||||||
|
irVersion = irVersion
|
||||||
)
|
)
|
||||||
val target = context.config.target
|
val target = context.config.target
|
||||||
val nopack = config.getBoolean(KonanConfigKeys.NOPACK)
|
val nopack = config.getBoolean(KonanConfigKeys.NOPACK)
|
||||||
|
|||||||
+4
-4
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.konan.target.*
|
|||||||
import org.jetbrains.kotlin.util.Logger
|
import org.jetbrains.kotlin.util.Logger
|
||||||
import kotlin.system.exitProcess
|
import kotlin.system.exitProcess
|
||||||
import org.jetbrains.kotlin.library.toUnresolvedLibraries
|
import org.jetbrains.kotlin.library.toUnresolvedLibraries
|
||||||
import org.jetbrains.kotlin.konan.KonanVersion
|
import org.jetbrains.kotlin.konan.CompilerVersion
|
||||||
import org.jetbrains.kotlin.library.KotlinLibrary
|
import org.jetbrains.kotlin.library.KotlinLibrary
|
||||||
import org.jetbrains.kotlin.library.resolver.impl.libraryResolver
|
import org.jetbrains.kotlin.library.resolver.impl.libraryResolver
|
||||||
import org.jetbrains.kotlin.library.UnresolvedLibrary
|
import org.jetbrains.kotlin.library.UnresolvedLibrary
|
||||||
@@ -54,7 +54,7 @@ class KonanConfig(val project: Project, val configuration: CompilerConfiguration
|
|||||||
val needCompilerVerification: Boolean
|
val needCompilerVerification: Boolean
|
||||||
get() = configuration.get(KonanConfigKeys.VERIFY_COMPILER) ?:
|
get() = configuration.get(KonanConfigKeys.VERIFY_COMPILER) ?:
|
||||||
(configuration.getBoolean(KonanConfigKeys.OPTIMIZATION) ||
|
(configuration.getBoolean(KonanConfigKeys.OPTIMIZATION) ||
|
||||||
KonanVersion.CURRENT.meta != MetaVersion.RELEASE)
|
CompilerVersion.CURRENT.meta != MetaVersion.RELEASE)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
if (!platformManager.isEnabled(target)) {
|
if (!platformManager.isEnabled(target)) {
|
||||||
@@ -112,8 +112,8 @@ class KonanConfig(val project: Project, val configuration: CompilerConfiguration
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val compatibleCompilerVersions: List<KonanVersion> =
|
private val compatibleCompilerVersions: List<CompilerVersion> =
|
||||||
configuration.getList(KonanConfigKeys.COMPATIBLE_COMPILER_VERSIONS).map { it.parseKonanVersion() }
|
configuration.getList(KonanConfigKeys.COMPATIBLE_COMPILER_VERSIONS).map { it.parseCompilerVersion() }
|
||||||
|
|
||||||
private val resolver = defaultResolver(
|
private val resolver = defaultResolver(
|
||||||
repositories,
|
repositories,
|
||||||
|
|||||||
+2
-2
@@ -20,11 +20,11 @@ import org.jetbrains.kotlin.ir.util.isTypeParameter
|
|||||||
import org.jetbrains.kotlin.ir.util.isUnsigned
|
import org.jetbrains.kotlin.ir.util.isUnsigned
|
||||||
import org.jetbrains.kotlin.ir.util.render
|
import org.jetbrains.kotlin.ir.util.render
|
||||||
import org.jetbrains.kotlin.konan.CURRENT
|
import org.jetbrains.kotlin.konan.CURRENT
|
||||||
import org.jetbrains.kotlin.konan.KonanVersion
|
import org.jetbrains.kotlin.konan.CompilerVersion
|
||||||
import org.jetbrains.kotlin.konan.file.File
|
import org.jetbrains.kotlin.konan.file.File
|
||||||
|
|
||||||
internal object DWARF {
|
internal object DWARF {
|
||||||
val producer = "konanc ${KonanVersion.CURRENT} / kotlin-compiler: ${KotlinVersion.CURRENT}"
|
val producer = "konanc ${CompilerVersion.CURRENT} / kotlin-compiler: ${KotlinVersion.CURRENT}"
|
||||||
/* TODO: from LLVM sources is unclear what runtimeVersion corresponds to term in terms of dwarf specification. */
|
/* TODO: from LLVM sources is unclear what runtimeVersion corresponds to term in terms of dwarf specification. */
|
||||||
val dwarfVersionMetaDataNodeName get() = "Dwarf Version".mdString()
|
val dwarfVersionMetaDataNodeName get() = "Dwarf Version".mdString()
|
||||||
val dwarfDebugInfoMetaDataNodeName get() = "Debug Info Version".mdString()
|
val dwarfDebugInfoMetaDataNodeName get() = "Debug Info Version".mdString()
|
||||||
|
|||||||
+3
-3
@@ -76,7 +76,7 @@ ext {
|
|||||||
kotlinNativeUtilsModule="org.jetbrains.kotlin:kotlin-native-utils:${kotlinVersion}"
|
kotlinNativeUtilsModule="org.jetbrains.kotlin:kotlin-native-utils:${kotlinVersion}"
|
||||||
kotlinUtilKliMetadatabModule="org.jetbrains.kotlin:kotlin-util-klib-metadata:${kotlinVersion}"
|
kotlinUtilKliMetadatabModule="org.jetbrains.kotlin:kotlin-util-klib-metadata:${kotlinVersion}"
|
||||||
|
|
||||||
konanVersionFull = KonanVersionGeneratedKt.getCurrentKonanVersion()
|
konanVersionFull = CompilerVersionGeneratedKt.getCurrentCompilerVersion()
|
||||||
gradlePluginVersion = konanVersionFull
|
gradlePluginVersion = konanVersionFull
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -631,7 +631,7 @@ task uploadBundle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
task teamcityKonanVersion {
|
task teamcityCompilerVersion {
|
||||||
doLast {
|
doLast {
|
||||||
println("##teamcity[setParameter name='kotlin.native.version.base' value='$konanVersion']")
|
println("##teamcity[setParameter name='kotlin.native.version.base' value='$konanVersion']")
|
||||||
println("##teamcity[setParameter name='kotlin.native.version.full' value='$konanVersionFull']")
|
println("##teamcity[setParameter name='kotlin.native.version.full' value='$konanVersionFull']")
|
||||||
@@ -650,7 +650,7 @@ task clean {
|
|||||||
|
|
||||||
task pusher(type: KotlinBuildPusher){
|
task pusher(type: KotlinBuildPusher){
|
||||||
kotlinVersion = project.kotlinVersion
|
kotlinVersion = project.kotlinVersion
|
||||||
konanVersion = KonanVersionGeneratedKt.getCurrentKonanVersion()
|
konanVersion = CompilerVersionGeneratedKt.getCurrentCompilerVersion()
|
||||||
buildServer = "buildserver.labs.intellij.net"
|
buildServer = "buildserver.labs.intellij.net"
|
||||||
compilerConfigurationId = System.getenv("TEAMCITY_COMPILER_ID") ?: "Kotlin_KotlinDev_Compiler"
|
compilerConfigurationId = System.getenv("TEAMCITY_COMPILER_ID") ?: "Kotlin_KotlinDev_Compiler"
|
||||||
overrideConfigurationId = System.getenv("TEAMCITY_OVERRIDE_NATIVE_ID") ?: "Kotlin_KotlinDev_DeployMavenArtifacts_OverrideNative"
|
overrideConfigurationId = System.getenv("TEAMCITY_OVERRIDE_NATIVE_ID") ?: "Kotlin_KotlinDev_DeployMavenArtifacts_OverrideNative"
|
||||||
|
|||||||
@@ -105,14 +105,18 @@ class Library(val name: String, val requestedRepository: String?, val target: St
|
|||||||
val headerAbiVersion = library.versions.abiVersion
|
val headerAbiVersion = library.versions.abiVersion
|
||||||
val headerCompilerVersion = library.versions.compilerVersion
|
val headerCompilerVersion = library.versions.compilerVersion
|
||||||
val headerLibraryVersion = library.versions.libraryVersion
|
val headerLibraryVersion = library.versions.libraryVersion
|
||||||
|
val headerMetadataVersion = library.versions.metadataVersion
|
||||||
|
val headerIrVersion = library.versions.irVersion
|
||||||
val moduleName = ModuleDeserializer(library.moduleHeaderData).moduleName
|
val moduleName = ModuleDeserializer(library.moduleHeaderData).moduleName
|
||||||
|
|
||||||
println("")
|
println("")
|
||||||
println("Resolved to: ${library.libraryName.File().absolutePath}")
|
println("Resolved to: ${library.libraryName.File().absolutePath}")
|
||||||
println("Module name: $moduleName")
|
println("Module name: $moduleName")
|
||||||
println("ABI version: $headerAbiVersion")
|
println("ABI version: $headerAbiVersion")
|
||||||
println("Compiler version: ${headerCompilerVersion?.toString(true, true)}")
|
println("Compiler version: ${headerCompilerVersion}")
|
||||||
println("Library version: $headerLibraryVersion")
|
println("Library version: $headerLibraryVersion")
|
||||||
|
println("Metadata version: $headerMetadataVersion")
|
||||||
|
println("IR version: $headerIrVersion")
|
||||||
|
|
||||||
if (library is KonanLibrary) {
|
if (library is KonanLibrary) {
|
||||||
val targets = library.targetList.joinToString(", ")
|
val targets = library.targetList.joinToString(", ")
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ open class VersionGenerator: DefaultTask() {
|
|||||||
@OutputDirectory
|
@OutputDirectory
|
||||||
val versionSourceDirectory = project.file("build/generated")
|
val versionSourceDirectory = project.file("build/generated")
|
||||||
@OutputFile
|
@OutputFile
|
||||||
val versionFile:File = project.file("${versionSourceDirectory.path}/org/jetbrains/kotlin/konan/KonanVersionGenerated.kt")
|
val versionFile:File = project.file("${versionSourceDirectory.path}/org/jetbrains/kotlin/konan/CompilerVersionGenerated.kt")
|
||||||
|
|
||||||
val konanVersion: String
|
val konanVersion: String
|
||||||
@Input get() = project.properties["konanVersion"].toString()
|
@Input get() = project.properties["konanVersion"].toString()
|
||||||
@@ -49,11 +49,11 @@ open class VersionGenerator: DefaultTask() {
|
|||||||
+ """
|
+ """
|
||||||
|package org.jetbrains.kotlin.konan
|
|package org.jetbrains.kotlin.konan
|
||||||
|
|
|
|
||||||
|internal val currentKonanVersion: KonanVersion =
|
|internal val currentCompilerVersion: CompilerVersion =
|
||||||
| KonanVersionImpl($meta, $major, $minor, $maintenance, $build)
|
| CompilerVersionImpl($meta, $major, $minor, $maintenance, $build)
|
||||||
|
|
|
|
||||||
|val KonanVersion.Companion.CURRENT: KonanVersion
|
|val CompilerVersion.Companion.CURRENT: CompilerVersion
|
||||||
| get() = currentKonanVersion
|
| get() = currentCompilerVersion
|
||||||
""".trimMargin()
|
""".trimMargin()
|
||||||
}
|
}
|
||||||
versionFile.printWriter().use {
|
versionFile.printWriter().use {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package org.jetbrains.kotlin.konan.library
|
package org.jetbrains.kotlin.konan.library
|
||||||
|
|
||||||
import org.jetbrains.kotlin.konan.KonanVersion
|
import org.jetbrains.kotlin.konan.CompilerVersion
|
||||||
import org.jetbrains.kotlin.konan.file.File
|
import org.jetbrains.kotlin.konan.file.File
|
||||||
import org.jetbrains.kotlin.konan.library.impl.KonanLibraryImpl
|
import org.jetbrains.kotlin.konan.library.impl.KonanLibraryImpl
|
||||||
import org.jetbrains.kotlin.konan.library.impl.createKonanLibrary
|
import org.jetbrains.kotlin.konan.library.impl.createKonanLibrary
|
||||||
@@ -21,7 +21,7 @@ fun defaultResolver(
|
|||||||
repositories: List<String>,
|
repositories: List<String>,
|
||||||
target: KonanTarget,
|
target: KonanTarget,
|
||||||
distribution: Distribution = Distribution(),
|
distribution: Distribution = Distribution(),
|
||||||
compatibleCompilerVersions: List<KonanVersion> = emptyList()
|
compatibleCompilerVersions: List<CompilerVersion> = emptyList()
|
||||||
): SearchPathResolverWithTarget<KonanLibrary> = defaultResolver(repositories, emptyList(), target, distribution, compatibleCompilerVersions)
|
): SearchPathResolverWithTarget<KonanLibrary> = defaultResolver(repositories, emptyList(), target, distribution, compatibleCompilerVersions)
|
||||||
|
|
||||||
fun defaultResolver(
|
fun defaultResolver(
|
||||||
@@ -29,7 +29,7 @@ fun defaultResolver(
|
|||||||
directLibs: List<String>,
|
directLibs: List<String>,
|
||||||
target: KonanTarget,
|
target: KonanTarget,
|
||||||
distribution: Distribution,
|
distribution: Distribution,
|
||||||
compatibleCompilerVersions: List<KonanVersion> = emptyList(),
|
compatibleCompilerVersions: List<CompilerVersion> = emptyList(),
|
||||||
logger: Logger = DummyLogger,
|
logger: Logger = DummyLogger,
|
||||||
skipCurrentDir: Boolean = false
|
skipCurrentDir: Boolean = false
|
||||||
): SearchPathResolverWithTarget<KonanLibrary> = KonanLibraryProperResolver(
|
): SearchPathResolverWithTarget<KonanLibrary> = KonanLibraryProperResolver(
|
||||||
@@ -68,7 +68,7 @@ internal class KonanLibraryProperResolver(
|
|||||||
directLibs: List<String>,
|
directLibs: List<String>,
|
||||||
override val target: KonanTarget,
|
override val target: KonanTarget,
|
||||||
knownAbiVersions: List<KotlinAbiVersion>?,
|
knownAbiVersions: List<KotlinAbiVersion>?,
|
||||||
knownCompilerVersions: List<KonanVersion>?,
|
knownCompilerVersions: List<CompilerVersion>?,
|
||||||
distributionKlib: String?,
|
distributionKlib: String?,
|
||||||
localKonanDir: String?,
|
localKonanDir: String?,
|
||||||
skipCurrentDir: Boolean,
|
skipCurrentDir: Boolean,
|
||||||
|
|||||||
+3
-4
@@ -20,14 +20,13 @@ class KonanLibraryLayoutForWriter(
|
|||||||
override val target: KonanTarget
|
override val target: KonanTarget
|
||||||
) : KonanLibraryLayout, KotlinLibraryLayoutForWriter(libDir)
|
) : KonanLibraryLayout, KotlinLibraryLayoutForWriter(libDir)
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Requires non-null [target].
|
* Requires non-null [target].
|
||||||
*/
|
*/
|
||||||
class KonanLibraryWriterImpl(
|
class KonanLibraryWriterImpl(
|
||||||
libDir: File,
|
libDir: File,
|
||||||
moduleName: String,
|
moduleName: String,
|
||||||
versions: KonanLibraryVersioning,
|
versions: KotlinLibraryVersioning,
|
||||||
target: KonanTarget,
|
target: KonanTarget,
|
||||||
nopack: Boolean = false,
|
nopack: Boolean = false,
|
||||||
|
|
||||||
@@ -46,7 +45,7 @@ fun buildLibrary(
|
|||||||
linkDependencies: List<KonanLibrary>,
|
linkDependencies: List<KonanLibrary>,
|
||||||
metadata: SerializedMetadata,
|
metadata: SerializedMetadata,
|
||||||
ir: SerializedIrModule,
|
ir: SerializedIrModule,
|
||||||
versions: KonanLibraryVersioning,
|
versions: KotlinLibraryVersioning,
|
||||||
target: KonanTarget,
|
target: KonanTarget,
|
||||||
output: String,
|
output: String,
|
||||||
moduleName: String,
|
moduleName: String,
|
||||||
@@ -72,4 +71,4 @@ fun buildLibrary(
|
|||||||
|
|
||||||
library.commit()
|
library.commit()
|
||||||
return library.layout
|
return library.layout
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ apply plugin: 'groovy'
|
|||||||
apply plugin: 'com.github.johnrengelman.shadow'
|
apply plugin: 'com.github.johnrengelman.shadow'
|
||||||
|
|
||||||
group = 'org.jetbrains.kotlin'
|
group = 'org.jetbrains.kotlin'
|
||||||
version = KonanVersionGeneratedKt.getCurrentKonanVersion()
|
version = CompilerVersionGeneratedKt.getCurrentCompilerVersion()
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
|||||||
+1
-1
@@ -25,7 +25,7 @@ import org.gradle.api.tasks.Internal
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanArtifactWithLibrariesTask
|
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanArtifactWithLibrariesTask
|
||||||
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanBuildingTask
|
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanBuildingTask
|
||||||
import org.jetbrains.kotlin.konan.*
|
import org.jetbrains.kotlin.konan.*
|
||||||
import org.jetbrains.kotlin.konan.KonanVersion
|
import org.jetbrains.kotlin.konan.CompilerVersion
|
||||||
import org.jetbrains.kotlin.konan.library.defaultResolver
|
import org.jetbrains.kotlin.konan.library.defaultResolver
|
||||||
import org.jetbrains.kotlin.konan.library.impl.KonanLibraryImpl
|
import org.jetbrains.kotlin.konan.library.impl.KonanLibraryImpl
|
||||||
import org.jetbrains.kotlin.konan.target.Distribution
|
import org.jetbrains.kotlin.konan.target.Distribution
|
||||||
|
|||||||
+7
-7
@@ -35,8 +35,8 @@ import org.jetbrains.kotlin.gradle.plugin.konan.KonanPlugin.Companion.COMPILE_AL
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.model.KonanToolingModelBuilder
|
import org.jetbrains.kotlin.gradle.plugin.model.KonanToolingModelBuilder
|
||||||
import org.jetbrains.kotlin.gradle.plugin.tasks.*
|
import org.jetbrains.kotlin.gradle.plugin.tasks.*
|
||||||
import org.jetbrains.kotlin.konan.CURRENT
|
import org.jetbrains.kotlin.konan.CURRENT
|
||||||
import org.jetbrains.kotlin.konan.KonanVersion
|
import org.jetbrains.kotlin.konan.CompilerVersion
|
||||||
import org.jetbrains.kotlin.konan.parseKonanVersion
|
import org.jetbrains.kotlin.konan.parseCompilerVersion
|
||||||
import org.jetbrains.kotlin.konan.target.HostManager
|
import org.jetbrains.kotlin.konan.target.HostManager
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
import org.jetbrains.kotlin.konan.target.buildDistribution
|
import org.jetbrains.kotlin.konan.target.buildDistribution
|
||||||
@@ -89,10 +89,10 @@ internal val Project.konanHome: String
|
|||||||
return project.file(getProperty(KonanPlugin.ProjectProperty.KONAN_HOME)).canonicalPath
|
return project.file(getProperty(KonanPlugin.ProjectProperty.KONAN_HOME)).canonicalPath
|
||||||
}
|
}
|
||||||
|
|
||||||
internal val Project.konanVersion: KonanVersion
|
internal val Project.konanVersion: CompilerVersion
|
||||||
get() = project.findProperty(KonanPlugin.ProjectProperty.KONAN_VERSION)
|
get() = project.findProperty(KonanPlugin.ProjectProperty.KONAN_VERSION)
|
||||||
?.toString()?.let { KonanVersion.fromString(it) }
|
?.toString()?.let { CompilerVersion.fromString(it) }
|
||||||
?: KonanVersion.CURRENT
|
?: CompilerVersion.CURRENT
|
||||||
|
|
||||||
internal val Project.konanBuildRoot get() = buildDir.resolve("konan")
|
internal val Project.konanBuildRoot get() = buildDir.resolve("konan")
|
||||||
internal val Project.konanBinBaseDir get() = konanBuildRoot.resolve("bin")
|
internal val Project.konanBinBaseDir get() = konanBuildRoot.resolve("bin")
|
||||||
@@ -233,7 +233,7 @@ internal fun dumpProperties(task: Task) {
|
|||||||
println("target : $target")
|
println("target : $target")
|
||||||
println("languageVersion : $languageVersion")
|
println("languageVersion : $languageVersion")
|
||||||
println("apiVersion : $apiVersion")
|
println("apiVersion : $apiVersion")
|
||||||
println("konanVersion : ${KonanVersion.CURRENT}")
|
println("konanVersion : ${CompilerVersion.CURRENT}")
|
||||||
println("konanHome : $konanHome")
|
println("konanHome : $konanHome")
|
||||||
println()
|
println()
|
||||||
}
|
}
|
||||||
@@ -254,7 +254,7 @@ internal fun dumpProperties(task: Task) {
|
|||||||
println("linkerOpts : $linkerOpts")
|
println("linkerOpts : $linkerOpts")
|
||||||
println("headers : ${headers.dump()}")
|
println("headers : ${headers.dump()}")
|
||||||
println("linkFiles : ${linkFiles.dump()}")
|
println("linkFiles : ${linkFiles.dump()}")
|
||||||
println("konanVersion : ${KonanVersion.CURRENT}")
|
println("konanVersion : ${CompilerVersion.CURRENT}")
|
||||||
println("konanHome : $konanHome")
|
println("konanHome : $konanHome")
|
||||||
println()
|
println()
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.gradle.plugin.konan.KonanInteropSpec.IncludeDirector
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.model.KonanModelArtifact
|
import org.jetbrains.kotlin.gradle.plugin.model.KonanModelArtifact
|
||||||
import org.jetbrains.kotlin.gradle.plugin.model.KonanModelArtifactImpl
|
import org.jetbrains.kotlin.gradle.plugin.model.KonanModelArtifactImpl
|
||||||
import org.jetbrains.kotlin.konan.CURRENT
|
import org.jetbrains.kotlin.konan.CURRENT
|
||||||
import org.jetbrains.kotlin.konan.KonanVersion
|
import org.jetbrains.kotlin.konan.CompilerVersion
|
||||||
import org.jetbrains.kotlin.konan.library.defaultResolver
|
import org.jetbrains.kotlin.konan.library.defaultResolver
|
||||||
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
||||||
import org.jetbrains.kotlin.konan.target.Distribution
|
import org.jetbrains.kotlin.konan.target.Distribution
|
||||||
@@ -221,4 +221,4 @@ open class KonanInteropTask @Inject constructor(val workerExecutor: WorkerExecut
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal val interchangeBox = ConcurrentHashMap<String, KonanToolRunner>()
|
internal val interchangeBox = ConcurrentHashMap<String, KonanToolRunner>()
|
||||||
|
|||||||
+2
-2
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.plugin.model
|
package org.jetbrains.kotlin.gradle.plugin.model
|
||||||
|
|
||||||
import org.jetbrains.kotlin.konan.KonanVersion
|
import org.jetbrains.kotlin.konan.CompilerVersion
|
||||||
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
@@ -27,7 +27,7 @@ import java.io.Serializable
|
|||||||
*/
|
*/
|
||||||
interface KonanModel : Serializable {
|
interface KonanModel : Serializable {
|
||||||
val konanHome: File
|
val konanHome: File
|
||||||
val konanVersion: KonanVersion
|
val konanVersion: CompilerVersion
|
||||||
val languageVersion: String?
|
val languageVersion: String?
|
||||||
val apiVersion: String?
|
val apiVersion: String?
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.gradle.plugin.konan.konanExtension
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.konan.konanHome
|
import org.jetbrains.kotlin.gradle.plugin.konan.konanHome
|
||||||
import org.jetbrains.kotlin.gradle.plugin.konan.konanVersion
|
import org.jetbrains.kotlin.gradle.plugin.konan.konanVersion
|
||||||
import org.jetbrains.kotlin.konan.CURRENT
|
import org.jetbrains.kotlin.konan.CURRENT
|
||||||
import org.jetbrains.kotlin.konan.KonanVersion
|
import org.jetbrains.kotlin.konan.CompilerVersion
|
||||||
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ object KonanToolingModelBuilder : ToolingModelBuilder {
|
|||||||
internal data class KonanModelImpl(
|
internal data class KonanModelImpl(
|
||||||
override val artifacts: List<KonanModelArtifact>,
|
override val artifacts: List<KonanModelArtifact>,
|
||||||
override val konanHome: File,
|
override val konanHome: File,
|
||||||
override val konanVersion: KonanVersion,
|
override val konanVersion: CompilerVersion,
|
||||||
override val languageVersion: String?,
|
override val languageVersion: String?,
|
||||||
override val apiVersion: String?
|
override val apiVersion: String?
|
||||||
) : KonanModel
|
) : KonanModel
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.gradle.plugin.konan.KonanPlugin
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.konan.konanArtifactsContainer
|
import org.jetbrains.kotlin.gradle.plugin.konan.konanArtifactsContainer
|
||||||
import org.jetbrains.kotlin.gradle.plugin.model.KonanToolingModelBuilder
|
import org.jetbrains.kotlin.gradle.plugin.model.KonanToolingModelBuilder
|
||||||
import org.jetbrains.kotlin.konan.CURRENT
|
import org.jetbrains.kotlin.konan.CURRENT
|
||||||
import org.jetbrains.kotlin.konan.KonanVersion
|
import org.jetbrains.kotlin.konan.CompilerVersion
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.rules.TemporaryFolder
|
import org.junit.rules.TemporaryFolder
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -92,7 +92,7 @@ open class ToolingModelTests {
|
|||||||
@Test
|
@Test
|
||||||
fun `The model should contain the same data as the Gradle tasks`() {
|
fun `The model should contain the same data as the Gradle tasks`() {
|
||||||
val project = KonanProject.createEmpty(projectDirectory, listOf("host", "wasm32")).apply {
|
val project = KonanProject.createEmpty(projectDirectory, listOf("host", "wasm32")).apply {
|
||||||
val konanVersion = KonanVersion.CURRENT.toString()
|
val konanVersion = CompilerVersion.CURRENT.toString()
|
||||||
generateSrcFile(listOf("src", "foo1"), "foo1.kt", "fun foo1() = 0")
|
generateSrcFile(listOf("src", "foo1"), "foo1.kt", "fun foo1() = 0")
|
||||||
generateSrcFile(listOf("src", "foo1"), "foo11.kt", "fun foo11() = 0")
|
generateSrcFile(listOf("src", "foo1"), "foo11.kt", "fun foo11() = 0")
|
||||||
generateSrcFile(listOf("src", "foo2"), "foo2.kt", "fun foo2() = 0")
|
generateSrcFile(listOf("src", "foo2"), "foo2.kt", "fun foo2() = 0")
|
||||||
|
|||||||
Reference in New Issue
Block a user