Вот структура проекта:
.
├── build.gradle
├── settings.gradle
├── ccode
| ├── build.gradle
| └── src
| └── ccode
| ├── c
| | └── ccode.c
| └── headers
| └── ccode.h
└── ktapp
├── build.gradle
└── src
├── nativeInterop
| └── cinterop
| └── ccode.def
└── nativeMain
└── kotlin
└── main.kt
Эта ссылка была использована для сборки библиотеки из cкод с gradle.
По этой ссылке была добавлена ссылка C и kotlin с cinterop
. Вот содержимое настроек gradle:
Вот содержимое как build.gradle
, так и settings.gradle
в корне:
./build.gradle
subprojects {
version = '1.0'
}
./settings.gradle
rootProject.name = 'app'
include 'ccode', 'ktapp'
Проблема в том, что ktapp
строится до того, как ccode
включает в себя заказ. Но ktapp
требует ccode
статической / совместно используемой сборки библиотеки.
Вот содержимое ktapp
подпроекта ./ktapp/build.gradle
:
plugins {
id 'org.jetbrains.kotlin.multiplatform' version '1.3.21'
}
kotlin {
linuxX64("native") {
binaries {
executable()
}
}
}
dependencies {
compile project(':ccode')
}
Вот содержимое ccode
подпроекта ./ccode/build.gradle
:
apply plugin: 'c'
model {
components {
ccode(NativeLibrarySpec)
}
}
Попытка добавить следующий блок в конце ./ktapp/build.gradle
file:
...
dependencies {
compile project(':ccode')
}
но gradle выдает ошибку:
Не удалось найти метод compile () для аргументов [project ': ccode'] для объекта типа org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
Есть идеи?