Browse Source

add luainvaders to CMakeLists.txt

It compiles in g++ and clang, but make install does not install in a way that makes it able to be run, so I had to run it from the build directory.

There are some funky things going on with msvc and cmake, but there are some pre-built .sln files in the repo for everything, so it shouldn't be a problem until I learn how CMake works.
Nate Starkey 13 years ago
parent
commit
d077d98b8e

+ 362 - 346
Build/CMakeLists.txt

@@ -1,346 +1,362 @@
-#===================================
-# Build script for libRocket =======
-#===================================
-
-if(APPLE)
-# We use the new OSX_ARCHITECTURES property
-cmake_minimum_required(VERSION 2.8.1)
-else()
-cmake_minimum_required(VERSION 2.6)
-endif()
-
-if(COMMAND cmake_policy)
-  cmake_policy(SET CMP0015 NEW)
-endif(COMMAND cmake_policy)
-
-project(libRocket C CXX)
-
-set(LIBROCKET_VERSION_MAJOR 1)
-set(LIBROCKET_VERSION_MINOR 2)
-set(LIBROCKET_VERSION_PATCH 1)
-set(PROJECT_VERSION ${LIBROCKET_VERSION_MAJOR}.${LIBROCKET_VERSION_MINOR}.${LIBROCKET_VERSION_PATCH})
-
-# Search in the 'cmake' directory for additional CMake modules.
-list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
-
-set(CMAKE_DEBUG_POSTFIX  "_d")
-
-#===================================
-# Environment tests ================
-#===================================
-
-include(TestForANSIForScope)
-include(TestForANSIStreamHeaders)
-include(TestForSTDNamespace)
-
-
-#===================================
-# Build options ====================
-#===================================
-
-if(NOT CMAKE_BUILD_TYPE)
-    set(CMAKE_BUILD_TYPE Release CACHE STRING
-        "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
-        FORCE)
-endif()
-
-option(BUILD_SHARED_LIBS "Build shared libraries" ON)
-option(BUILD_PYTHON_BINDINGS "Build python bindings" OFF)
-option(BUILD_LUA_BINDINGS "Build Lua bindings" OFF)
-option(BUILD_SAMPLES "Build samples" OFF)
-
-if(NOT BUILD_SHARED_LIBS)
-    add_definitions(-DSTATIC_LIB)
-endif()
-
-#===================================
-# Find dependencies ================
-#===================================
-
-# FreeType
-find_package(Freetype REQUIRED)	
-if(FREETYPE_FOUND)
-		include_directories(${FREETYPE_INCLUDE_DIRS})
-		link_directories(${FREETYPE_LINK_DIRS})
-		list(APPEND CORE_LINK_LIBS ${FREETYPE_LIBRARY})
-endif()
-mark_as_advanced(FREETYPE_INCLUDE_DIRS FREETYPE_LIBRARY FREETYPE_LINK_DIRECTORIES)
-
-# Boost and Python
-if(BUILD_PYTHON_BINDINGS)
-    find_package(PythonInterp REQUIRED)
-    find_package(PythonLibs REQUIRED)
-    execute_process(
-        COMMAND ${PYTHON_EXECUTABLE} -c "from distutils import sysconfig; print(sysconfig.get_python_lib(1,0,prefix=''))"
-        OUTPUT_VARIABLE PYTHON_INSTDIR
-        OUTPUT_STRIP_TRAILING_WHITESPACE
-    )
-    if(PYTHONLIBS_FOUND)
-        include_directories(${PYTHON_INCLUDE_DIR})
-    endif()
-
-    #set(Boost_USE_STATIC_LIBS OFF)
-    #set(Boost_USE_MULTITHREADED ON)
-    find_package(Boost 1.40.0 COMPONENTS python REQUIRED)
-    if(Boost_FOUND)
-        include_directories(${Boost_INCLUDE_DIR})
-        list(APPEND PY_BINDINGS_LINK_LIBS ${Boost_LIBRARIES})
-    endif()
-
-endif()
-
-#Lua
-if(BUILD_LUA_BINDINGS)
-    find_package(Lua51 REQUIRED)
-    if(LUA_INCLUDE_DIR)
-        include_directories(${LUA_INCLUDE_DIR})
-        list(APPEND LUA_BINDINGS_LINK_LIBS ${LUA_LIBRARIES})
-    endif()
-endif()
-
-
-#===================================
-# Setup paths ======================
-#===================================
-
-set(PROJECT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/..)
-
-include_directories(
-    ${PROJECT_SOURCE_DIR}/Include
-)
-
-# Include list of source files
-include(FileList)
-
-#===================================
-# Build libraries ==================
-#===================================
-
-set(LIBRARIES Core Controls Debugger)
-
-foreach(library ${LIBRARIES})
-    set(NAME Rocket${library})
-
-    add_library(${NAME} ${${library}_SRC_FILES}
-                        ${${library}_HDR_FILES}
-                        ${${library}_PUB_HDR_FILES}
-    )
-
-    set_target_properties(${NAME} PROPERTIES
-                           VERSION ${PROJECT_VERSION}
-                           SOVERSION ${LIBROCKET_VERSION_MAJOR}
-    )
-    
-    if(APPLE)
-    	set_target_properties(${NAME} PROPERTIES
-    					OSX_ARCHITECTURES "i386;x86_64;"
-    	)
-    endif()
-
-    install(TARGETS ${NAME}
-            LIBRARY DESTINATION lib
-            ARCHIVE DESTINATION lib
-            RUNTIME DESTINATION bin
-    )
-endforeach(library)
-
-# Build python bindings
-if(BUILD_PYTHON_BINDINGS)
-    set(LIBRARIES core controls)
-
-    foreach(library ${LIBRARIES})
-        set(NAME _rocket${library})
-
-        add_library(${NAME} ${Py${library}_SRC_FILES}
-                            ${Py${library}_HDR_FILES}
-                            ${Py${library}_PUB_HDR_FILES}
-        )
-
-        set_target_properties(${NAME} PROPERTIES PREFIX "")
-
-        install(TARGETS ${NAME}
-                LIBRARY DESTINATION ${PYTHON_INSTDIR}
-        )
-    endforeach(library)
-endif()
-
-# Build Lua bindings
-if(BUILD_LUA_BINDINGS)
-    set(LIBRARIES core controls)
-
-    foreach(library ${LIBRARIES})
-        set(NAME Rocket${library}Lua)
-
-        add_library(${NAME} ${Lua${library}_SRC_FILES}
-                            ${Lua${library}_HDR_FILES}
-                            ${Lua${library}_PUB_HDR_FILES}
-        )
-
-        set_target_properties(${NAME} PROPERTIES PREFIX "")
-        
-        install(TARGETS ${NAME}
-            LIBRARY DESTINATION lib
-            ARCHIVE DESTINATION lib
-            RUNTIME DESTINATION bin
-        )
-    endforeach(library)
-endif()
-
-
-#===================================
-# Link libraries ===================
-#===================================
-
-target_link_libraries(RocketCore ${CORE_LINK_LIBS})
-target_link_libraries(RocketControls RocketCore)
-target_link_libraries(RocketDebugger RocketCore)
-
-if(BUILD_PYTHON_BINDINGS)
-    target_link_libraries(_rocketcore RocketCore ${PY_BINDINGS_LINK_LIBS})
-    target_link_libraries(_rocketcontrols RocketControls ${PY_BINDINGS_LINK_LIBS})
-endif()
-
-if(BUILD_LUA_BINDINGS)
-    target_link_libraries(RocketcoreLua RocketCore ${LUA_BINDINGS_LINK_LIBS})
-    target_link_libraries(RocketcontrolsLua RocketControls RocketcoreLua ${LUA_BINDINGS_LINK_LIBS})
-endif()
-
-
-#===================================
-# Build samples ====================
-#===================================
-
-# Build and link the samples
-macro(bl_sample NAME)
-	if (WIN32)
-    	add_executable(${NAME} WIN32 ${${NAME}_SRC_FILES} ${${NAME}_HDR_FILES} )
-	elseif(APPLE)
-		add_executable(${NAME} MACOSX_BUNDLE ${${NAME}_SRC_FILES} ${${NAME}_HDR_FILES} )
-    else()
-    	add_executable(${NAME} ${${NAME}_SRC_FILES} ${${NAME}_HDR_FILES} )
-    endif()
-    
-    if (APPLE)
-    	# We only support i386 for the samples as it still uses Carbon
-    	set_target_properties(${NAME} PROPERTIES OSX_ARCHITECTURES "i386;" )
-    endif()
-
-    target_link_libraries(${NAME} ${ARGN})
-endmacro()
-
-if(BUILD_SAMPLES)
-    include(SampleFileList)
-	set(samples treeview customlog drag loaddocument)
-    
-    set(sample_LIBRARIES
-    	shell 
-    	RocketCore 
-    	RocketControls
-    	RocketDebugger
-    )
-
-	# Find OpenGL 
-	find_package(OpenGL REQUIRED)
-    	   
-    if(OPENGL_FOUND)
-    	include_directories(${OPENGL_INCLUDE_DIR})
-        list(APPEND sample_LIBRARIES ${OPENGL_LIBRARIES})
-    endif()
-    
-    # Set up required system libraries
-    if(WIN32)
-		list(APPEND samples directx)
-    	list(APPEND sample_LIBRARIES d3d9 d3dx9)
-    elseif(APPLE)
-		include(FindCarbon)
-    	find_package(Carbon REQUIRED)
-    	
-    	if (Carbon_FOUND)
-    		include_directories(${Carbon_INCLUDE_DIR})
-        	list(APPEND sample_LIBRARIES ${Carbon_LIBRARIES})
-    	endif()
-    else()
-    	find_package(X11 REQUIRED)
-        if (X11_FOUND)
-        	list(APPEND sample_LIBRARIES ${X11_LIBRARIES})
-        endif()
-    endif()
-   
-    set(SAMPLES_DIR opt/Rocket/Samples)
-
-    # The samples use the shell library
-    include_directories(${PROJECT_SOURCE_DIR}/Samples/shell/include)
-
-    # Build and install sample shell library
-    add_library(shell STATIC ${shell_SRC_FILES} ${shell_HDR_FILES})
-    if (APPLE)
-    	# We only support i386 for the samples as it still uses Carbon
-    	set_target_properties(shell PROPERTIES OSX_ARCHITECTURES "i386;")
-    endif()
-
-    install(TARGETS shell
-            LIBRARY DESTINATION lib
-            ARCHIVE DESTINATION lib
-    )
-
-    # Build and install the basic samples
-    foreach(sample ${samples})
-        bl_sample(${sample} ${sample_LIBRARIES})
-
-        # The samples always set this as their current working directory
-        install(DIRECTORY DESTINATION ${SAMPLES_DIR}/basic/${sample})
-        install(TARGETS ${sample} 
-        	RUNTIME DESTINATION ${SAMPLES_DIR}/${sample}
-        	BUNDLE DESTINATION ${SAMPLES_DIR})
-    endforeach()
-
-    # Build and install invaders sample
-    bl_sample(invaders ${sample_LIBRARIES})
-    install(DIRECTORY DESTINATION ${SAMPLES_DIR}/invaders)
-    install(TARGETS invaders 
-    	RUNTIME DESTINATION ${SAMPLES_DIR}/invaders
-    	BUNDLE DESTINATION ${SAMPLES_DIR})
-endif()
-
-
-#===================================
-# Installation =====================
-#===================================
-
-if(BUILD_PYTHON_BINDINGS)
-    install(FILES ${PROJECT_SOURCE_DIR}/bin/rocket.py
-            DESTINATION ${PYTHON_INSTDIR}
-    )
-    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Include/Rocket
-            DESTINATION include
-            PATTERN "Lua" EXCLUDE
-    )
-endif()
-if(BUILD_LUA_BINDINGS)
-    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Include/Rocket
-            DESTINATION include
-            PATTERN "Python" EXCLUDE
-    )
-endif()
-if(NOT BUILD_LUA_BINDINGS AND NOT BUILD_PYTHON_BINDINGS)
-    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Include/Rocket
-            DESTINATION include
-            PATTERN "Python" EXCLUDE
-            PATTERN "Lua" EXCLUDE
-    )
-endif()
-
-if(BUILD_SAMPLES)
-    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/data
-            DESTINATION ${SAMPLES_DIR}/basic/treeview
-    )
-    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/basic/drag/data
-            DESTINATION ${SAMPLES_DIR}/basic/drag
-    )
-    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/invaders/data
-            DESTINATION ${SAMPLES_DIR}/invaders
-    )
-    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/assets
-            DESTINATION ${SAMPLES_DIR}
-    )
-endif()
+#===================================
+# Build script for libRocket =======
+#===================================
+
+if(APPLE)
+# We use the new OSX_ARCHITECTURES property
+cmake_minimum_required(VERSION 2.8.1)
+else()
+cmake_minimum_required(VERSION 2.6)
+endif()
+
+if(COMMAND cmake_policy)
+  cmake_policy(SET CMP0015 NEW)
+endif(COMMAND cmake_policy)
+
+project(libRocket C CXX)
+
+set(LIBROCKET_VERSION_MAJOR 1)
+set(LIBROCKET_VERSION_MINOR 2)
+set(LIBROCKET_VERSION_PATCH 1)
+set(PROJECT_VERSION ${LIBROCKET_VERSION_MAJOR}.${LIBROCKET_VERSION_MINOR}.${LIBROCKET_VERSION_PATCH})
+
+# Search in the 'cmake' directory for additional CMake modules.
+list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
+
+set(CMAKE_DEBUG_POSTFIX  "_d")
+
+#===================================
+# Environment tests ================
+#===================================
+
+include(TestForANSIForScope)
+include(TestForANSIStreamHeaders)
+include(TestForSTDNamespace)
+
+
+#===================================
+# Build options ====================
+#===================================
+
+if(NOT CMAKE_BUILD_TYPE)
+    set(CMAKE_BUILD_TYPE Release CACHE STRING
+        "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
+        FORCE)
+endif()
+
+option(BUILD_SHARED_LIBS "Build shared libraries" ON)
+option(BUILD_PYTHON_BINDINGS "Build python bindings" OFF)
+option(BUILD_LUA_BINDINGS "Build Lua bindings" OFF)
+option(BUILD_SAMPLES "Build samples" OFF)
+
+if(NOT BUILD_SHARED_LIBS)
+    add_definitions(-DSTATIC_LIB)
+endif()
+
+#===================================
+# Find dependencies ================
+#===================================
+
+# FreeType
+find_package(Freetype REQUIRED)	
+if(FREETYPE_FOUND)
+		include_directories(${FREETYPE_INCLUDE_DIRS})
+		link_directories(${FREETYPE_LINK_DIRS})
+		list(APPEND CORE_LINK_LIBS ${FREETYPE_LIBRARY})
+endif()
+mark_as_advanced(FREETYPE_INCLUDE_DIRS FREETYPE_LIBRARY FREETYPE_LINK_DIRECTORIES)
+
+# Boost and Python
+if(BUILD_PYTHON_BINDINGS)
+    find_package(PythonInterp REQUIRED)
+    find_package(PythonLibs REQUIRED)
+    execute_process(
+        COMMAND ${PYTHON_EXECUTABLE} -c "from distutils import sysconfig; print(sysconfig.get_python_lib(1,0,prefix=''))"
+        OUTPUT_VARIABLE PYTHON_INSTDIR
+        OUTPUT_STRIP_TRAILING_WHITESPACE
+    )
+    if(PYTHONLIBS_FOUND)
+        include_directories(${PYTHON_INCLUDE_DIR})
+    endif()
+
+    #set(Boost_USE_STATIC_LIBS OFF)
+    #set(Boost_USE_MULTITHREADED ON)
+    find_package(Boost 1.40.0 COMPONENTS python REQUIRED)
+    if(Boost_FOUND)
+        include_directories(${Boost_INCLUDE_DIR})
+        list(APPEND PY_BINDINGS_LINK_LIBS ${Boost_LIBRARIES})
+    endif()
+
+endif()
+
+#Lua
+if(BUILD_LUA_BINDINGS)
+    find_package(Lua51 REQUIRED)
+    if(LUA_INCLUDE_DIR)
+        include_directories(${LUA_INCLUDE_DIR})
+        list(APPEND LUA_BINDINGS_LINK_LIBS ${LUA_LIBRARIES})
+    endif()
+endif()
+
+
+#===================================
+# Setup paths ======================
+#===================================
+
+set(PROJECT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/..)
+
+include_directories(
+    ${PROJECT_SOURCE_DIR}/Include
+)
+
+# Include list of source files
+include(FileList)
+
+#===================================
+# Build libraries ==================
+#===================================
+
+set(LIBRARIES Core Controls Debugger)
+
+foreach(library ${LIBRARIES})
+    set(NAME Rocket${library})
+
+    add_library(${NAME} ${${library}_SRC_FILES}
+                        ${${library}_HDR_FILES}
+                        ${${library}_PUB_HDR_FILES}
+    )
+
+    set_target_properties(${NAME} PROPERTIES
+                           VERSION ${PROJECT_VERSION}
+                           SOVERSION ${LIBROCKET_VERSION_MAJOR}
+    )
+    
+    if(APPLE)
+    	set_target_properties(${NAME} PROPERTIES
+    					OSX_ARCHITECTURES "i386;x86_64;"
+    	)
+    endif()
+
+    install(TARGETS ${NAME}
+            LIBRARY DESTINATION lib
+            ARCHIVE DESTINATION lib
+            RUNTIME DESTINATION bin
+    )
+endforeach(library)
+
+# Build python bindings
+if(BUILD_PYTHON_BINDINGS)
+    set(LIBRARIES core controls)
+
+    foreach(library ${LIBRARIES})
+        set(NAME _rocket${library})
+
+        add_library(${NAME} ${Py${library}_SRC_FILES}
+                            ${Py${library}_HDR_FILES}
+                            ${Py${library}_PUB_HDR_FILES}
+        )
+
+        set_target_properties(${NAME} PROPERTIES PREFIX "")
+
+        install(TARGETS ${NAME}
+                LIBRARY DESTINATION ${PYTHON_INSTDIR}
+        )
+    endforeach(library)
+endif()
+
+# Build Lua bindings
+if(BUILD_LUA_BINDINGS)
+    set(LIBRARIES core controls)
+
+    foreach(library ${LIBRARIES})
+        set(NAME Rocket${library}Lua)
+
+        add_library(${NAME} ${Lua${library}_SRC_FILES}
+                            ${Lua${library}_HDR_FILES}
+                            ${Lua${library}_PUB_HDR_FILES}
+        )
+
+        set_target_properties(${NAME} PROPERTIES PREFIX "")
+        
+        install(TARGETS ${NAME}
+            LIBRARY DESTINATION lib
+            ARCHIVE DESTINATION lib
+            RUNTIME DESTINATION bin
+        )
+    endforeach(library)
+endif()
+
+
+#===================================
+# Link libraries ===================
+#===================================
+
+target_link_libraries(RocketCore ${CORE_LINK_LIBS})
+target_link_libraries(RocketControls RocketCore)
+target_link_libraries(RocketDebugger RocketCore)
+
+if(BUILD_PYTHON_BINDINGS)
+    target_link_libraries(_rocketcore RocketCore ${PY_BINDINGS_LINK_LIBS})
+    target_link_libraries(_rocketcontrols RocketControls ${PY_BINDINGS_LINK_LIBS})
+endif()
+
+if(BUILD_LUA_BINDINGS)
+    target_link_libraries(RocketcoreLua RocketCore ${LUA_BINDINGS_LINK_LIBS})
+    target_link_libraries(RocketcontrolsLua RocketControls RocketcoreLua ${LUA_BINDINGS_LINK_LIBS})
+endif()
+
+
+#===================================
+# Build samples ====================
+#===================================
+
+# Build and link the samples
+macro(bl_sample NAME)
+	if (WIN32)
+    	add_executable(${NAME} WIN32 ${${NAME}_SRC_FILES} ${${NAME}_HDR_FILES} )
+	elseif(APPLE)
+		add_executable(${NAME} MACOSX_BUNDLE ${${NAME}_SRC_FILES} ${${NAME}_HDR_FILES} )
+    else()
+    	add_executable(${NAME} ${${NAME}_SRC_FILES} ${${NAME}_HDR_FILES} )
+    endif()
+    
+    if (APPLE)
+    	# We only support i386 for the samples as it still uses Carbon
+    	set_target_properties(${NAME} PROPERTIES OSX_ARCHITECTURES "i386;" )
+    endif()
+
+    target_link_libraries(${NAME} ${ARGN})
+endmacro()
+
+if(BUILD_SAMPLES)
+    include(SampleFileList)
+	set(samples treeview customlog drag loaddocument)
+    
+    set(sample_LIBRARIES
+    	shell 
+    	RocketCore 
+    	RocketControls
+    	RocketDebugger
+    )
+
+	# Find OpenGL 
+	find_package(OpenGL REQUIRED)
+    	   
+    if(OPENGL_FOUND)
+    	include_directories(${OPENGL_INCLUDE_DIR})
+        list(APPEND sample_LIBRARIES ${OPENGL_LIBRARIES})
+    endif()
+    
+    # Set up required system libraries
+    if(WIN32)
+		list(APPEND samples directx)
+    	list(APPEND sample_LIBRARIES d3d9 d3dx9)
+    elseif(APPLE)
+		include(FindCarbon)
+    	find_package(Carbon REQUIRED)
+    	
+    	if (Carbon_FOUND)
+    		include_directories(${Carbon_INCLUDE_DIR})
+        	list(APPEND sample_LIBRARIES ${Carbon_LIBRARIES})
+    	endif()
+    else()
+    	find_package(X11 REQUIRED)
+        if (X11_FOUND)
+        	list(APPEND sample_LIBRARIES ${X11_LIBRARIES})
+        endif()
+    endif()
+   
+    set(SAMPLES_DIR opt/Rocket/Samples)
+
+    # The samples use the shell library
+    include_directories(${PROJECT_SOURCE_DIR}/Samples/shell/include)
+
+    # Build and install sample shell library
+    add_library(shell STATIC ${shell_SRC_FILES} ${shell_HDR_FILES})
+    if (APPLE)
+    	# We only support i386 for the samples as it still uses Carbon
+    	set_target_properties(shell PROPERTIES OSX_ARCHITECTURES "i386;")
+    endif()
+
+    install(TARGETS shell
+            LIBRARY DESTINATION lib
+            ARCHIVE DESTINATION lib
+    )
+
+    # Build and install the basic samples
+    foreach(sample ${samples})
+        bl_sample(${sample} ${sample_LIBRARIES})
+
+        # The samples always set this as their current working directory
+        install(DIRECTORY DESTINATION ${SAMPLES_DIR}/basic/${sample})
+        install(TARGETS ${sample} 
+        	RUNTIME DESTINATION ${SAMPLES_DIR}/${sample}
+        	BUNDLE DESTINATION ${SAMPLES_DIR})
+    endforeach()
+
+    # Build and install invaders sample
+    bl_sample(invaders ${sample_LIBRARIES})
+    install(DIRECTORY DESTINATION ${SAMPLES_DIR}/invaders)
+    install(TARGETS invaders 
+    	RUNTIME DESTINATION ${SAMPLES_DIR}/invaders
+    	BUNDLE DESTINATION ${SAMPLES_DIR})
+    
+    if(BUILD_LUA_BINDINGS)
+        bl_sample(luainvaders RocketcoreLua RocketcontrolsLua ${LUA_BINDINGS_LINK_LIBS} ${sample_LIBRARIES})
+        install(DIRECTORY DESTINATION ${SAMPLES_DIR}/luainvaders)
+        install(TARGETS luainvaders 
+        	RUNTIME DESTINATION ${SAMPLES_DIR}/luainvaders
+        	BUNDLE DESTINATION ${SAMPLES_DIR})
+    endif()
+endif()
+
+
+#===================================
+# Installation =====================
+#===================================
+
+if(BUILD_PYTHON_BINDINGS)
+    install(FILES ${PROJECT_SOURCE_DIR}/bin/rocket.py
+            DESTINATION ${PYTHON_INSTDIR}
+    )
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Include/Rocket
+            DESTINATION include
+            PATTERN "Lua" EXCLUDE
+    )
+endif()
+if(BUILD_LUA_BINDINGS)
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Include/Rocket
+            DESTINATION include
+            PATTERN "Python" EXCLUDE
+    )
+endif()
+if(NOT BUILD_LUA_BINDINGS AND NOT BUILD_PYTHON_BINDINGS)
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Include/Rocket
+            DESTINATION include
+            PATTERN "Python" EXCLUDE
+            PATTERN "Lua" EXCLUDE
+    )
+endif()
+
+if(BUILD_SAMPLES)
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/data
+            DESTINATION ${SAMPLES_DIR}/basic/treeview
+    )
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/basic/drag/data
+            DESTINATION ${SAMPLES_DIR}/basic/drag
+    )
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/invaders/data
+            DESTINATION ${SAMPLES_DIR}/invaders
+    )
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/assets
+            DESTINATION ${SAMPLES_DIR}
+    )
+    if(BUILD_LUA_BINDINGS)
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/luainvaders/data 
+            DESTINATION ${SAMPLES_DIR}/luainvaders
+    )
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/luainvaders/lua 
+            DESTINATION ${SAMPLES_DIR}/luainvaders
+    )
+    endif()
+endif()

+ 85 - 87
Build/cmake/SampleFileList.cmake

@@ -24,9 +24,9 @@ set(drag_HDR_FILES
 )
 )
 
 
 set(drag_SRC_FILES
 set(drag_SRC_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/basic/drag/src/main.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/drag/src/DragListener.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/drag/src/DragListener.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/drag/src/Inventory.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/drag/src/Inventory.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/basic/drag/src/main.cpp
 )
 )
 
 
 set(loaddocument_HDR_FILES
 set(loaddocument_HDR_FILES
@@ -37,18 +37,18 @@ set(loaddocument_SRC_FILES
 )
 )
 
 
 set(ogre3d_HDR_FILES
 set(ogre3d_HDR_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RenderInterfaceOgre3D.h
     ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketApplication.h
     ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketApplication.h
-    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketFrameListener.h
+    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RenderInterfaceOgre3D.h
     ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/SystemInterfaceOgre3D.h
     ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/SystemInterfaceOgre3D.h
+    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketFrameListener.h
 )
 )
 
 
 set(ogre3d_SRC_FILES
 set(ogre3d_SRC_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketFrameListener.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/main.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/main.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RenderInterfaceOgre3D.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketApplication.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketApplication.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketFrameListener.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/SystemInterfaceOgre3D.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/SystemInterfaceOgre3D.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RenderInterfaceOgre3D.cpp
 )
 )
 
 
 set(treeview_HDR_FILES
 set(treeview_HDR_FILES
@@ -57,151 +57,149 @@ set(treeview_HDR_FILES
 )
 )
 
 
 set(treeview_SRC_FILES
 set(treeview_SRC_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/main.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/FileFormatter.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/FileFormatter.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/FileSystem.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/FileSystem.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/main.cpp
 )
 )
 
 
 set(invaders_HDR_FILES
 set(invaders_HDR_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorDefender.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerDefender.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerStarfield.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorStarfield.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Defender.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/ElementGame.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Event.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandler.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerHighScore.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerOptions.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerStartGame.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventInstancer.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventManager.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventManager.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Game.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventInstancer.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Shield.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/GameDetails.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/GameDetails.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScores.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Game.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerOptions.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresNameFormatter.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresNameFormatter.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresShipFormatter.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresShipFormatter.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Defender.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/ElementGame.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandler.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Sprite.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerStartGame.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerHighScore.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Event.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Invader.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Invader.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Mothership.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Mothership.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Shield.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Sprite.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorStarfield.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScores.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerStarfield.h
 )
 )
 
 
 set(invaders_SRC_FILES
 set(invaders_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorDefender.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerDefender.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerStarfield.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerStartGame.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorStarfield.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorStarfield.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Defender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/GameDetails.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/main.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/ElementGame.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/ElementGame.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Invader.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Event.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Event.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandler.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerHighScore.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerOptions.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerStartGame.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventManager.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Game.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Game.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/GameDetails.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScores.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresNameFormatter.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresShipFormatter.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresShipFormatter.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Invader.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/main.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Mothership.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Shield.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Shield.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerHighScore.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Sprite.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Sprite.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorDefender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerDefender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresNameFormatter.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerOptions.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Defender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Mothership.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandler.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventManager.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScores.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerStarfield.cpp
 )
 )
 
 
 set(luainvaders_HDR_FILES
 set(luainvaders_HDR_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorDefender.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerDefender.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerStarfield.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorStarfield.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Shield.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/GameDetails.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Game.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGameInstancer.h
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Defender.h
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Defender.h
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGame.h
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGame.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGameInstancer.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Game.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/GameDetails.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/HighScores.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Sprite.h
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Invader.h
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Invader.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/LuaInterface.h
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Mothership.h
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Mothership.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/PythonInterface.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Shield.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Sprite.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorStarfield.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/HighScores.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/LuaInterface.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerStarfield.h
 )
 )
 
 
 set(luainvaders_SRC_FILES
 set(luainvaders_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorDefender.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerDefender.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerStarfield.cpp
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorStarfield.cpp
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorStarfield.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Defender.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGame.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGameInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Game.cpp
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/GameDetails.cpp
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/GameDetails.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/HighScores.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Invader.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/LuaInterface.cpp
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/main.cpp
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/main.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Mothership.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/PythonInterface.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGame.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Invader.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Game.cpp
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Shield.cpp
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Shield.cpp
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Sprite.cpp
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Sprite.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorDefender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerDefender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGameInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Defender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Mothership.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/LuaInterface.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/HighScores.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerStarfield.cpp
 )
 )
 
 
 set(pyinvaders_HDR_FILES
 set(pyinvaders_HDR_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorDefender.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerDefender.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerStarfield.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorStarfield.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Shield.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/GameDetails.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Game.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Defender.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Defender.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/ElementGame.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/ElementGame.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Game.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/GameDetails.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/HighScores.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Sprite.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/PythonInterface.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Invader.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Invader.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Mothership.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Mothership.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/PythonInterface.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Shield.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Sprite.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorStarfield.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/HighScores.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerStarfield.h
 )
 )
 
 
 set(pyinvaders_SRC_FILES
 set(pyinvaders_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorDefender.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerDefender.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerStarfield.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorStarfield.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorStarfield.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Defender.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/ElementGame.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Game.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/GameDetails.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/GameDetails.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/HighScores.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Invader.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/main.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/main.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Mothership.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/ElementGame.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Invader.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/PythonInterface.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/PythonInterface.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Game.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Shield.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Shield.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Sprite.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Sprite.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorDefender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerDefender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Defender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Mothership.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/HighScores.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerStarfield.cpp
 )
 )
 
 
 set(shell_HDR_FILES
 set(shell_HDR_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellSystemInterface.h
+    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellRenderInterfaceOpenGL.h
     ${PROJECT_SOURCE_DIR}/Samples/shell/include/Input.h
     ${PROJECT_SOURCE_DIR}/Samples/shell/include/Input.h
+    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellOpenGL.h
     ${PROJECT_SOURCE_DIR}/Samples/shell/include/Shell.h
     ${PROJECT_SOURCE_DIR}/Samples/shell/include/Shell.h
     ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellFileInterface.h
     ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellFileInterface.h
-    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellOpenGL.h
-    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellRenderInterfaceOpenGL.h
-    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellSystemInterface.h
 )
 )
 
 
 set(shell_SRC_FILES
 set(shell_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/shell/src/Input.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/shell/src/Shell.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/shell/src/ShellSystemInterface.cpp
     ${PROJECT_SOURCE_DIR}/Samples/shell/src/ShellFileInterface.cpp
     ${PROJECT_SOURCE_DIR}/Samples/shell/src/ShellFileInterface.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/shell/src/Shell.cpp
     ${PROJECT_SOURCE_DIR}/Samples/shell/src/ShellRenderInterfaceOpenGL.cpp
     ${PROJECT_SOURCE_DIR}/Samples/shell/src/ShellRenderInterfaceOpenGL.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/shell/src/ShellSystemInterface.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/shell/src/Input.cpp
 )
 )
 
 
 # Deal with platform specific sources for sample shell
 # Deal with platform specific sources for sample shell

+ 301 - 301
Samples/luainvaders/LuaRocketInvaders.vcproj

@@ -1,301 +1,301 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="LuaRocketInvaders"
-	ProjectGUID="{D343E357-BF62-424F-B22A-16D7B8A6422B}"
-	RootNamespace="LuaRocketInvaders"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\shell\include;..\..\include;..\..\Dependencies\lua\src"
-				PreprocessorDefinitions="WIN32"
-				RuntimeLibrary="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="RocketCore_d.lib RocketDebugger_d.lib RocketControls_d.lib opengl32.lib RocketCoreLua_d.lib RocketControlsLua_d.lib lua51.lib"
-				OutputFile="..\..\bin\$(ProjectName)_d.exe"
-				AdditionalLibraryDirectories="..\..\bin;..\..\..\support\lib"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\shell\include;..\..\include;..\..\Dependencies\lua\src"
-				PreprocessorDefinitions="WIN32,NDEBUG"
-				RuntimeLibrary="2"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="RocketCore.lib RocketDebugger.lib RocketControls.lib opengl32.lib RocketCoreLua.lib RocketControlsLua.lib lua51.lib"
-				OutputFile="..\..\bin\$(ProjectName).exe"
-				AdditionalLibraryDirectories="..\..\bin;..\..\..\support\lib"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Game"
-			>
-			<File
-				RelativePath=".\src\Defender.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\Defender.h"
-				>
-			</File>
-			<File
-				RelativePath=".\src\ElementGame.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\ElementGame.h"
-				>
-			</File>
-			<File
-				RelativePath=".\src\ElementGameInstancer.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\ElementGameInstancer.h"
-				>
-			</File>
-			<File
-				RelativePath=".\src\Game.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\Game.h"
-				>
-			</File>
-			<File
-				RelativePath=".\src\GameDetails.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\GameDetails.h"
-				>
-			</File>
-			<File
-				RelativePath=".\src\Invader.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\Invader.h"
-				>
-			</File>
-			<File
-				RelativePath=".\src\Mothership.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\Mothership.h"
-				>
-			</File>
-			<File
-				RelativePath=".\src\Shield.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\Shield.h"
-				>
-			</File>
-			<File
-				RelativePath=".\src\Sprite.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\Sprite.h"
-				>
-			</File>
-			<Filter
-				Name="High Scores"
-				>
-				<File
-					RelativePath=".\src\DecoratorDefender.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\DecoratorDefender.h"
-					>
-				</File>
-				<File
-					RelativePath=".\src\DecoratorInstancerDefender.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\DecoratorInstancerDefender.h"
-					>
-				</File>
-				<File
-					RelativePath=".\src\HighScores.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\HighScores.h"
-					>
-				</File>
-			</Filter>
-		</Filter>
-		<Filter
-			Name="Starfield"
-			>
-			<File
-				RelativePath=".\src\DecoratorInstancerStarfield.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\DecoratorInstancerStarfield.h"
-				>
-			</File>
-			<File
-				RelativePath=".\src\DecoratorStarfield.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\DecoratorStarfield.h"
-				>
-			</File>
-		</Filter>
-		<File
-			RelativePath=".\src\LuaInterface.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\src\LuaInterface.h"
-			>
-		</File>
-		<File
-			RelativePath=".\src\main.cpp"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9.00"
+	Name="LuaRocketInvaders"
+	ProjectGUID="{D343E357-BF62-424F-B22A-16D7B8A6422B}"
+	RootNamespace="LuaRocketInvaders"
+	TargetFrameworkVersion="131072"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(ProjectDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="..\shell\include;..\..\include;..\..\Dependencies\lua\src"
+				PreprocessorDefinitions="WIN32"
+				RuntimeLibrary="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="RocketCore_d.lib RocketDebugger_d.lib RocketControls_d.lib opengl32.lib RocketcoreLua_d.lib RocketcontrolsLua_d.lib lua51.lib"
+				OutputFile="..\..\bin\$(ProjectName)_d.exe"
+				AdditionalLibraryDirectories="..\..\bin;..\..\..\support\lib"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(ProjectDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="..\shell\include;..\..\include;..\..\Dependencies\lua\src"
+				PreprocessorDefinitions="WIN32,NDEBUG"
+				RuntimeLibrary="2"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="RocketCore.lib RocketDebugger.lib RocketControls.lib opengl32.lib RocketcoreLua.lib RocketcontrolsLua.lib lua51.lib"
+				OutputFile="..\..\bin\$(ProjectName).exe"
+				AdditionalLibraryDirectories="..\..\bin;..\..\..\support\lib"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Game"
+			>
+			<File
+				RelativePath=".\src\Defender.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\src\Defender.h"
+				>
+			</File>
+			<File
+				RelativePath=".\src\ElementGame.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\src\ElementGame.h"
+				>
+			</File>
+			<File
+				RelativePath=".\src\ElementGameInstancer.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\src\ElementGameInstancer.h"
+				>
+			</File>
+			<File
+				RelativePath=".\src\Game.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\src\Game.h"
+				>
+			</File>
+			<File
+				RelativePath=".\src\GameDetails.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\src\GameDetails.h"
+				>
+			</File>
+			<File
+				RelativePath=".\src\Invader.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\src\Invader.h"
+				>
+			</File>
+			<File
+				RelativePath=".\src\Mothership.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\src\Mothership.h"
+				>
+			</File>
+			<File
+				RelativePath=".\src\Shield.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\src\Shield.h"
+				>
+			</File>
+			<File
+				RelativePath=".\src\Sprite.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\src\Sprite.h"
+				>
+			</File>
+			<Filter
+				Name="High Scores"
+				>
+				<File
+					RelativePath=".\src\DecoratorDefender.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\src\DecoratorDefender.h"
+					>
+				</File>
+				<File
+					RelativePath=".\src\DecoratorInstancerDefender.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\src\DecoratorInstancerDefender.h"
+					>
+				</File>
+				<File
+					RelativePath=".\src\HighScores.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\src\HighScores.h"
+					>
+				</File>
+			</Filter>
+		</Filter>
+		<Filter
+			Name="Starfield"
+			>
+			<File
+				RelativePath=".\src\DecoratorInstancerStarfield.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\src\DecoratorInstancerStarfield.h"
+				>
+			</File>
+			<File
+				RelativePath=".\src\DecoratorStarfield.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\src\DecoratorStarfield.h"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath=".\src\LuaInterface.cpp"
+			>
+		</File>
+		<File
+			RelativePath=".\src\LuaInterface.h"
+			>
+		</File>
+		<File
+			RelativePath=".\src\main.cpp"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 0 - 124
Samples/luainvaders/src/PythonInterface.cpp

@@ -1,124 +0,0 @@
-/*
- * This source file is part of libRocket, the HTML/CSS Interface Middleware
- *
- * For the latest information, see http://www.librocket.com
- *
- * Copyright (c) 2008-2010 CodePoint Ltd, Shift Technology Ltd
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#include "PythonInterface.h"
-#include <Shell.h>
-#include "GameDetails.h"
-#include "ElementGame.h"
-#include "HighScores.h"
-
-void SubmitHighScore()
-{
-	int score = GameDetails::GetScore();
-	if (score > 0)
-	{
-		// Submit the score the player just got to the high scores chart.
-		HighScores::SubmitScore(GameDetails::GetDefenderColour(), GameDetails::GetWave(), GameDetails::GetScore());
-		// Reset the score so the chart won't get confused next time we enter.
-		GameDetails::ResetScore();
-	}
-}
-
-BOOST_PYTHON_MODULE(game)
-{
-	python::def("Shutdown", &Shell::RequestExit);
-	python::def("SetPaused", &GameDetails::SetPaused);
-	python::def("SetDifficulty", &GameDetails::SetDifficulty);
-	python::def("SetDefenderColour", &GameDetails::SetDefenderColour);
-	python::def("SubmitHighScore", &SubmitHighScore);
-	python::def("SetHighScoreName", &HighScores::SubmitName);
-
-	python::enum_<GameDetails::Difficulty>("difficulty")
-		.value("HARD", GameDetails::HARD)
-		.value("EASY", GameDetails::EASY)
-	;
-
-	ElementGame::InitialisePythonInterface();
-}
-
-PythonInterface::PythonInterface()
-{
-}
-
-PythonInterface::~PythonInterface()
-{
-}
-
-bool PythonInterface::Initialise(const char* path)
-{
-	// Initialise Python.
-	Py_Initialize();
-
-	// Setup the Python search path.
-	const char* python_path = Py_GetPath();
-	char buffer[1024];
-	snprintf(buffer, 1024, "%s%s%s", path, PATH_SEPARATOR, python_path);
-	buffer[1023] = '\0';
-	PySys_SetPath(buffer);
-
-	// Import Rocket.
-	if (!Import("rocket"))
-		return false;
-
-	// Define our game specific interface.
-	initgame();
-
-	return true;
-}
-
-void PythonInterface::Shutdown()
-{
-	Py_Finalize();
-}
-
-bool PythonInterface::Import(const Rocket::Core::String& name)
-{
-	PyObject* module = PyImport_ImportModule(name.CString());
-	if (!module)
-	{
-		PrintError(true);
-		return false;
-	}
-
-	Py_DECREF(module);
-	return true;
-}
-
-// Print the pending python error to stderr, optionally clearing it
-void PythonInterface::PrintError(bool clear_error)
-{
-	// Print the error and restore it to the caller
-	PyObject *type, *value, *traceback;
-	PyErr_Fetch(&type, &value, &traceback);
-	Py_XINCREF(type);
-	Py_XINCREF(value);
-	Py_XINCREF(traceback);
-	PyErr_Restore(type, value, traceback);	
-	PyErr_Print();
-	if (!clear_error)
-		PyErr_Restore(type, value, traceback);
-}

+ 0 - 57
Samples/luainvaders/src/PythonInterface.h

@@ -1,57 +0,0 @@
-/*
- * This source file is part of libRocket, the HTML/CSS Interface Middleware
- *
- * For the latest information, see http://www.librocket.com
- *
- * Copyright (c) 2008-2010 CodePoint Ltd, Shift Technology Ltd
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#ifndef PYTHONINTERFACE_H
-#define PYTHONINTERFACE_H
-
-#include <Rocket/Core/String.h>
-#include <Rocket/Core/Python/Python.h>
-
-/**
-	Creates and maintains the python interface to Invaders.
-
-	@author Lloyd Weehuizen
- */
-
-class PythonInterface
-{
-public:
-	static bool Initialise(const char* python_path);
-	static void Shutdown();
-
-	/// Import a python module
-	static bool Import(const Rocket::Core::String& name);
-
-	/// Print out current errors
-	static void PrintError(bool clear_error = false);
-
-private:
-	PythonInterface();
-	~PythonInterface();
-};
-
-#endif