将SWIG与构建系统一起使用 [英] Using SWIG with a build system

查看:461
本文介绍了将SWIG与构建系统一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

任何人都有使用SWIG(界面生成器)的经验吗?



我有一个C项目,我希望将其暴露给一堆其他语言/框架,如Python,Java,.NET,Perl,PHP,Ruby。 / p>

我想与我的构建系统(基于CMake)集成,但任何完成此任务的方法都可以。

解决方案

CMake带有一个用于构建SWIG包装器的模块。



你的CMakeLists.txt应该包括这样的东西:

  FIND_PACKAGE(SWIG REQUIRED)
包括:($ {SWIG_USE_FILE})

FIND_PACKAGE( PythonLibs)
INCLUDE_DIRECTORIES($ {PYTHON_INCLUDE_PATH})
INCLUDE_DIRECTORIES($ {CMAKE_CURRENT_SOURCE_DIR})

SET(CMAKE_SWIG_FLAGS )

SWIG_ADD_MODULE(例如蟒example.i example.cxx)
SWIG_LINK_LIBRARIES(例如$ {PYTHON_LIBRARIES})

请参阅< a href =http://www.itk.org/Wiki/CMake_FAQ#How_do_I_use_CMake_to_generate_SWIG_wrapper_libraries.3F =nofollow n oreferrer> http://www.itk.org/Wiki/CMake_FAQ#How_do_I_use_CMake_to_generate_SWIG_wrapper_libraries.3F 了解细节


(上面的例子中,从那里...截取)

Anyone have experience with using SWIG (the interface generator)?

I have a C project which I would like to expose to a bunch of other languages/frameworks, like Python, Java, .NET, Perl, PHP, Ruby.

I would like to integrate with my build system (which is CMake-based), but any method of accomplishing this will do.

解决方案

CMake comes with a module for building SWIG wrappers.

Your CMakeLists.txt should include something like this:

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 "")

SWIG_ADD_MODULE(example python example.i example.cxx)
SWIG_LINK_LIBRARIES(example ${PYTHON_LIBRARIES})

See http://www.itk.org/Wiki/CMake_FAQ#How_do_I_use_CMake_to_generate_SWIG_wrapper_libraries.3F for more details (the above example is taken from there...)

这篇关于将SWIG与构建系统一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆