Commit Graph

191 Commits

Author SHA1 Message Date
Svyatoslav Scherbina fd35ccbf2e Represent void* as CValuesRef<*>? 2017-09-26 09:50:42 +03:00
Svyatoslav Scherbina 17ccd3ee02 Minorly rework CValuesRef to make it more universal when subclassing
Allow `getPointer` to register custom disposers with `defer`
2017-09-26 09:50:42 +03:00
Svyatoslav Scherbina a3721f857c Optimize Arena and memScoped
Also do minor refactoring.
2017-09-26 09:50:42 +03:00
Svyatoslav Scherbina 2217be4003 Add defer support to memScope 2017-09-26 09:50:42 +03:00
Svyatoslav Scherbina 9609a10e09 Improve StableObjPtr
* Rename to StableRef
* Make it more typed
* Provide more idiomatic and convenient methods
* Share more code between JVM and Native
2017-09-26 09:50:42 +03:00
Svyatoslav Scherbina d8ed1f4414 Hide nativeMemUtils and pointerSize 2017-09-26 09:50:42 +03:00
Svyatoslav Scherbina 79455c5161 Support interop modularity
* Add list of included headers into the manifest
* Implement importing "foreign" type declarations
* Implement forward declarations more natively in the compiler
* Represent Objective-C categories as Kotlin extension methods and
  properties

Also:
* Do some refactoring in stub generation
* Call bridges directly in stubs for Objective-C properties
2017-09-14 16:47:26 +03:00
Alexander Gorshenev 6187726ee7 Added libraryPaths def file property. 2017-09-13 12:23:49 +03:00
Alexander Gorshenev 820a009163 Pass the list of static libraries from the cinterop tool to the compiler. 2017-09-13 12:23:49 +03:00
Alexander Gorshenev eb0e584cb4 Allow linking static libraries from klibs.
Resolve static libraries in cinterop tool.
2017-09-13 12:23:49 +03:00
Svyatoslav Scherbina 4e285a5ef4 Implement equals, hashCode and toString for Objective-C objects 2017-09-06 23:57:19 +03:00
Svyatoslav Scherbina 6b042a5510 Disable passing exceptions from Objective-C to Kotlin
since they can't be correctly handled yet.
2017-09-06 23:57:19 +03:00
Svyatoslav Scherbina 324f54ba1e Implement @ExportObjCClass 2017-09-06 23:57:19 +03:00
Svyatoslav Scherbina 07f26dc1df Rework Objective-C constructors and support 'initBy' intrinsic 2017-09-06 23:57:19 +03:00
Svyatoslav Scherbina 5a7e3e20b4 Support exposing Kotlin methods as Objective-C actions and outlets 2017-09-06 23:57:19 +03:00
Svyatoslav Scherbina 2f30c15b45 Workaround interop with iOS system frameworks 2017-09-06 23:57:19 +03:00
Nikolay Igotti be58d2ee34 Fix typedefs to unsupported types 2017-09-05 18:43:55 +03:00
Nikolay Igotti 43a975ad73 Ensure linker from sysroot is used (#834) 2017-09-05 15:35:23 +03:00
Igor Chevdar 19461d8143 Removed/cached some reflection calls 2017-08-31 15:34:37 +03:00
Igor Chevdar 2b00850164 Made NativePointed an abstract class instead of interface 2017-08-31 15:34:37 +03:00
Nikolay Igotti f74265126e Fix performance bug, review feedback on indexer changes (#818) 2017-08-29 16:12:44 +03:00
Nikolay Igotti 2aa077e542 Generate Windows platform headers 2017-08-29 14:07:26 +03:00
Nikolay Igotti 7d72beb27c Improve memory tracing, fix 32-bit platforms (#815) 2017-08-29 10:21:47 +03:00
Nikolay Igotti 87a4fa9380 Platform libs definitions for Android, small interop tweaks. (#804) 2017-08-23 16:47:19 +03:00
Ilya Matveev 60ed6f6871 dependencies: Move dependency downloader into shared project 2017-08-23 19:42:06 +07:00
Nikolay Igotti 87f2bed5c8 Move Kotlin version to 1.1.4, fix some warnings. (#802) 2017-08-22 14:50:05 +03:00
Svyatoslav Scherbina 99dd7227dc Support Boolean in interop varargs and function pointers invocation 2017-08-18 17:45:41 +03:00
Svyatoslav Scherbina 5586d29764 Add basic support for calling C function pointers
Fix #739
2017-08-18 17:45:41 +03:00
Vasily Levchenko e81b1388d5 [cinterop][objC][debug] warkarond foe fail of debug build 2017-08-17 14:00:18 +03:00
Svyatoslav Scherbina 5c3e8d63d4 Support bit fields in interop
Fix #728
2017-08-16 15:03:58 +03:00
Svyatoslav Scherbina ce27695290 Support anonymous struct and union fields in interop
Fix #729
2017-08-16 15:03:58 +03:00
Svyatoslav Scherbina c81ceed7c6 Support builtin C _Bool type in interop
Fix #756
2017-08-16 15:03:58 +03:00
Svyatoslav Scherbina d3185e3e19 Implement very basic Objective-C interop
Also refactor StubGenerator
2017-08-16 10:04:23 +03:00
Svyatoslav Scherbina a38835cb46 Extend libclang API 2017-08-16 10:04:23 +03:00
Svyatoslav Scherbina 8bd0bb63c9 Remove obsolete workarounds for *va_list* in interop
Fix #740
2017-08-16 10:04:23 +03:00
Svyatoslav Scherbina 0f20feb544 Fix name clashes between struct and typedef in interop 2017-08-16 10:04:23 +03:00
Svyatoslav Scherbina cf8fea5711 Improve interop enum generation
Represent equal constants as the main one and its aliases.
2017-08-16 10:04:23 +03:00
Robert Hencke 72ca603d71 Reduce boilerplate for applying kotlin-gradle-plugin. 2017-08-07 17:25:52 +07:00
Nikolay Igotti 06e31939dd WebAssembly effort (#721) 2017-07-14 16:44:46 +03:00
Alexander Gorshenev 55c4966203 Moved clang flags out of the root build.gardle.
Collected clang args in ClangArgs.kt
Switched dependencies/build.gradle to KonanTarget.
Introduced KonanProperties to take care of target specific properties.
2017-07-12 18:31:09 +03:00
Alexander Gorshenev 5effdcb1d2 Pass linkerOpts from .def to klib manifest. 2017-07-04 17:58:30 +03:00
Nikolay Igotti 1ad50bc33f Workers draft (#655) 2017-06-21 11:26:09 +03:00
Nikolay Igotti 1b56b8912b Fix size for wcstr 2017-06-07 14:27:56 +03:00
Nikolay Igotti 2d6d4b15e6 Support for wchar, minor opts in interop runtime (#641) 2017-06-07 14:23:35 +03:00
Nikolay Igotti dd81d529ee Support for Android ARM64 on Mac (#627) 2017-06-02 15:05:15 +03:00
Svyatoslav Scherbina d6b8b4fb0f Add basic support for Windows with mingw-w64 2017-05-29 19:13:55 +03:00
Svyatoslav Scherbina d7adbfd221 Reconfigure interop with LLVM
Use more strict linking.
Also remove unused components.
2017-05-29 19:13:55 +03:00
Svyatoslav Scherbina 23f1df015d Update libclang interop stubs
Apply filters to exclude platform-dependent declarations.
2017-05-29 19:13:55 +03:00
Nikolay Igotti ff8bce79d5 Uniform compiler/linker options treatment (#614) 2017-05-29 15:37:15 +03:00
Nikolay Igotti 42197a2bec Android NDK support and build system refactoring (#585) 2017-05-24 00:20:19 +03:00