From 27b17cf348df4bbb1376ffb1446830d2718dfe04 Mon Sep 17 00:00:00 2001 From: Matt Williams Date: Fri, 27 Mar 2009 18:54:20 +0000 Subject: [PATCH] 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 --- Packaging.cmake | 2 ++ library/CMakeLists.txt | 16 ++++++++++++++++ library/bindings/Enums.i | 6 ++++++ 3 files changed, 24 insertions(+) create mode 100644 library/bindings/Enums.i diff --git a/Packaging.cmake b/Packaging.cmake index 59709b35..20db2f42 100644 --- a/Packaging.cmake +++ b/Packaging.cmake @@ -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) diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index b3964ab6..9c3ae574 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -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() diff --git a/library/bindings/Enums.i b/library/bindings/Enums.i new file mode 100644 index 00000000..3d397669 --- /dev/null +++ b/library/bindings/Enums.i @@ -0,0 +1,6 @@ +%module Enums +%{ +#include "PolyVoxCore/Enums.h" +%} + +enum NormalGenerationMethod;