kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/KotlinDesktopToolkit.kt [8:36]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - public object KotlinDesktopToolkit { private val isInitialized: AtomicBoolean = AtomicBoolean(false) public fun init( libraryFolderPath: Path = Path.of(requiredProperty("kdt.library.folder.path")), logFilePath: Path = Path.of(requiredProperty("kdt.native.log.path")), useDebugBuild: Boolean = System.getProperty("kdt.debug")?.toBooleanStrictOrNull() ?: false, consoleLogLevel: LogLevel = LogLevel.Info, fileLogLevel: LogLevel = LogLevel.Info, appenderInterface: AppenderInterface = DefaultConsoleAppender.fromLevel(consoleLogLevel), ) { if (isInitialized.compareAndSet(false, true)) { // todo check that native library version is consistent with Kotlin code val libraryPath = libraryFolderPath.resolve(libraryName(useDebugBuild = useDebugBuild)) load(libraryPath) initLogger( logFile = logFilePath, consoleLogLevel = consoleLogLevel, fileLogLevel = fileLogLevel, appender = appenderInterface, ) Logger.info { "KotlinDesktopToolkit is initialized" } } else { Logger.warn { "Init was called for already initialized library" } } } private fun requiredProperty(propertyName: String): String { return System.getProperty(propertyName) ?: throw Error("Please specify $propertyName or pass args explicitly to library init") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/win32/KotlinDesktopToolkit.kt [7:35]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - public object KotlinDesktopToolkit { private val isInitialized: AtomicBoolean = AtomicBoolean(false) public fun init( libraryFolderPath: Path = Path.of(requiredProperty("kdt.library.folder.path")), logFilePath: Path = Path.of(requiredProperty("kdt.native.log.path")), useDebugBuild: Boolean = System.getProperty("kdt.debug")?.toBooleanStrictOrNull() ?: false, consoleLogLevel: LogLevel = LogLevel.Info, fileLogLevel: LogLevel = LogLevel.Info, appenderInterface: AppenderInterface = DefaultConsoleAppender.fromLevel(consoleLogLevel), ) { if (isInitialized.compareAndSet(false, true)) { // todo check that native library version is consistent with Kotlin code val libraryPath = libraryFolderPath.resolve(libraryName(useDebugBuild = useDebugBuild)) load(libraryPath) initLogger( logFile = logFilePath, consoleLogLevel = consoleLogLevel, fileLogLevel = fileLogLevel, appender = appenderInterface, ) Logger.info { "KotlinDesktopToolkit is initialized" } } else { Logger.warn { "Init was called for already initialized library" } } } private fun requiredProperty(propertyName: String): String { return System.getProperty(propertyName) ?: throw Error("Please specify $propertyName or pass args explicitly to library init") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -