|
|
|
@ -155,10 +155,11 @@ else()
|
|
|
|
|
cmake_minimum_required(VERSION 2.6)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# Sound setup
|
|
|
|
|
find_package(FFmpeg REQUIRED COMPONENTS AVCODEC AVFORMAT AVUTIL SWSCALE SWRESAMPLE)
|
|
|
|
|
# Required for building the FFmpeg headers
|
|
|
|
|
add_definitions(-D__STDC_CONSTANT_MACROS)
|
|
|
|
|
IF(BUILD_OPENMW OR BUILD_OPENCS)
|
|
|
|
|
# Sound setup
|
|
|
|
|
find_package(FFmpeg REQUIRED COMPONENTS AVCODEC AVFORMAT AVUTIL SWSCALE SWRESAMPLE)
|
|
|
|
|
# Required for building the FFmpeg headers
|
|
|
|
|
add_definitions(-D__STDC_CONSTANT_MACROS)
|
|
|
|
|
|
|
|
|
|
# TinyXML
|
|
|
|
|
option(USE_SYSTEM_TINYXML "Use system TinyXML library instead of internal." OFF)
|
|
|
|
@ -167,6 +168,7 @@ if (USE_SYSTEM_TINYXML)
|
|
|
|
|
add_definitions (-DTIXML_USE_STL)
|
|
|
|
|
include_directories(SYSTEM ${TinyXML_INCLUDE_DIRS})
|
|
|
|
|
endif()
|
|
|
|
|
ENDIF(BUILD_OPENMW OR BUILD_OPENCS)
|
|
|
|
|
|
|
|
|
|
# Platform specific
|
|
|
|
|
if (WIN32)
|
|
|
|
@ -216,77 +218,80 @@ IF(BOOST_STATIC)
|
|
|
|
|
set(Boost_USE_STATIC_LIBS ON)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
find_package(OpenSceneGraph 3.3.4 REQUIRED osgDB osgViewer osgText osgGA osgAnimation osgParticle osgUtil osgFX)
|
|
|
|
|
|
|
|
|
|
include_directories(${OPENSCENEGRAPH_INCLUDE_DIRS})
|
|
|
|
|
|
|
|
|
|
if(OSG_STATIC)
|
|
|
|
|
macro(use_static_osg_plugin_library PLUGIN_NAME)
|
|
|
|
|
set(PLUGIN_NAME_DBG ${PLUGIN_NAME}d ${PLUGIN_NAME}D ${PLUGIN_NAME}_d ${PLUGIN_NAME}_D ${PLUGIN_NAME}_debug ${PLUGIN_NAME})
|
|
|
|
|
|
|
|
|
|
# For now, users wishing to do a static build will need to pass the path to where the plugins reside
|
|
|
|
|
# More clever logic would need to deduce the path, probably installed under <OpenSceneGraph>/lib/osgPlugins-<X.X.X>
|
|
|
|
|
include(FindPkgMacros)
|
|
|
|
|
find_library(${PLUGIN_NAME}_LIBRARY_REL NAMES ${PLUGIN_NAME} HINTS ${OSG_PLUGIN_LIB_SEARCH_PATH})
|
|
|
|
|
find_library(${PLUGIN_NAME}_LIBRARY_DBG NAMES ${PLUGIN_NAME_DBG} HINTS ${OSG_PLUGIN_LIB_SEARCH_PATH})
|
|
|
|
|
make_library_set(${PLUGIN_NAME}_LIBRARY)
|
|
|
|
|
|
|
|
|
|
if("${${PLUGIN_NAME}_LIBRARY}" STREQUAL "")
|
|
|
|
|
message(FATAL_ERROR "Unable to find static OpenSceneGraph plugin: ${PLUGIN_NAME}")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
set(OPENSCENEGRAPH_LIBRARIES ${OPENSCENEGRAPH_LIBRARIES} ${${PLUGIN_NAME}_LIBRARY})
|
|
|
|
|
endmacro()
|
|
|
|
|
|
|
|
|
|
add_definitions(-DOSG_LIBRARY_STATIC)
|
|
|
|
|
|
|
|
|
|
set(PLUGIN_LIST
|
|
|
|
|
osgdb_png # depends on libpng, zlib
|
|
|
|
|
osgdb_tga
|
|
|
|
|
osgdb_dds
|
|
|
|
|
osgdb_jpeg # depends on libjpeg
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
foreach(PLUGIN ${PLUGIN_LIST})
|
|
|
|
|
use_static_osg_plugin_library(${PLUGIN})
|
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
|
|
# OSG static plugins need to linked against their respective dependencies
|
|
|
|
|
set(PLUGIN_DEPS_LIST
|
|
|
|
|
PNG # needed by osgdb_png
|
|
|
|
|
ZLIB # needed by osgdb_png
|
|
|
|
|
JPEG # needed by osgdb_jpeg
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
macro(use_static_osg_plugin_dep DEPENDENCY)
|
|
|
|
|
find_package(${DEPENDENCY} REQUIRED)
|
|
|
|
|
|
|
|
|
|
set(OPENSCENEGRAPH_LIBRARIES ${OPENSCENEGRAPH_LIBRARIES} ${${DEPENDENCY}_LIBRARIES})
|
|
|
|
|
endmacro()
|
|
|
|
|
foreach(DEPENDENCY ${PLUGIN_DEPS_LIST})
|
|
|
|
|
use_static_osg_plugin_dep(${DEPENDENCY})
|
|
|
|
|
endforeach()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if(QT_STATIC)
|
|
|
|
|
if(WIN32)
|
|
|
|
|
if(DESIRED_QT_VERSION MATCHES 4)
|
|
|
|
|
# QtCore needs WSAAsyncSelect from Ws2_32.lib
|
|
|
|
|
set(QT_QTCORE_LIBRARY ${QT_QTCORE_LIBRARY} Ws2_32.lib)
|
|
|
|
|
message("QT_QTCORE_LIBRARY: ${QT_QTCORE_LIBRARY}")
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
find_package(MyGUI REQUIRED)
|
|
|
|
|
if (${MYGUI_VERSION} VERSION_LESS "3.2.1")
|
|
|
|
|
message(FATAL_ERROR "OpenMW requires MyGUI 3.2.1 or later, please install the latest version from http://mygui.info")
|
|
|
|
|
endif()
|
|
|
|
|
IF(BUILD_OPENMW OR BUILD_OPENCS)
|
|
|
|
|
find_package(OpenSceneGraph 3.3.4 REQUIRED osgDB osgViewer osgText osgGA osgAnimation osgParticle osgUtil osgFX)
|
|
|
|
|
|
|
|
|
|
include_directories(${OPENSCENEGRAPH_INCLUDE_DIRS})
|
|
|
|
|
|
|
|
|
|
if(OSG_STATIC)
|
|
|
|
|
macro(use_static_osg_plugin_library PLUGIN_NAME)
|
|
|
|
|
set(PLUGIN_NAME_DBG ${PLUGIN_NAME}d ${PLUGIN_NAME}D ${PLUGIN_NAME}_d ${PLUGIN_NAME}_D ${PLUGIN_NAME}_debug ${PLUGIN_NAME})
|
|
|
|
|
|
|
|
|
|
# For now, users wishing to do a static build will need to pass the path to where the plugins reside
|
|
|
|
|
# More clever logic would need to deduce the path, probably installed under <OpenSceneGraph>/lib/osgPlugins-<X.X.X>
|
|
|
|
|
include(FindPkgMacros)
|
|
|
|
|
find_library(${PLUGIN_NAME}_LIBRARY_REL NAMES ${PLUGIN_NAME} HINTS ${OSG_PLUGIN_LIB_SEARCH_PATH})
|
|
|
|
|
find_library(${PLUGIN_NAME}_LIBRARY_DBG NAMES ${PLUGIN_NAME_DBG} HINTS ${OSG_PLUGIN_LIB_SEARCH_PATH})
|
|
|
|
|
make_library_set(${PLUGIN_NAME}_LIBRARY)
|
|
|
|
|
|
|
|
|
|
if("${${PLUGIN_NAME}_LIBRARY}" STREQUAL "")
|
|
|
|
|
message(FATAL_ERROR "Unable to find static OpenSceneGraph plugin: ${PLUGIN_NAME}")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
set(OPENSCENEGRAPH_LIBRARIES ${OPENSCENEGRAPH_LIBRARIES} ${${PLUGIN_NAME}_LIBRARY})
|
|
|
|
|
endmacro()
|
|
|
|
|
|
|
|
|
|
add_definitions(-DOSG_LIBRARY_STATIC)
|
|
|
|
|
|
|
|
|
|
set(PLUGIN_LIST
|
|
|
|
|
osgdb_png # depends on libpng, zlib
|
|
|
|
|
osgdb_tga
|
|
|
|
|
osgdb_dds
|
|
|
|
|
osgdb_jpeg # depends on libjpeg
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
foreach(PLUGIN ${PLUGIN_LIST})
|
|
|
|
|
use_static_osg_plugin_library(${PLUGIN})
|
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
|
|
# OSG static plugins need to linked against their respective dependencies
|
|
|
|
|
set(PLUGIN_DEPS_LIST
|
|
|
|
|
PNG # needed by osgdb_png
|
|
|
|
|
ZLIB # needed by osgdb_png
|
|
|
|
|
JPEG # needed by osgdb_jpeg
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
macro(use_static_osg_plugin_dep DEPENDENCY)
|
|
|
|
|
find_package(${DEPENDENCY} REQUIRED)
|
|
|
|
|
|
|
|
|
|
set(OPENSCENEGRAPH_LIBRARIES ${OPENSCENEGRAPH_LIBRARIES} ${${DEPENDENCY}_LIBRARIES})
|
|
|
|
|
endmacro()
|
|
|
|
|
foreach(DEPENDENCY ${PLUGIN_DEPS_LIST})
|
|
|
|
|
use_static_osg_plugin_dep(${DEPENDENCY})
|
|
|
|
|
endforeach()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if(QT_STATIC)
|
|
|
|
|
if(WIN32)
|
|
|
|
|
if(DESIRED_QT_VERSION MATCHES 4)
|
|
|
|
|
# QtCore needs WSAAsyncSelect from Ws2_32.lib
|
|
|
|
|
set(QT_QTCORE_LIBRARY ${QT_QTCORE_LIBRARY} Ws2_32.lib)
|
|
|
|
|
message("QT_QTCORE_LIBRARY: ${QT_QTCORE_LIBRARY}")
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
find_package(MyGUI REQUIRED)
|
|
|
|
|
if (${MYGUI_VERSION} VERSION_LESS "3.2.1")
|
|
|
|
|
message(FATAL_ERROR "OpenMW requires MyGUI 3.2.1 or later, please install the latest version from http://mygui.info")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
find_package(SDL2 REQUIRED)
|
|
|
|
|
find_package(OpenAL REQUIRED)
|
|
|
|
|
find_package(Bullet 283 REQUIRED COMPONENTS BulletCollision LinearMath)
|
|
|
|
|
ENDIF(BUILD_OPENMW OR BUILD_OPENCS)
|
|
|
|
|
|
|
|
|
|
find_package(Boost REQUIRED COMPONENTS ${BOOST_COMPONENTS})
|
|
|
|
|
find_package(SDL2 REQUIRED)
|
|
|
|
|
find_package(OpenAL REQUIRED)
|
|
|
|
|
find_package(Bullet 283 REQUIRED COMPONENTS BulletCollision LinearMath)
|
|
|
|
|
|
|
|
|
|
include_directories("."
|
|
|
|
|
SYSTEM
|
|
|
|
@ -556,11 +561,13 @@ if(WIN32)
|
|
|
|
|
endif(WIN32)
|
|
|
|
|
|
|
|
|
|
# Extern
|
|
|
|
|
IF(BUILD_OPENMW OR BUILD_OPENCS)
|
|
|
|
|
add_subdirectory (extern/osg-ffmpeg-videoplayer)
|
|
|
|
|
add_subdirectory (extern/oics)
|
|
|
|
|
if (USE_QT)
|
|
|
|
|
add_subdirectory (extern/osgQt)
|
|
|
|
|
endif()
|
|
|
|
|
ENDIF(BUILD_OPENMW OR BUILD_OPENCS)
|
|
|
|
|
|
|
|
|
|
# Components
|
|
|
|
|
add_subdirectory (components)
|
|
|
|
|