From 8fa645fe02991782023b464af6e0d6487b4ceae6 Mon Sep 17 00:00:00 2001 From: Nick Gasson Date: Sat, 19 Jun 2010 16:08:47 +0100 Subject: [PATCH] Add SWIG support to build system --- CMakeLists.txt | 19 ++++++++++++++++++- src/TrainGame.i | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 src/TrainGame.i diff --git a/CMakeLists.txt b/CMakeLists.txt index e34e676..2073359 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,22 @@ endif (NOT WIN32) find_package (Xerces REQUIRED) +# Build SWIG wrapper +find_package (SWIG REQUIRED) + +set (SWIG_INPUT src/TrainGame.i) +set (SWIG_OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles") +set (SWIG_OUTPUT "${SWIG_OUTDIR}/SWIGWrapper.cpp") +add_custom_command ( + OUTPUT "${SWIG_OUTPUT}" + COMMAND "${SWIG_EXECUTABLE}" + ARGS -lua -c++ -o "${SWIG_OUTPUT}" "${SWIG_INPUT}" + DEPENDS "${SWIG_INPUT}" include/*.hpp + COMMENT "Generating SWIG Lua wrapper" ) +set_source_files_properties ( + "${SWIG_OUTPUT}" + PROPERTIES GENERATED 1 ) + include_directories (${CMAKE_SOURCE_DIR}/include) include_directories (${CMAKE_SOURCE_DIR}/src) include_directories (include ${SDL_INCLUDE_DIR}) @@ -41,6 +57,7 @@ include_directories (include ${OPENGL_INCLUDE_DIR}) include_directories (include ${GLEW_INCLUDE_DIR}) include_directories (include ${XERCES_INCLUDE_DIRS}) include_directories (include ${FREETYPE_INCLUDE_DIRS}) +include_directories (include ${LUA_INCLUDE_DIR}) include_directories (include ${CMAKE_CURRENT_BINARY_DIR}) if (NOT WIN32) # Unix @@ -50,7 +67,7 @@ endif (NOT WIN32) # WIN32 makes a non-console application on Windows -add_executable (${PROJECT_NAME} WIN32 ${folder_source}) +add_executable (${PROJECT_NAME} WIN32 ${folder_source} ${SWIG_OUTPUT}) target_link_libraries (${PROJECT_NAME} ${SDL_LIBRARY} ${SDLIMAGE_LIBRARY} ${OPENGL_LIBRARY} ${XERCES_LIBRARIES} ${Boost_LIBRARIES} diff --git a/src/TrainGame.i b/src/TrainGame.i new file mode 100644 index 0000000..ab75c40 --- /dev/null +++ b/src/TrainGame.i @@ -0,0 +1,18 @@ +// -*- mode: c++ -*- + +%module TrainGame +%{ +#include "Platform.hpp" +#include "gui/IFont.hpp" +#include "gui/RenderContext.hpp" +#include "gui/Widget.hpp" +#include "gui/ILayout.hpp" + +using namespace gui; +%} + +%include "../include/gui/Theme.hpp" +%include "../include/gui/IFont.hpp" +%include "../include/gui/RenderContext.hpp" +%include "../include/gui/Widget.hpp" +%include "../include/gui/ILayout.hpp" -- 2.39.2