|
|
@@ -4,7 +4,7 @@
|
|
|
|
|
|
cmake_minimum_required(VERSION 2.6)
|
|
|
|
|
|
-project(libRocket CXX)
|
|
|
+project(libRocket C CXX)
|
|
|
|
|
|
set(LIBROCKET_VERSION_MAJOR 1)
|
|
|
set(LIBROCKET_VERSION_MINOR 2)
|
|
|
@@ -36,11 +36,15 @@ endif()
|
|
|
|
|
|
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
|
|
|
option(BUILD_PYTHON_BINDINGS "Build python bindings" OFF)
|
|
|
+option(BUILD_SAMPLES "Build samples" OFF)
|
|
|
|
|
|
if(NOT BUILD_SHARED_LIBS)
|
|
|
add_definitions(-DSTATIC_LIB)
|
|
|
endif()
|
|
|
|
|
|
+if(CMAKE_COMPILER_IS_GNUCXX)
|
|
|
+ add_definitions(-Wno-conversion-null)
|
|
|
+endif()
|
|
|
|
|
|
#===================================
|
|
|
# Find dependencies ================
|
|
|
@@ -75,6 +79,7 @@ if(BUILD_PYTHON_BINDINGS)
|
|
|
|
|
|
endif()
|
|
|
|
|
|
+
|
|
|
#===================================
|
|
|
# Setup paths ======================
|
|
|
#===================================
|
|
|
@@ -88,6 +93,7 @@ include_directories(
|
|
|
# Include list of source files
|
|
|
include(FileList)
|
|
|
|
|
|
+
|
|
|
#===================================
|
|
|
# Build libraries ==================
|
|
|
#===================================
|
|
|
@@ -136,7 +142,7 @@ endif()
|
|
|
|
|
|
|
|
|
#===================================
|
|
|
-# Link libraries====================
|
|
|
+# Link libraries ===================
|
|
|
#===================================
|
|
|
|
|
|
target_link_libraries(RocketCore ${CORE_LINK_LIBS})
|
|
|
@@ -147,6 +153,97 @@ if(BUILD_PYTHON_BINDINGS)
|
|
|
endif()
|
|
|
|
|
|
|
|
|
+#===================================
|
|
|
+# Build samples ====================
|
|
|
+#===================================
|
|
|
+
|
|
|
+# Build and link the samples
|
|
|
+macro(bl_sample NAME)
|
|
|
+ add_executable(${NAME} ${${NAME}_SRC_FILES}
|
|
|
+ ${${NAME}_HDR_FILES}
|
|
|
+ )
|
|
|
+
|
|
|
+ target_link_libraries(${NAME} shell)
|
|
|
+endmacro()
|
|
|
+
|
|
|
+if(BUILD_SAMPLES)
|
|
|
+ include(SampleFileList)
|
|
|
+
|
|
|
+ find_package(OpenGL REQUIRED)
|
|
|
+
|
|
|
+ if(OPENGL_FOUND)
|
|
|
+ include_directories(${OPENGL_INCLUDE_DIR})
|
|
|
+ endif()
|
|
|
+
|
|
|
+ set(SAMPLES_DIR opt/Rocket/Samples)
|
|
|
+
|
|
|
+ # The samples use the shell library
|
|
|
+ include_directories(${PROJECT_SOURCE_DIR}/Samples/shell/include)
|
|
|
+
|
|
|
+ # Deal with platform specific sources for sample shell
|
|
|
+ if(WIN32)
|
|
|
+ list(APPEND samples basic_directx)
|
|
|
+ list(APPEND shell_SRC_FILES
|
|
|
+ ${PROJECT_SOURCE_DIR}/Samples/shell/src/win32/ShellWin32.cpp
|
|
|
+ ${PROJECT_SOURCE_DIR}/Samples/shell/src/win32/InputWin32.cpp
|
|
|
+ )
|
|
|
+ list(APPEND shell_HDR_FILES
|
|
|
+ ${PROJECT_SOURCE_DIR}/Samples/shell/include/win32/InputWin32.h
|
|
|
+ )
|
|
|
+ elseif(APPLE)
|
|
|
+ list(APPEND shell_SRC_FILES
|
|
|
+ ${PROJECT_SOURCE_DIR}/Samples/shell/src/macosx/ShellMacOSX.cpp
|
|
|
+ ${PROJECT_SOURCE_DIR}/Samples/shell/src/macosx/InputMacOSX.cpp
|
|
|
+ )
|
|
|
+ list(APPEND shell_HDR_FILES
|
|
|
+ ${PROJECT_SOURCE_DIR}/Samples/shell/include/macosx/InputMacOSX.h
|
|
|
+ )
|
|
|
+ else()
|
|
|
+ list(APPEND shell_SRC_FILES
|
|
|
+ ${PROJECT_SOURCE_DIR}/Samples/shell/src/x11/ShellX11.cpp
|
|
|
+ ${PROJECT_SOURCE_DIR}/Samples/shell/src/x11/InputX11.cpp
|
|
|
+ )
|
|
|
+ list(APPEND shell_HDR_FILES
|
|
|
+ ${PROJECT_SOURCE_DIR}/Samples/shell/include/x11/InputX11.h
|
|
|
+ )
|
|
|
+ endif()
|
|
|
+
|
|
|
+ # Build and install sample shell library
|
|
|
+ add_library(shell ${shell_SRC_FILES}
|
|
|
+ ${shell_HDR_FILES}
|
|
|
+ )
|
|
|
+
|
|
|
+ target_link_libraries(shell RocketCore RocketControls RocketDebugger ${OPENGL_LIBRARIES})
|
|
|
+
|
|
|
+ install(TARGETS shell
|
|
|
+ LIBRARY DESTINATION lib
|
|
|
+ ARCHIVE DESTINATION lib
|
|
|
+ )
|
|
|
+
|
|
|
+ list(APPEND samples treeview customlog drag loaddocument)
|
|
|
+
|
|
|
+ # Build and install the basic samples
|
|
|
+ foreach(sample ${samples})
|
|
|
+ bl_sample(${sample})
|
|
|
+
|
|
|
+ # The samples always set this as their current working directory
|
|
|
+ install(DIRECTORY DESTINATION ${SAMPLES_DIR}/basic/${sample})
|
|
|
+
|
|
|
+ install(TARGETS ${sample}
|
|
|
+ RUNTIME DESTINATION ${SAMPLES_DIR}
|
|
|
+ )
|
|
|
+ endforeach()
|
|
|
+
|
|
|
+ # Build and install invaders sample
|
|
|
+ bl_sample(invaders)
|
|
|
+ install(DIRECTORY DESTINATION ${SAMPLES_DIR}/invaders)
|
|
|
+ install(TARGETS invaders
|
|
|
+ RUNTIME DESTINATION ${SAMPLES_DIR}/invaders
|
|
|
+ )
|
|
|
+
|
|
|
+endif()
|
|
|
+
|
|
|
+
|
|
|
#===================================
|
|
|
# Installation =====================
|
|
|
#===================================
|
|
|
@@ -164,3 +261,18 @@ else()
|
|
|
PATTERN "Python" 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()
|