Открыть боковую панель
Aurora OS
Kotlin Multiplatform
QtBindings
Коммиты
3fa86d24
Коммит
3fa86d24
создал
Мар 25, 2025
по автору
Ilya Pankratov
Просмотр файлов
Create generator for Qt runtime
владелец
2705ec3b
Изменения
1
Скрыть пробелы
Построчно
Рядом
qtbindings-ksp/src/main/kotlin/ru/aurora/kmp/qtbindings/ksp/gen/QtRuntimeGenerator.kt
0 → 100644
Просмотр файла @
3fa86d24
/**
* SPDX-FileCopyrightText: Copyright 2025 Open Mobile Platform LLC <community@omp.ru>
* SPDX-License-Identifier: BSD-3-Clause
*/
package
ru.aurora.kmp.qtbindings.ksp.gen
internal
data class
CppFile
(
val
packageName
:
String
,
val
fileName
:
String
,
val
fileExtension
:
String
,
val
fileContent
:
String
?,
)
internal
class
QtRuntimeGenerator
{
private
val
packageName
=
"ru.aurora.kmp.qtbindings"
private
val
fileDirectory
=
"/${packageName.replace("
.
", "
/
")}"
private
val
headers
=
listOf
(
"CallbackContext.hpp"
,
"CoroutineException.hpp"
,
"CoroutineLauncher.hpp"
,
"CoroutineOperation.hpp"
,
"cruntime.h"
)
private
val
sources
=
listOf
(
"CallbackContext.cpp"
,
"CoroutineException.cpp"
,
"CoroutineLauncher.cpp"
,
)
fun
generate
():
List
<
CppFile
>
{
return
(
headers
+
sources
).
map
{
val
filePath
=
fileDirectory
.
plus
(
"/${it}"
)
val
fileNameWithoutExtension
=
it
.
getName
()
val
fileExtension
=
it
.
getExtension
()
val
resource
=
javaClass
.
getResourceAsStream
(
filePath
)
val
content
=
resource
?.
bufferedReader
()
?.
use
{
reader
->
reader
.
readText
()
}
CppFile
(
packageName
,
fileNameWithoutExtension
,
fileExtension
,
content
)
}
}
}
private
fun
String
.
getExtension
():
String
{
return
this
.
substringAfterLast
(
'.'
)
}
private
fun
String
.
getName
():
String
{
return
this
.
substringBeforeLast
(
'.'
)
}
Редактирование
Предварительный просмотр
Поддерживает Markdown
0%
Попробовать снова
или
прикрепить новый файл
.
Отмена
You are about to add
0
people
to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Отмена
Пожалуйста,
зарегистрируйтесь
или
войдите
чтобы прокомментировать