Extremely basic first go at SWIG bindings

Only Enums.h is wrapped so far and I haven't tested it
For now I will focus on Python but Java and C# will be useful too
This commit is contained in:
Matt Williams 2009-03-27 18:54:20 +00:00
parent fc7cf98347
commit 27b17cf348
3 changed files with 24 additions and 0 deletions

View File

@ -30,3 +30,5 @@ INCLUDE(CPack)
CPACK_ADD_COMPONENT(library DISPLAY_NAME "Library" DESCRIPTION "The runtime libraries" REQUIRED)
CPACK_ADD_COMPONENT(development DISPLAY_NAME "Development" DESCRIPTION "Files required for developing with PolyVox" DEPENDS library)
CPACK_ADD_COMPONENT(example DISPLAY_NAME "OpenGL Example" DESCRIPTION "A PolyVox example application using OpenGL" DEPENDS library)
cpack_add_component_group(bindings DISPLAY_NAME "Bindings" DESCRIPTION "Language bindings")
CPACK_ADD_COMPONENT(python DISPLAY_NAME "Python Bindings" DESCRIPTION "PolyVox bindings for the Python language" DISABLED GROUP bindings DEPENDS library)

View File

@ -137,3 +137,19 @@ if(DOXYGEN_FOUND)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
add_custom_target(doc COMMAND ${DOXYGEN_EXECUTABLE} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Building documentation" VERBATIM)
endif()
find_package(SWIG)
if(SWIG_FOUND)
INCLUDE(${SWIG_USE_FILE})
FIND_PACKAGE(PythonLibs)
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
SET(CMAKE_SWIG_FLAGS "")
SET_SOURCE_FILES_PROPERTIES(bindings/Enums.i PROPERTIES CPLUSPLUS ON)
SWIG_ADD_MODULE(Enums python bindings/Enums.i)
SWIG_LINK_LIBRARIES(Enums ${PYTHON_LIBRARIES})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Enums.py DESTINATION lib COMPONENT python)
endif()

6
library/bindings/Enums.i Normal file
View File

@ -0,0 +1,6 @@
%module Enums
%{
#include "PolyVoxCore/Enums.h"
%}
enum NormalGenerationMethod;