Fix: Load properties in konan Distribution in safe way
Issue #KT-36333
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.konan.target
|
package org.jetbrains.kotlin.konan.target
|
||||||
|
|
||||||
import org.jetbrains.kotlin.konan.file.File
|
import org.jetbrains.kotlin.konan.file.File
|
||||||
|
import org.jetbrains.kotlin.konan.properties.Properties
|
||||||
import org.jetbrains.kotlin.konan.properties.keepOnlyDefaultProfiles
|
import org.jetbrains.kotlin.konan.properties.keepOnlyDefaultProfiles
|
||||||
import org.jetbrains.kotlin.konan.properties.loadProperties
|
import org.jetbrains.kotlin.konan.properties.loadProperties
|
||||||
import org.jetbrains.kotlin.konan.util.DependencyDirectories
|
import org.jetbrains.kotlin.konan.util.DependencyDirectories
|
||||||
@@ -51,17 +52,25 @@ class Distribution(
|
|||||||
preconfiguredPropertyFiles(genericName) + userPropertyFiles(genericName)
|
preconfiguredPropertyFiles(genericName) + userPropertyFiles(genericName)
|
||||||
|
|
||||||
val properties by lazy {
|
val properties by lazy {
|
||||||
val loaded = File(mainPropertyFileName).loadProperties()
|
val result = Properties()
|
||||||
HostManager.knownTargetTemplates.forEach {
|
|
||||||
additionalPropertyFiles(it).forEach {
|
fun loadPropertiesSafely(source: File) {
|
||||||
val additional = it.loadProperties()
|
if (source.isFile) result.putAll(source.loadProperties())
|
||||||
loaded.putAll(additional)
|
}
|
||||||
|
|
||||||
|
loadPropertiesSafely(File(mainPropertyFileName))
|
||||||
|
|
||||||
|
HostManager.knownTargetTemplates.forEach { targetTemplate ->
|
||||||
|
additionalPropertyFiles(targetTemplate).forEach {
|
||||||
|
loadPropertiesSafely(it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (onlyDefaultProfiles) {
|
if (onlyDefaultProfiles) {
|
||||||
loaded.keepOnlyDefaultProfiles()
|
result.keepOnlyDefaultProfiles()
|
||||||
}
|
}
|
||||||
loaded
|
|
||||||
|
result
|
||||||
}
|
}
|
||||||
|
|
||||||
val compilerVersion by lazy { properties["compilerVersion"]?.toString() }
|
val compilerVersion by lazy { properties["compilerVersion"]?.toString() }
|
||||||
|
|||||||
Reference in New Issue
Block a user