[Platform libs] Store def files in distribution on per-target basis

This commit is contained in:
Ilya Matveev
2020-03-25 19:45:01 +07:00
committed by Ilya Matveev
parent 76b0e42de4
commit 3334b9b3ad
3 changed files with 19 additions and 7 deletions
+16 -3
View File
@@ -74,6 +74,14 @@ ext {
]
cacheableTargetNames = cacheableTargets.collect { it.visibleName }
// Some targets miss zlib in their sysroots.
// We skip these targets when generate a corresponding platform library.
// See also: the :distDef task, targetDefFiles in the :platformLibs project.
targetsWithoutZlib = [
KonanTarget.LINUX_MIPS32.INSTANCE,
KonanTarget.LINUX_MIPSEL32.INSTANCE
]
kotlinCompilerModule="org.jetbrains.kotlin:kotlin-compiler:${kotlinVersion}"
kotlinStdLibModule="org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}"
kotlinCommonStdlibModule="org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinStdlibVersion}:sources"
@@ -388,9 +396,14 @@ task distDef(type: Copy) {
destinationDir distDir
from(project("platformLibs").file("src/platform")) {
into('konan/platformDef')
include '**/*.def'
platformManager.targetValues.each { target ->
from(project("platformLibs").file("src/platform/${target.family.name().toLowerCase()}")) {
into("konan/platformDef/${target.visibleName}")
include '**/*.def'
if (target in targetsWithoutZlib) {
exclude '**/zlib.def'
}
}
}
}
+1 -2
View File
@@ -42,8 +42,7 @@ private ArrayList<DefFile> targetDefFiles(KonanTarget target) {
.findAll { it.name.endsWith(".def") }
// The libz.a/libz.so and zlib.h are missing in MIPS sysroots.
// Just workaround it until we have sysroots corrected.
.findAll { ! ((target instanceof KonanTarget.LINUX_MIPS32 ||
target instanceof KonanTarget.LINUX_MIPSEL32) && it.name == 'zlib.def') }
.findAll { ! ((target in targetsWithoutZlib) && it.name == 'zlib.def') }
.collect { DefFileKt.DefFile(it, target) }
}
@@ -69,7 +69,7 @@ fun generatePlatformLibraries(args: Array<String>) {
val inputDirectoryPath by argParser.option(
ArgType.String,
"input-directory", "i",
"Input directory. Default value is <dist>/konan/platformDef/<target_family>"
"Input directory. Default value is <dist>/konan/platformDef/<target>"
)
val outputDirectoryPath by argParser.option(
ArgType.String,
@@ -123,7 +123,7 @@ fun generatePlatformLibraries(args: Array<String>) {
val target = HostManager(distribution).targetByName(targetName)
val inputDirectory = inputDirectoryPath?.File()
?: File(distribution.konanSubdir, "platformDef").child(target.family.visibleName)
?: File(distribution.konanSubdir, "platformDef").child(target.visibleName)
val outputDirectory = outputDirectoryPath?.File()
?: File(distribution.klib, "platform").child(target.visibleName)