diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b9f5ad78..cfd34c261 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) +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}) + 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}) + 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 /lib/osgPlugins- - 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) + # 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 /lib/osgPlugins- + 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() + 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() + set(OPENSCENEGRAPH_LIBRARIES ${OPENSCENEGRAPH_LIBRARIES} ${${PLUGIN_NAME}_LIBRARY}) + endmacro() - add_definitions(-DOSG_LIBRARY_STATIC) + add_definitions(-DOSG_LIBRARY_STATIC) - set(PLUGIN_LIST - osgdb_png # depends on libpng, zlib - osgdb_tga - osgdb_dds - osgdb_jpeg # depends on libjpeg - ) + 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() + 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 - ) + # 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) + 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() + 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() + 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(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) diff --git a/components/CMakeLists.txt b/components/CMakeLists.txt index f65117ab3..bb27457fe 100644 --- a/components/CMakeLists.txt +++ b/components/CMakeLists.txt @@ -39,7 +39,8 @@ add_component_dir (bsa add_component_dir (vfs manager archive bsaarchive filesystemarchive registerarchives ) - + +IF(BUILD_OPENMW OR BUILD_OPENCS) add_component_dir (resource scenemanager keyframemanager imagemanager bulletshapemanager bulletshape niffilemanager objectcache multiobjectcache resourcesystem resourcemanager ) @@ -64,6 +65,7 @@ add_component_dir (nifosg add_component_dir (nifbullet bulletnifloader ) +ENDIF(BUILD_OPENMW OR BUILD_OPENCS) add_component_dir (to_utf8 to_utf8 @@ -120,7 +122,8 @@ add_component_dir (terrain add_component_dir (loadinglistener loadinglistener ) - + +IF(BUILD_OPENMW OR BUILD_OPENCS) add_component_dir (myguiplatform myguirendermanager myguidatamanager myguiplatform myguitexture myguiloglistener additivelayer scalinglayer ) @@ -136,6 +139,7 @@ add_component_dir (fontloader add_component_dir (sdlutil sdlgraphicswindow imagetosurface sdlinputwrapper sdlvideowrapper OISCompat events sdlcursormanager ) +ENDIF(BUILD_OPENMW OR BUILD_OPENCS) add_component_dir (version version @@ -155,6 +159,7 @@ add_component_dir (fallback set (ESM_UI ${CMAKE_SOURCE_DIR}/files/ui/contentselector.ui ) +IF(BUILD_OPENMW OR BUILD_OPENCS) if (USE_QT) add_component_qt_dir (contentselector model/modelitem model/esmfile @@ -181,6 +186,7 @@ if (USE_QT) QT5_WRAP_CPP(MOC_SRCS ${COMPONENT_MOC_FILES}) endif() endif() +ENDIF(BUILD_OPENMW OR BUILD_OPENCS) if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64" AND NOT APPLE)