KLIB API constants clean-up
This commit is contained in:
committed by
alexander-gorshenev
parent
781c73335d
commit
5985c0c02b
+8
-22
@@ -7,30 +7,16 @@ package org.jetbrains.kotlin.konan.library
|
||||
|
||||
import java.io.File
|
||||
|
||||
const val KLIB_FILE_EXTENSION = "klib"
|
||||
const val KLIB_FILE_EXTENSION_WITH_DOT = ".$KLIB_FILE_EXTENSION"
|
||||
|
||||
const val KLIB_METADATA_FILE_EXTENSION = "knm"
|
||||
const val KLIB_METADATA_FILE_EXTENSION_WITH_DOT = ".$KLIB_METADATA_FILE_EXTENSION"
|
||||
|
||||
const val KDEFINITIONS_FILE_EXTENSION = "def"
|
||||
|
||||
const val KONAN_STDLIB_NAME = "stdlib"
|
||||
|
||||
const val KLIB_DIR_NAME = "klib"
|
||||
const val KONAN_COMMON_LIBS_DIR_NAME = "common"
|
||||
const val KONAN_PLATFORM_LIBS_DIR_NAME = "platform"
|
||||
const val KONAN_DISTRIBUTION_KLIB_DIR = "klib"
|
||||
const val KONAN_DISTRIBUTION_COMMON_LIBS_DIR = "common"
|
||||
const val KONAN_DISTRIBUTION_PLATFORM_LIBS_DIR = "platform"
|
||||
|
||||
const val KONAN_SOURCES_DIR_NAME = "sources"
|
||||
const val KONAN_DISTRIBUTION_SOURCES_DIR = "sources"
|
||||
|
||||
val KONAN_COMMON_LIBS_PATH: File
|
||||
get() = File(KLIB_DIR_NAME, KONAN_COMMON_LIBS_DIR_NAME)
|
||||
fun konanCommonLibraryPath(libraryName: String) =
|
||||
File(KONAN_DISTRIBUTION_KLIB_DIR, KONAN_DISTRIBUTION_COMMON_LIBS_DIR).resolve(libraryName)
|
||||
|
||||
val KONAN_ALL_PLATFORM_LIBS_PATH: File
|
||||
get() = File(KLIB_DIR_NAME, KONAN_PLATFORM_LIBS_DIR_NAME)
|
||||
|
||||
fun konanCommonLibraryPath(libraryName: String): File = KONAN_COMMON_LIBS_PATH.resolve(libraryName)
|
||||
|
||||
fun konanSpecificPlatformLibrariesPath(platform: String): File = KONAN_ALL_PLATFORM_LIBS_PATH.resolve(platform)
|
||||
|
||||
fun konanPlatformLibraryPath(libraryName: String, platform: String): File = konanSpecificPlatformLibrariesPath(platform).resolve(libraryName)
|
||||
fun konanPlatformLibraryPath(libraryName: String, platform: String) =
|
||||
File(KONAN_DISTRIBUTION_KLIB_DIR, KONAN_DISTRIBUTION_PLATFORM_LIBS_DIR).resolve(platform).resolve(libraryName)
|
||||
|
||||
+4
-4
@@ -64,7 +64,7 @@ private class FromDistributionLiteKonanLibraryProvider(customKonanHomeDir: File?
|
||||
private val konanHomeDir: Path? by lazy {
|
||||
customKonanHomeDir?.takeIf {
|
||||
// small sanity check to ensure that it's a valid Kotlin/Native home directory
|
||||
customKonanHomeDir.resolve(KLIB_DIR_NAME).isDirectory
|
||||
customKonanHomeDir.resolve(KONAN_DISTRIBUTION_KLIB_DIR).isDirectory
|
||||
}?.toPath()
|
||||
}
|
||||
|
||||
@@ -105,11 +105,11 @@ private class FromDistributionLiteKonanLibraryProvider(customKonanHomeDir: File?
|
||||
fun getDataDir(platformDir: File): File = platformDir.parentFile.parentFile
|
||||
|
||||
return when (parentDirName) {
|
||||
KONAN_COMMON_LIBS_DIR_NAME -> null to getDataDir(parentDir)
|
||||
KONAN_DISTRIBUTION_COMMON_LIBS_DIR -> null to getDataDir(parentDir)
|
||||
else -> {
|
||||
val grandParentDir = parentDir.parentFile ?: return null
|
||||
when {
|
||||
grandParentDir.name == KONAN_PLATFORM_LIBS_DIR_NAME -> parentDirName to getDataDir(grandParentDir)
|
||||
grandParentDir.name == KONAN_DISTRIBUTION_PLATFORM_LIBS_DIR -> parentDirName to getDataDir(grandParentDir)
|
||||
else -> return null
|
||||
}
|
||||
}
|
||||
@@ -117,7 +117,7 @@ private class FromDistributionLiteKonanLibraryProvider(customKonanHomeDir: File?
|
||||
}
|
||||
|
||||
private fun getStdlibSources(dataDir: File): Collection<File> {
|
||||
val sourcesDir = dataDir.resolve(KONAN_SOURCES_DIR_NAME).takeIf { it.isDirectory } ?: return emptyList()
|
||||
val sourcesDir = dataDir.resolve(KONAN_DISTRIBUTION_SOURCES_DIR).takeIf { it.isDirectory } ?: return emptyList()
|
||||
|
||||
return sourcesDir.walkTopDown().maxDepth(1)
|
||||
.filter { it.isFile }
|
||||
|
||||
+10
-10
@@ -5,9 +5,9 @@
|
||||
|
||||
package org.jetbrains.kotlin.konan.library.lite
|
||||
|
||||
import org.jetbrains.kotlin.konan.library.KLIB_DIR_NAME
|
||||
import org.jetbrains.kotlin.konan.library.KONAN_COMMON_LIBS_DIR_NAME
|
||||
import org.jetbrains.kotlin.konan.library.KONAN_PLATFORM_LIBS_DIR_NAME
|
||||
import org.jetbrains.kotlin.konan.library.KONAN_DISTRIBUTION_KLIB_DIR
|
||||
import org.jetbrains.kotlin.konan.library.KONAN_DISTRIBUTION_COMMON_LIBS_DIR
|
||||
import org.jetbrains.kotlin.konan.library.KONAN_DISTRIBUTION_PLATFORM_LIBS_DIR
|
||||
import org.jetbrains.kotlin.konan.library.KONAN_STDLIB_NAME
|
||||
import org.junit.Assert.*
|
||||
import org.junit.Test
|
||||
@@ -71,8 +71,8 @@ class LiteKonanLibraryFacadeTests {
|
||||
private fun getPotentialLibraryPathsOnLocalFS(): List<File> {
|
||||
val roots = mutableListOf(externalLibsDir)
|
||||
|
||||
roots += klibDir.resolve(KONAN_COMMON_LIBS_DIR_NAME)
|
||||
roots += klibDir.resolve(KONAN_PLATFORM_LIBS_DIR_NAME).listFiles(FileFilter { it.isDirectory }).toList()
|
||||
roots += klibDir.resolve(KONAN_DISTRIBUTION_COMMON_LIBS_DIR)
|
||||
roots += klibDir.resolve(KONAN_DISTRIBUTION_PLATFORM_LIBS_DIR).listFiles(FileFilter { it.isDirectory }).toList()
|
||||
|
||||
return roots.flatMap { it.listFiles().toList() }
|
||||
}
|
||||
@@ -81,10 +81,10 @@ class LiteKonanLibraryFacadeTests {
|
||||
getPotentialLibraryPathsOnLocalFS().mapNotNull { libraryProvider.getLibrary(it) }.toLibraryMap()
|
||||
|
||||
private fun librariesExpectedInDistribution(): Map<File, FakeLibraryForTest> = listOf(
|
||||
FakeLibraryForTest(klibDir.resolve(KONAN_COMMON_LIBS_DIR_NAME, KONAN_STDLIB_NAME)),
|
||||
FakeLibraryForTest(klibDir.resolve(KONAN_PLATFORM_LIBS_DIR_NAME, "macos_x64", "foo"), platform = "macos_x64"),
|
||||
FakeLibraryForTest(klibDir.resolve(KONAN_PLATFORM_LIBS_DIR_NAME, "macos_x64", "bar"), platform = "macos_x64"),
|
||||
FakeLibraryForTest(klibDir.resolve(KONAN_PLATFORM_LIBS_DIR_NAME, "macos_x64", "baz"), platform = "macos_x64")
|
||||
FakeLibraryForTest(klibDir.resolve(KONAN_DISTRIBUTION_COMMON_LIBS_DIR, KONAN_STDLIB_NAME)),
|
||||
FakeLibraryForTest(klibDir.resolve(KONAN_DISTRIBUTION_PLATFORM_LIBS_DIR, "macos_x64", "foo"), platform = "macos_x64"),
|
||||
FakeLibraryForTest(klibDir.resolve(KONAN_DISTRIBUTION_PLATFORM_LIBS_DIR, "macos_x64", "bar"), platform = "macos_x64"),
|
||||
FakeLibraryForTest(klibDir.resolve(KONAN_DISTRIBUTION_PLATFORM_LIBS_DIR, "macos_x64", "baz"), platform = "macos_x64")
|
||||
).toLibraryMap()
|
||||
|
||||
private fun librariesExpectedInExternalDir(): Map<File, FakeLibraryForTest> = listOf(
|
||||
@@ -107,7 +107,7 @@ class LiteKonanLibraryFacadeTests {
|
||||
}
|
||||
|
||||
private companion object {
|
||||
val klibDir = konanHomeDir.resolve(KLIB_DIR_NAME)
|
||||
val klibDir = konanHomeDir.resolve(KONAN_DISTRIBUTION_KLIB_DIR)
|
||||
val externalLibsDir = testDataDir.resolve("external-libs")
|
||||
|
||||
fun <T : LiteKonanLibrary> List<T>.toLibraryMap() = map { it.path to it }.toMap()
|
||||
|
||||
Reference in New Issue
Block a user