Omico
03/14/2023, 9:48 AMkotlin {
macosX64()
linuxX64()
mingwX64()
targets.withType<KotlinNativeTarget> {
compilations["main"].cinterops {
create("tdlib")
}
}
}
linkerOpts = \
-ltdactor \
-ltdapi \
-ltdclient \
-ltdcore \
-ltddb \
-ltdjson \
-ltdjson_private \
-ltdjson_static \
-ltdnet \
-ltdsqlite \
-ltdutils
linkerOpts.mingw = \
-I"D:\Git\Omico\telegram-bot\TDLib\tdlib\include" \
-L"D:\Git\Omico\telegram-bot\TDLib\tdlib\lib"
vbsteven
03/14/2023, 10:15 AMOmico
03/14/2023, 10:30 AMOmico
03/14/2023, 10:33 AMvbsteven
03/14/2023, 10:42 AM.def
file? if nothing shows up in the klib you are likely missing something in the headers
and headerFilter
properties from the def filevbsteven
03/14/2023, 10:48 AMheaders = "mylib.h"
and use headerFilter = "something/*"
to perform additional filtering.
Then cinterop will try to "walk" everything in headers
recursively using includes, and every type/function/constant it finds in files that match headerFilter
will show up in the klib.Omico
03/14/2023, 11:23 AMtdlib.def
file before.
And here is the full install path, I have no idea how to use headerFilter
.
├── bin
│ ├── libcrypto-3-x64.dll
│ ├── libssl-3-x64.dll
│ ├── tdjson.dll
│ └── zlib1.dll
├── include
│ └── td
│ ├── telegram
│ │ ├── Client.h
│ │ ├── Log.h
│ │ ├── td_api.h
│ │ ├── td_api.hpp
│ │ ├── td_json_client.h
│ │ ├── tdjson_export.h
│ │ └── td_log.h
│ └── tl
│ └── TlObject.h
└── lib
├── cmake
│ └── Td
│ ├── TdConfig.cmake
│ ├── TdConfigVersion.cmake
│ ├── TdTargets.cmake
│ └── TdTargets-release.cmake
├── pkgconfig
│ ├── tdactor.pc
│ ├── tdapi.pc
│ ├── tdclient.pc
│ ├── tdcore.pc
│ ├── tddb.pc
│ ├── tdjson.pc
│ ├── tdjson_private.pc
│ ├── tdjson_static.pc
│ ├── tdnet.pc
│ ├── tdsqlite.pc
│ └── tdutils.pc
├── tdactor.lib
├── tdapi.lib
├── tdclient.lib
├── tdcore.lib
├── tddb.lib
├── tdjson.lib
├── tdjson_private.lib
├── tdjson_static.lib
├── tdnet.lib
├── tdsqlite.lib
└── tdutils.lib
vbsteven
03/14/2023, 11:48 AMheaders = "td/telegram/Client.h" "td/tl/TlObject.h" // and probably other headerfiles if not everything is included by Client.h
vbsteven
03/14/2023, 11:49 AMheaderFilter = "td/telegram/*" "td/tl/*"
compilerOpts.mingw64 = I"D:\Git\Omico\telegram-bot\TDLib\tdlib\include"
vbsteven
03/14/2023, 11:49 AMOmico
03/14/2023, 12:10 PMtdlib.def
is:
headers = \
"td/telegram/Client.h" \
"td/tl/TlObject.h"
compilerOpts.mingw = \
-I"D:\Git\Omico\telegram-bot\TDLib\tdlib\include"
linkerOpts = \
-ltdactor \
-ltdapi \
-ltdclient \
-ltdcore \
-ltddb \
-ltdjson \
-ltdjson_private \
-ltdjson_static \
-ltdnet \
-ltdsqlite \
-ltdutils
linkerOpts.mingw = \
-L"D:\Git\Omico\telegram-bot\TDLib\tdlib\lib"
It shows an error
Exception in thread "main" java.lang.Error: C:\Users\Omico\AppData\Local\Temp\1632501521883779092.c:1:10: fatal error: 'td/telegram/Client.h' file not found
at org.jetbrains.kotlin.native.interop.indexer.UtilsKt.ensureNoCompileErrors(Utils.kt:274)
at org.jetbrains.kotlin.native.interop.indexer.IndexerKt.indexDeclarations(Indexer.kt:1196)
at org.jetbrains.kotlin.native.interop.indexer.IndexerKt.buildNativeIndexImpl(Indexer.kt:1185)
at org.jetbrains.kotlin.native.interop.indexer.IndexerKt.buildNativeIndexImpl(Indexer.kt:1181)
at org.jetbrains.kotlin.native.interop.gen.jvm.DefaultPlugin.buildNativeIndex(Plugins.kt:33)
at org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.processCLib(main.kt:294)
at org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.processCLibSafe(main.kt:219)
at org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.interop(main.kt:80)
at org.jetbrains.kotlin.cli.utilities.InteropCompilerKt.invokeInterop(InteropCompiler.kt:45)
at org.jetbrains.kotlin.cli.utilities.MainKt.mainImpl(main.kt:40)
at org.jetbrains.kotlin.cli.utilities.MainKt.main(main.kt:62)
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':core:cinteropTdlibLinuxX64'.
> Process 'command 'C:\Program Files\Eclipse Adoptium\jdk-19.0.2.7-hotspot\bin\java.exe'' finished with non-zero exit value 1
vbsteven
03/14/2023, 12:12 PM-v
to the compilerOpts to make it print out the directories it is looking in. (but I'm not sure if it is exactly -v
from memory)msink
03/14/2023, 12:35 PMOmico
03/14/2023, 1:15 PMcompilerOpts.mingw
cannot be recognized correctly.
Current full tdlib.def
is:
language = C++
headers = \
"td/telegram/Client.h" \
"td/tl/TlObject.h"
headerFilter = \
"td/telegram/*" \
"td/tl/*"
compilerOpts = \
-v \
-I"D:\Git\Omico\telegram-bot\TDLib\tdlib\include"
linkerOpts = \
-L"D:\Git\Omico\telegram-bot\TDLib\tdlib\lib" \
-ltdactor \
-ltdapi \
-ltdclient \
-ltdcore \
-ltddb \
-ltdjson \
-ltdjson_private \
-ltdjson_static \
-ltdnet \
-ltdsqlite \
-ltdutils
@msink Yes, it is C++ lib. I have added language = C++
to avoid error output, but still, nothing generated. Seem there is nothing we can do now.
Thanks for helping!Landry Norris
03/14/2023, 1:16 PMLandry Norris
03/14/2023, 1:18 PMLandry Norris
03/14/2023, 1:20 PMOmico
03/14/2023, 1:21 PMLandry Norris
03/14/2023, 1:23 PM