Создайте библиотеку C# с исходными кодами, созданными SWIG, с помощью CMake.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Создайте библиотеку C# с исходными кодами, созданными SWIG, с помощью CMake.

Сообщение Anonymous »

У меня есть проект C++, в котором я использую SWIG для создания привязок C#. Затем я хочу использовать CMake для создания библиотеки C# с этими сгенерированными файлами. Для этого я использую модуль UseSWIG.

Код: Выделить всё

swig_add_library(net_wrapper TYPE SHARED LANGUAGE CSharp SOURCES ${NET_SWIG_SOURCES})

get_property(swig_support_files_folder TARGET AC_analysiscore_net_wrapper PROPERTY SWIG_SUPPORT_FILES_DIRECTORY)

file(GLOB support_files
"${swig_support_files_folder}/*.cs"
)

add_library(net SHARED ${swig_support_files})
Поскольку GLOB запускается во время настройки, это не работает в новой сборке.
Я пробовал использовать SWIG_SUPPORT_FILES, но при этом пропускается множество файлов .cs (как описано здесь).
Я вижу в этом вопросе, что единственные предлагаемые обходные пути включают либо создание файлов во время настройки, либо, по крайней мере, возможность определить, какие файлы будут созданы во время настройки. время: и то, и другое я хотел бы избежать.
Я хотел бы использовать CMAKE_CONFIGURE_DEPENDS, чтобы заставить CMake повторно запустить конфигурацию во время сборки, если и только если сгенерированные файлы изменились. Для этого я добавил:
.

Код: Выделить всё

get_property(swig_support_files TARGET AC_analysiscore_net_wrapper PROPERTY SWIG_SUPPORT_FILES)
set_property(GLOBAL APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${swig_support_files})
С помощью сообщения я вижу, что для этого свойства действительно установлено (подмножество) сгенерированных исходных файлов, но новая сборка по-прежнему не может повторно запустить конфигурацию, и сборка завершается сбоем, потому что она не добавила сгенерированные исходные файлы в цель.
Есть ли способ заставить CMAKE_CONFIGURE_DEPENDS делать то, что я хочу, или правильный ли связанный вопрос, о котором должны быть известны исходные файлы первая конфигурация.

Подробнее здесь: https://stackoverflow.com/questions/799 ... sing-cmake
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»