[CMake] CMake and SWIG...

Caron, Michael C. (US SSA) michael.caron at baesystems.com
Mon Mar 22 12:12:14 EDT 2010


Alright so I've got some very basic skeleton stuff put together using CMake and SWIG.  I followed the Python example and poked and prodded at it to make a Java version of the same thing.  Then added my stuff to it.  So I've got:

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

FIND_PACKAGE(Java REQUIRED)
INCLUDE_DIRECTORIES(${JAVA_INCLUDE_PATH})

INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})

SET(CMAKE_SWIG_FLAGS "")

SET(SWIG_SOURCES
  <BUNCH OF .H FILES WITH EMBEDDED SWIG HEADER INFO>
)

SET_SOURCE_FILES_PROPERTIES(${SWIG_SOURCES} PROPERTIES CPLUSPLUS ON)
SET_SOURCE_FILES_PROPERTIES(${SWIG_SOURCES} PROPERTIES SWIG_FLAGS "-includeall")
SWIG_ADD_MODULE(<MYWRAPPED_LIB_DLL> Java ${SWIG_SOURCES})
SWIG_LINK_LIBRARIES(<MYWRAPPED_LIB_DLL> <LIB_TO_BE_WRAPPED>)

Each of the .h files has a special header of this form embedded in them:

//variousandsundry.h - Does various and sundry things
#ifdef SWIG
%module <MYWRAPPED_LIB_DLL>
%{
#include "variousandsundry.h"
        %}
#endif //SWIG

Void foo();
Int bat();

I sort of expected to see various *.java files created (like variousandsundry.java) and I expected to see a MYWRAPPED_LIB_DLL.dll and a MYWRAPPED_LIB_DLL.jar.  All I can easily find is the MYWRAPPED_LIB_DLL.dll.  Am I missing something or am I setting my expectations too high.

Basically I want to create a java interface to a c++ lib using SWIG as part of my CMake build process.  This library has been successfully created before using SWIG so I'm sure it can be done.  It's just a matter of figuring out how  integrate it with the CMake process.

Michael Caron

Nothing is impossible for the man who doesn't have to do it himself.
-A. H. Weiler
Ops Analysis (BAE Internal) wiki site: http://bluas0752/display/EWOA/Home



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100322/615b65a6/attachment.htm>


More information about the CMake mailing list