111 Commits

Author SHA1 Message Date
Sergej Jaskiewicz 1539d7ef1a [klib] Bring package names in sync with the directory layout
Basically, some package names were Native-specific, whilst the packages
themselves were not Native-specific at all. This was already reflected
in the directory layout, but not in the package names.
This is fixed here.

NFC, just an automatic rename of packages with fixes of imports.
2022-12-01 21:46:43 +00:00
Vladimir Sukharev b883dc5434 [KT-39120] Add "-fmodules" argument support to Cinterop
Merge-request: KT-MR-6921
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2022-11-30 08:46:40 +00:00
Pavel Punegov d2c58cdd27 [K/N][build] Dependencies fixes: trove4j and kotlin-compiler
* Depend on kotlin-compiler project instead of its runtimeElements only
* trove4j fixes: add as a dependency and use common version
* Strip dependencies in different projects: remove unnecessary
2022-10-21 10:33:40 +00:00
Martin Petrov 6c0b4bcfd4 [KT-54284][Native] Produce deterministic klibs from cinterop. (#4979)
Pass in temp-file C sources to clang via stdin instead of by name.
This prevents absolute paths of temp files from being encoded in bitcode.
2022-10-21 12:16:34 +02:00
Mikhail Glukhikh a22d7aea25 Native: don't set allWarningsAsErrors = true in K2 mode
Related to KT-54123
2022-09-29 15:32:01 +00:00
Alexander Udalov c410c5d3cd Do not reset freeCompilerArgs for some kotlin-native modules
Otherwise common compiler arguments which are set for all modules in the
project in `buildSrc/src/main/kotlin/common-configuration.gradle.kts`
are not applied. The most interesting of those are `-Xuse-k2` (if K2 is
enabled) and `-Xjvm-default=all`.
2022-09-27 11:04:31 +00:00
Sergey Bogolepov dde1dcc760 [K/N] Fix defFileDependencies 2022-09-17 07:51:35 +03:00
Sergey Bogolepov 3f406044a6 [K/N] Tests for DefFile.excludeFilter property 2022-09-16 19:22:38 +00:00
Sergey Bogolepov b4b27e9bc6 [K/N] KT-54001
Add a new DefFile.excludeFilter property that excludes headers
from interop library by given glob.

This change is required to properly support platform libs from Xcode 14
without breaking ABI.
2022-09-16 19:22:38 +00:00
Sergey Bogolepov a88ef04671 [K/N] Turn back red code.
For some reason build is failing during publication
with the previous change. Will deal with it later.
2022-09-16 13:25:41 +00:00
Sergey Bogolepov 6de5671db8 Revert "Revert "[K/N] Convert StubGenerator build script to Kotlin""
This reverts commit b53d6d0d7e.
2022-09-16 13:25:41 +00:00
Nikolay Krasko b53d6d0d7e Revert "[K/N] Convert StubGenerator build script to Kotlin"
This reverts commit ddc2eb79c3.
2022-09-16 11:25:18 +02:00
Sergey Bogolepov ddc2eb79c3 [K/N] Convert StubGenerator build script to Kotlin
Besides usual pros of kts, it simplifies potential reuse
of code from other build.gradle.kts (namely, Interop:Indexer).

Also, this commit fixes red code in IDE by adding proper dependencies.
2022-09-16 04:53:41 +00:00
Diego Gomez Olvera 9a430efbe7 [KT-52681] Remove unnecessary semicolon after Objective-C @end
Objective-c `@end` doesn't need a semicolon, however KMM exported header
file, for instance:
```
__attribute__((swift_name("KotlinIterator")))
@protocol MyProjectKotlinIterator
@required
- (BOOL)hasNext __attribute__((swift_name("hasNext()")));
- (id _Nullable)next __attribute__((swift_name("next()")));
@end;
```
This creates problems with some code checkers that will not expect it
there, so it seems best to remove it.
2022-06-10 15:46:27 +03:00
Sergey Bogolepov 5a0c3920a5 [K/N] Properly support watchosArm64 2022-04-27 14:46:35 +00:00
Svyatoslav Scherbina 149e596bef Native: support -Xoverride-konan-properties in generatePlatformLibraries 2022-01-26 12:43:41 +00:00
Igor Chevdar bd6ea71ead [K/N][gradle][interop] Refactored ToolConfig
Added possibility to create different strategies for loading libclang
2022-01-14 10:29:10 +05:00
Igor Chevdar 993816a400 [K/N][runtime][interop] Refactoring to run cinterop in daemon 2022-01-14 10:29:05 +05:00
Igor Chevdar 41e1fbe971 [K/N][gradle][interop] Arg to specify relative dir for libraryPath 2022-01-14 10:29:04 +05:00
Vyacheslav Gerasimov bc2f0936bd Build: Rename commonDep -> commonDependency 2021-12-16 21:48:19 +03:00
Sergey Bogolepov b0077dce88 [K/N] Speedup defFileDependencies by running it in parallel 2021-11-30 13:02:01 +00:00
Igor Chevdar 353f82f9e6 Revert "[K/N][runtime][interop] Refactoring to run cinterop in daemon"
This reverts commit 47858126da.
2021-11-26 14:05:59 +05:00
Igor Chevdar 4b53a8e3c7 Revert "[K/N][gradle][interop] Refactored ToolConfig"
This reverts commit d9c1b1f6f7.
2021-11-26 14:01:40 +05:00
Igor Chevdar d9c1b1f6f7 [K/N][gradle][interop] Refactored ToolConfig
Added possibility to create different strategies for loading libclang
2021-11-25 23:42:10 +05:00
Igor Chevdar 47858126da [K/N][runtime][interop] Refactoring to run cinterop in daemon 2021-11-25 23:42:09 +05:00
Nikolay Krasko af8faadca5 Update internal project junit dependency 4.12 -> 4.13.2 2021-11-24 19:35:31 +03:00
Svyatoslav Scherbina 6e0a152f39 Revert "[K/N] Replace SymbolName with GCUnsafeCall in interop"
This reverts commit ca9ec76c08.
2021-11-23 08:09:43 +00:00
Martin Petrov aedcfe78e1 [Native] Add -Xoverride-konan-properties to cinterop.
This aligns with the flag added to kotlinc in:
https://youtrack.jetbrains.com/issue/KT-40670

Hermetic builds would benefit from being able to override dependency paths or airplaneMode using this mechanism:

```
$ bin/cinterop -Xoverride-konan-properties "apple-llvm-20200714-macos-x64-essentials.default=/tmp/llvm;airplaneMode=true" -def baz.def
```
2021-11-18 13:18:14 +03:00
Pavel Punegov 76d9692c4d [K/N][build] Fix for Class.newInstance is deprecated in Java 2021-11-15 09:04:52 +00:00
Sergey Bogolepov 742c65a26b [K/N] Fix StubIr tests 2021-10-06 04:40:06 +00:00
Sergey Bogolepov 2f6a9519c0 [K/N] Don't check UniqId because it is an obsolete extension 2021-10-06 04:40:06 +00:00
Sergey Bogolepov ed4fa2c391 [K/N] Fix for KT-48807
Make NS_FORMAT_ARGUMENT(A) a no-op in cinterop because our
Clang doesn't support it for NSAttributedString.
2021-09-27 09:38:02 +00:00
Pavel Kunyavskiy ca9ec76c08 [K/N] Replace SymbolName with GCUnsafeCall in interop 2021-09-10 07:46:39 +00:00
Mikhail Glukhikh ffbd574a08 Use -opt-in instead of -Xopt-in in comments and scripts 2021-09-08 23:43:55 +03:00
Dmitriy Novozhilov ca9cbf7eb7 Fix warnings in K/Native code 2021-08-03 07:40:57 +00:00
Sergey Bogolepov a78fcd6b64 [K/N] Separate ClangArgs for jni and native
Since LLVM for Windows is now native instead on MinGW, we have to
compile code in a different environment in case of JNI. This commits
just separates ClangArgs into two subclasses without actual behavior
changes.
2021-08-03 05:42:05 +00:00
Alexander Gorshenev 9148094bbd Garbage collection capable wrappers for skia interop 2021-07-30 12:54:51 +03:00
Ilya Matveev dc8186cb83 [K/N][Interop] Fix throwing exceptions through bridges in opt mode
By default, C functions compiled to bitcode by clang have the
nounwind attribute. If such functions throws an exception, the
behaviour is undefined.

Our interop machinery can process foreign exceptions on call sites
(terminate or wrap them in Kotlin exceptions). But if the interop
bridges have the nounwind attribute, LLVM optimizations (particularly
inlining) may lead to the situation when a foreign exception is ignored by
our foreign exception handler.

This patch fixes the issue by compiling bridges with -fexceptions flag.
This flag makes clang to not set the nounwind attribute, so exceptions
can be thrown through C frames.
2021-07-02 11:51:06 +00:00
Svyatoslav Scherbina 2865d8bd45 Deprecate Obj-C 'alloc' and 'allocWithZone:' methods in Kotlin
Using these methods in Kotlin is usually a mistake.
2021-07-01 12:20:24 +00:00
Vladimir Ivanov 5a0f113e6d [cinterop] Fix type annotation for struct containing anonymous union … (#4289) 2021-05-18 14:34:56 +03:00
Sergey Bogolepov 13464cce68 [Native] Adapt Skia interop to ClangArgs refactoring. 2021-04-30 12:07:46 +00:00
Alexander Gorshenev 887032667d [Kotlin/Native][Interop] Skia interop plugin for cinterop 2021-04-29 21:43:26 +03:00
Vladimir Ivanov 5f582ad28a [Kotlin/Native][Interop] Provide pure c wrappers over cpp for skia interop 2021-04-29 21:43:25 +03:00
Sergey Bogolepov 790fea635d Avoid explicit native targets enumerations 2021-04-08 16:51:45 +03:00
Abduqodiri Qurbonzoda 983985bc68 [K/N] Migrate compiler, interop and others to new case conversion api 2021-04-08 03:22:05 +03:00
Ilya Gorbunov 833955e56d Migrate deprecations in Native compiler
Replacing deprecated Char.toInt() with Char.code and
Number.toChar() with Number.toInt().toChar(), where Number is not Int.

KT-23451
2021-04-07 18:30:21 +03:00
Alexander Udalov 5f7f4a4ac8 Improve API of annotation arguments in kotlinx-metadata
See changes in ChangeLog.md for more information
2021-04-01 22:34:53 +02:00
Vasily Levchenko 905c0c3dd3 [build] version of kotlin native stored in resouces 2021-02-26 12:51:51 +01:00
Vasily Levchenko 3867cf6ef5 [build] switch to kotlin-build-gradle-plugin:0.0.25 2021-02-24 11:07:14 +01:00
Vasily Levchenko 840c1e612c [build] joint (step 2)
- dist:
  - compiler
  - tools(cinterop,klib)
  - stdlib
  - cache
2021-02-24 11:07:13 +01:00