Skip to content
This repository has been archived by the owner on Aug 10, 2021. It is now read-only.

Improve interop user experience and docs #342

Merged
merged 1 commit into from
Mar 15, 2017
Merged

Improve interop user experience and docs #342

merged 1 commit into from
Mar 15, 2017

Conversation

olonho
Copy link
Contributor

@olonho olonho commented Mar 14, 2017

No description provided.

@@ -162,6 +166,12 @@ private fun processLib(konanHome: String,
val platform = KotlinPlatform.values().single { it.name.equals(platformName, ignoreCase = true) }

val defFile = args["-def"]?.single()?.let { File(it) }

if (defFile == null) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Предлагаешь убрать возможность интеропиться без def-файла?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А он всё равно ниже !! так что NPE падает. Запусти interop без аргументов.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

./dist/bin/interop -pkg:qqq -h:math.h работает без .def файла.
Просто нужно аккуратнее об этом сказать пользователю

@SvyatoslavScherbina
Copy link
Collaborator

Было бы здорово уметь передавать компилятору опции линкера из def-файла.

@olonho
Copy link
Contributor Author

olonho commented Mar 15, 2017

В смысле компилятору линкера? А зачем?
Линкеру и компилятору вроде и так их опции передаются.
val linkerOpts =
config.getSpaceSeparated("linkerOpts").toTypedArray() +
defaultOpts + additionalLinkerOpts

@olonho olonho force-pushed the fix_interop branch 2 times, most recently from 6cb09e5 to d430a03 Compare March 15, 2017 14:10
INTEROP.md Outdated
## Creating bindings for a new library ##

To create bindings for a new library, start by creating `.def` file.
Structurally it's simple property file, looking like this:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a

-copt:<c compiler flags> specifies flags passed to clang
-lopt:<linker flags> specifies flags passed to linker
-verbose increases verbosity
-shims adds generation of shims tracing native library calls
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

про -pkg:, -h: не хотим рассказать?

@olonho olonho changed the title Inprove interop user experience and docs Improve interop user experience and docs Mar 15, 2017
@olonho olonho merged commit f3794aa into master Mar 15, 2017
@olonho olonho deleted the fix_interop branch March 15, 2017 14:25
@SvyatoslavScherbina
Copy link
Collaborator

Линкеру и компилятору вроде и так их опции передаются.

Так это для Kotlin JVM.
А нужно ещё передавать эти же опции линкеру, который запускается из нашего компилятора. Чтобы нативная библиотека реально описывалась def-файлом, и не нужно было ещё какие-то опции линковки передавать компилятору.

@olonho
Copy link
Contributor Author

olonho commented Mar 16, 2017

Наверное будет понятнее, если ты это при случае сделаешь (я не уверен, что хорошо понимаю суть твоего предложения).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants