LINUX.ORG.RU

История изменений

Исправление DawnCaster, (текущая версия) :

А не подскажите, можно-ли SWIG просто натравить на пачку хедеров целевой библиотеки написанной на C, что-бы он как-то сам сгенерировал хоть какие дефолтные обертки для нужного мне языка.

Поясню что я имею ввиду: у меня есть проект на C#\Mono, в который я пытаюсь интегрировать внешнюю нативную библиотеку через интероп. Внешняя библиотека, во-первых, не моя разработка, во-вторых имеет достаточно нестабильный и часто меняющийся API, и в-третьих, общее количество экспортируемых функций очень значительное.

Сейчас, я решаю эту задачу с помощью несколько кастомизированного проекта ClangSharp - его я могу просто натравить на пачку хедеров, и он мне сам сгенерирует маппинги для всех функций и структур описанных в них. Что очень хорошо автоматизируется и не требует большой ручной работы при обновлениях API нативной библиотеки. Хотя сам ClangSharp весьма глючная поделка, от которой я в перспективе хотел-бы избавиться.

Для работы этого самого SWIG'а - мне потребуется каждый раз писать ".i" файл с описанием экспортируемых из библиотеки функций\структур (а их там дохрена) ? Или как-то можно опустить или автоматизировать этот этап ?

Исправление DawnCaster, :

А не подскажите, можно-ли SWIG просто натравить на пачку хедеров целевой библиотеки написанной на C, что-бы он как-то сам сгенерировал хоть какие дефолтные обертки для нужного мне языка.

Поясню что я имею ввиду: у меня есть проект на C#\Mono, в который я пытаюсь интегрировать внешнюю нативную библиотеку через интероп. Внешняя библиотека, во-первых, не моя разработка, во-вторых имеет достаточно нестабильный и часто меняющийся API, и в-третьих, общее количество экспортируемых функций очень значительное.

Сейчас, я решаю эту задачу с помощью несколько кастомизированного проекта ClangSharp - его я могу просто натравить на пачку хедеров, и он мне сам сгенерирует маппинги для всех функций и структур описанных в них. Что очень хорошо автоматизируется и не требует большой ручной работы при обновлениях API нативной библиотеки. Хотя сам ClangSharp весьма глючная поделка, от которой я в перспективе хоте-бы избавиться.

Для работы этого самого SWIG'а - мне потребуется каждый раз писать ".i" файл с описанием экспортируемых из библиотеки функций\структур (а их там дохрена) ? Или как-то можно опустить или автоматизировать этот этап ?

Исходная версия DawnCaster, :

А не подскажите, можно-ли SWIG просто натравить на пачку хедеров целевой библиотеки написанной на C, что-бы он как-то сам сгенерировал хоть какие дефолтные обертки для нужного мне языка.

Поясню что я имею ввиду: у меня есть проект на C#\Mono, в которую я пытаюсь интегрировать внешнюю нативную библиотеку через интероп. Внешняя библиотека, во-первых, не моя разработка, во-вторых имеет достаточно нестабильный и часто меняющийся API, и в-третьих, общее количество экспортируемых функций очень значительное.

Сейчас, я решаю эту задачу с помощью несколько кастомизированного проекта ClangSharp - его я могу просто натравить на пачку хедеров, и он мне сам сгенерирует маппинги для всех функций и структур описанных в них. Что очень хорошо автоматизируется и не требует большой ручной работы при обновлениях API нативной библиотеки. Хотя сам ClangSharp весьма глючная поделка, от которой я в перспективе хоте-бы избавиться.

Для работы этого самого SWIG'а - мне потребуется каждый раз писать ".i" файл с описанием экспортируемых из библиотеки функций\структур (а их там дохрена) ? Или как-то можно опустить или автоматизировать этот этап ?