Поддержка целевых платформ Kotlin/Native
Компилятор Kotlin/Native поддерживает большое количество различных целевых платформ, хотя сложно обеспечить одинаковый уровень поддержки для всех. В этом документе описывается, какие целевые платформы поддерживает Kotlin/Native, и они разбиты на несколько уровней в зависимости от того, насколько хорошо компилятор их поддерживает.
Обратите внимание на следующие термины, используемые в таблицах уровней:
Имя целевой платформы Gradle — это пресет целевой платформы, который используется в плагине Kotlin Multiplatform Gradle для включения целевой платформы.
Тройка целевой платформы — это имя целевой платформы в соответствии со структурой
<architecture>-<vendor>-<system>-<abi>, которая обычно используется компиляторами.-
Запуск тестов указывает на готовую к использованию поддержку запуска тестов в Gradle и IDE.
Это доступно только на собственном хосте для конкретной целевой платформы. Например, вы можете запустить тесты
macosX64иiosX64только на хосте macOS x86-64.
Уровень 1
Целевая платформа регулярно тестируется в CI на возможность компиляции и запуска.
Мы делаем все возможное, чтобы обеспечить исходную и бинарную совместимость между выпусками компилятора.
Имя целевой платформы Gradle |
Тройка целевой платформы |
Запуск тестов |
Описание |
|---|---|---|---|
|
|
✅ |
Linux на платформах x86_64 |
Только хосты Apple macOS |
|||
|
|
✅ |
Apple macOS на платформах x86_64 |
|
|
✅ |
Apple macOS на платформах Apple Silicon |
|
|
✅ |
Apple iOS simulator на платформах Apple Silicon |
|
|
✅ |
Apple iOS simulator на платформах x86-64 |
Уровень 2
Целевая платформа регулярно тестируется в CI на возможность компиляции, но может не тестироваться автоматически на возможность запуска.
Мы делаем все возможное, чтобы обеспечить исходную и бинарную совместимость между выпусками компилятора.
Имя целевой платформы Gradle |
Тройка целевой платформы |
Запуск тестов |
Описание |
|---|---|---|---|
|
|
Linux на платформах ARM64 |
|
Только хосты Apple macOS |
|||
|
|
✅ |
Apple watchOS simulator на платформах Apple Silicon |
|
|
✅ |
Apple watchOS 64-битный симулятор на платформах x86_64 |
|
|
Apple watchOS на платформах ARM32 |
|
|
|
Apple watchOS на платформах ARM64 с ILP32 |
|
|
|
✅ |
Apple tvOS simulator на платформах Apple Silicon |
|
|
✅ |
Apple tvOS simulator на платформах x86_64 |
|
|
Apple tvOS на платформах ARM64 |
|
|
|
Apple iOS и iPadOS на платформах ARM64 |
Уровень 3
Не гарантируется, что целевая платформа будет тестироваться в CI.
Мы не можем гарантировать исходную и бинарную совместимость между различными выпусками компилятора, хотя такие изменения для этих целевых платформ довольно редки.
Имя целевой платформы Gradle |
Тройка целевой платформы |
Запуск тестов |
Описание |
|---|---|---|---|
|
|
Android NDK на платформах ARM32 |
|
|
|
Android NDK на платформах ARM64 |
|
|
|
Android NDK на платформах x86 |
|
|
|
Android NDK на платформах x86_64 |
|
|
|
✅ |
64-битный MinGW на Windows 7 и более поздних версиях |
Только хосты Apple macOS |
|||
|
|
Apple watchOS на платформах ARM64 |
Устаревшие целевые платформы
Следующие целевые платформы устарели начиная с Kotlin 1.8.20 и будут удалены в 1.9.20:
iosArm32watchosX86wasm32mingwX86linuxArm32HfplinuxMips32linuxMipsel32
Для авторов библиотек
Мы не рекомендуем авторам библиотек тестировать больше целей или предоставлять более строгие гарантии, чем делает компилятор Kotlin/Native. Вы можете использовать следующий подход при рассмотрении поддержки целевых платформ:
Поддерживайте все цели 1, 2 и 3 уровней.
Регулярно тестируйте цели 1 и 2 уровней, которые поддерживают запуск тестов "из коробки".
Команда Kotlin использует этот подход в официальных библиотеках Kotlin, например, kotlinx.coroutines и kotlinx.serialization.
© 2010–2023 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/native-target-support.html