Создание привязок SWIG с помощью CMake

Как мне создать автоматические привязки для проекта C, созданного с использованием CMake?

Я хочу автоматически создавать привязки для Python, Java, .NET, PHP, Perl, TCL, Ruby и Octave.


person joemoe    schedule 30.09.2009    source источник
comment
Этот вопрос SO в некоторой степени связан с stackoverflow.com / questions / 1515374 /   -  person slm    schedule 19.11.2011


Ответы (1)


Вы можете найти пример здесь.

Фрагмент:

Следующий пример - это входной файл CMake для создания оболочки Python для интерфейсного файла SWIG, example.i:

# This is a CMake example for Python

FIND_PACKAGE(SWIG REQUIRED)
INCLUDE(${SWIG_USE_FILE})

FIND_PACKAGE(PythonLibs)
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})

INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})

SET(CMAKE_SWIG_FLAGS "")

SET_SOURCE_FILES_PROPERTIES(example.i PROPERTIES CPLUSPLUS ON)
SET_SOURCE_FILES_PROPERTIES(example.i PROPERTIES SWIG_FLAGS "-includeall")
SWIG_ADD_MODULE(example python example.i example.cxx)
SWIG_LINK_LIBRARIES(example ${PYTHON_LIBRARIES})
person Tristram Gräbener    schedule 03.11.2009
comment
Начиная с с CMake 3.8 это SWIG_ADD_LIBRARY, а не SWIG_ADD_MODULE. Документация CMake, вероятно, лучше, чем документация SWIG. - person davidvandebunte; 17.07.2018