2017-09-10 18:30:10 +01:00
# Apps and tools
2018-11-14 10:01:12 +01:00
option ( BUILD_OPENMW "Build OpenMW" ON )
option ( BUILD_LAUNCHER "Build Launcher" ON )
option ( BUILD_WIZARD "Build Installation Wizard" ON )
option ( BUILD_MWINIIMPORTER "Build MWiniImporter" ON )
option ( BUILD_OPENCS "Build OpenMW Construction Set" ON )
option ( BUILD_ESSIMPORTER "Build ESS (Morrowind save game) importer" ON )
option ( BUILD_BSATOOL "Build BSA extractor" ON )
option ( BUILD_ESMTOOL "Build ESM inspector" ON )
option ( BUILD_NIFTEST "Build nif file tester" ON )
option ( BUILD_MYGUI_PLUGIN "Build MyGUI plugin for OpenMW resources, to use with MyGUI tools" ON )
option ( BUILD_DOCS "Build documentation." OFF )
2017-09-10 18:30:10 +01:00
option ( BUILD_WITH_CODE_COVERAGE "Enable code coverage with gconv" OFF )
2018-11-14 10:01:12 +01:00
option ( BUILD_UNITTESTS "Enable Unittests with Google C++ Unittest" OFF )
2017-09-10 18:30:10 +01:00
if ( NOT BUILD_LAUNCHER AND NOT BUILD_OPENCS AND NOT BUILD_WIZARD )
set ( USE_QT FALSE )
else ( )
set ( USE_QT TRUE )
endif ( )
if ( USE_QT )
set ( DESIRED_QT_VERSION 4 CACHE STRING "The QT version OpenMW should use (4 or 5)" )
set_property ( CACHE DESIRED_QT_VERSION PROPERTY STRINGS 4 5 )
endif ( )
2017-10-25 21:55:58 +02:00
# set the minimum required version across the board
cmake_minimum_required ( VERSION 3.1.0 )
2017-09-10 18:30:10 +01:00
2010-03-04 11:24:28 +01:00
project ( OpenMW )
2015-02-14 23:34:43 -06:00
# If the user doesn't supply a CMAKE_BUILD_TYPE via command line, choose one for them.
IF ( NOT CMAKE_BUILD_TYPE )
SET ( CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
2015-08-19 11:09:38 +02:00
" C h o o s e t h e t y p e o f b u i l d , o p t i o n s a r e : None ( CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used ) D e b u g R e l e a s e R e l W i t h D e b I n f o M i n S i z e R e l . "
2015-02-14 23:34:43 -06:00
F O R C E )
2015-08-19 11:09:38 +02:00
set_property ( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS None Debug Release RelWithDebInfo MinSizeRel )
2015-02-14 23:34:43 -06:00
ENDIF ( )
2012-01-29 23:28:05 +04:00
if ( APPLE )
set ( APP_BUNDLE_NAME "${CMAKE_PROJECT_NAME}.app" )
set ( APP_BUNDLE_DIR "${OpenMW_BINARY_DIR}/${APP_BUNDLE_NAME}" )
endif ( APPLE )
2011-03-27 23:28:46 +04:00
2011-10-22 13:55:06 +02:00
set ( CMAKE_MODULE_PATH ${ CMAKE_SOURCE_DIR } /cmake/ )
2016-01-05 15:37:17 +03:00
if ( ANDROID )
set ( CMAKE_FIND_ROOT_PATH ${ OPENMW_DEPENDENCIES_DIR } "${CMAKE_FIND_ROOT_PATH}" )
set ( OSG_PLUGINS_DIR CACHE STRING "" )
endif ( )
2011-07-08 14:24:09 +02:00
# Version
2014-02-19 14:19:08 +01:00
message ( STATUS "Configuring OpenMW..." )
2014-02-19 13:43:14 +01:00
set ( OPENMW_VERSION_MAJOR 0 )
2018-11-14 16:32:24 +01:00
set ( OPENMW_VERSION_MINOR 46 )
2015-11-09 12:03:27 +01:00
set ( OPENMW_VERSION_RELEASE 0 )
2014-02-19 13:43:14 +01:00
2014-02-19 14:19:08 +01:00
set ( OPENMW_VERSION_COMMITHASH "" )
set ( OPENMW_VERSION_TAGHASH "" )
2018-12-12 10:27:09 +01:00
set ( OPENMW_VERSION_COMMITDATE "" )
2014-02-19 14:19:08 +01:00
2014-02-19 13:43:14 +01:00
set ( OPENMW_VERSION "${OPENMW_VERSION_MAJOR}.${OPENMW_VERSION_MINOR}.${OPENMW_VERSION_RELEASE}" )
2014-12-30 18:37:33 -03:00
set ( GIT_CHECKOUT FALSE )
2014-02-19 13:43:14 +01:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /.git )
2017-03-05 19:28:29 +01:00
find_package ( Git )
if ( GIT_FOUND )
set ( GIT_CHECKOUT TRUE )
else ( GIT_FOUND )
message ( WARNING "Git executable not found" )
endif ( GIT_FOUND )
2011-07-08 14:24:09 +02:00
2018-12-17 16:30:12 +01:00
if ( GIT_FOUND )
execute_process (
C O M M A N D $ { G I T _ E X E C U T A B L E } l o g - 1 - - f o r m a t = ' % a I '
W O R K I N G _ D I R E C T O R Y $ { P R O J E C T _ S O U R C E _ D I R }
R E S U L T _ V A R I A B L E E X I T C O D E 3
O U T P U T _ V A R I A B L E O P E N M W _ V E R S I O N _ C O M M I T D A T E
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
if ( NOT EXITCODE3 )
string ( SUBSTRING ${ OPENMW_VERSION_COMMITDATE } 1 10 OPENMW_VERSION_COMMITDATE )
endif ( NOT EXITCODE3 )
endif ( GIT_FOUND )
2017-03-05 19:28:29 +01:00
endif ( EXISTS ${ PROJECT_SOURCE_DIR } /.git )
2011-07-08 14:24:09 +02:00
2014-02-19 14:19:08 +01:00
# Macros
include ( OpenMWMacros )
2011-07-08 14:24:09 +02:00
2011-07-08 14:52:34 +02:00
# doxygen main page
2014-10-12 11:28:56 +02:00
configure_file ( "${OpenMW_SOURCE_DIR}/docs/mainpage.hpp.cmake" "${OpenMW_BINARY_DIR}/docs/mainpage.hpp" )
2011-07-08 14:52:34 +02:00
2012-04-05 13:01:09 +02:00
option ( MYGUI_STATIC "Link static build of Mygui into the binaries" FALSE )
2012-12-10 10:32:00 +01:00
option ( BOOST_STATIC "Link static build of Boost into the binaries" FALSE )
2013-06-18 14:31:47 +02:00
option ( SDL2_STATIC "Link static build of SDL into the binaries" FALSE )
2015-07-17 00:56:15 -05:00
option ( OSG_STATIC "Link static build of OpenSceneGraph into the binaries" FALSE )
option ( QT_STATIC "Link static build of QT into the binaries" FALSE )
2012-03-17 20:03:37 +01:00
2014-03-16 23:40:59 +01:00
option ( OPENMW_UNITY_BUILD "Use fewer compilation units to speed up compile time" FALSE )
2016-07-07 17:27:08 +02:00
# what is necessary to build documentation
IF ( BUILD_DOCS )
# Builds the documentation.
FIND_PACKAGE ( Sphinx REQUIRED )
FIND_PACKAGE ( Doxygen REQUIRED )
ENDIF ( )
2010-08-13 17:11:03 +02:00
2012-07-28 01:53:50 +04:00
# OS X deployment
option ( OPENMW_OSX_DEPLOYMENT OFF )
2015-06-08 15:41:39 +02:00
if ( MSVC )
option ( OPENMW_MP_BUILD "Build OpenMW with /MP flag" OFF )
option ( OPENMW_LTO_BUILD "Build OpenMW with Link-Time Optimization (Needs ~2GB of RAM)" OFF )
endif ( )
2015-12-02 17:33:55 +01:00
# Set up common paths
if ( APPLE )
set ( MORROWIND_DATA_FILES "./data" CACHE PATH "location of Morrowind data files" )
2016-10-28 15:39:27 +02:00
set ( OPENMW_RESOURCE_FILES "../Resources/resources" CACHE PATH "location of OpenMW resources files" )
2015-12-02 17:33:55 +01:00
elseif ( UNIX )
# Paths
SET ( BINDIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Where to install binaries" )
SET ( LIBDIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE PATH "Where to install libraries" )
SET ( DATAROOTDIR "${CMAKE_INSTALL_PREFIX}/share" CACHE PATH "Sets the root of data directories to a non-default location" )
SET ( GLOBAL_DATA_PATH "${DATAROOTDIR}/games/" CACHE PATH "Set data path prefix" )
SET ( DATADIR "${GLOBAL_DATA_PATH}/openmw" CACHE PATH "Sets the openmw data directories to a non-default location" )
SET ( ICONDIR "${DATAROOTDIR}/pixmaps" CACHE PATH "Set icon dir" )
SET ( LICDIR "${DATAROOTDIR}/licenses/openmw" CACHE PATH "Sets the openmw license directory to a non-default location." )
IF ( "${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr" )
SET ( GLOBAL_CONFIG_PATH "/etc/" CACHE PATH "Set config dir prefix" )
ELSE ( )
SET ( GLOBAL_CONFIG_PATH "${CMAKE_INSTALL_PREFIX}/etc/" CACHE PATH "Set config dir prefix" )
ENDIF ( )
SET ( SYSCONFDIR "${GLOBAL_CONFIG_PATH}/openmw" CACHE PATH "Set config dir" )
set ( MORROWIND_DATA_FILES "${DATADIR}/data" CACHE PATH "location of Morrowind data files" )
set ( OPENMW_RESOURCE_FILES "${DATADIR}/resources" CACHE PATH "location of OpenMW resources files" )
else ( )
set ( MORROWIND_DATA_FILES "data" CACHE PATH "location of Morrowind data files" )
set ( OPENMW_RESOURCE_FILES "resources" CACHE PATH "location of OpenMW resources files" )
endif ( APPLE )
2010-09-19 02:01:01 +02:00
if ( WIN32 )
option ( USE_DEBUG_CONSOLE "whether a debug console should be enabled for debug builds, if false debug output is redirected to Visual Studio output" ON )
endif ( )
2015-12-24 11:33:59 +01:00
# Dependencies
2018-03-27 20:20:40 +02:00
find_package ( OpenGL REQUIRED )
2015-12-24 11:33:59 +01:00
if ( USE_QT )
message ( STATUS "Using Qt${DESIRED_QT_VERSION}" )
if ( DESIRED_QT_VERSION MATCHES 4 )
find_package ( Qt4 REQUIRED COMPONENTS QtCore QtGui QtNetwork QtOpenGL )
else ( )
find_package ( Qt5Widgets REQUIRED )
find_package ( Qt5Core REQUIRED )
find_package ( Qt5Network REQUIRED )
find_package ( Qt5OpenGL REQUIRED )
# Instruct CMake to run moc automatically when needed.
#set(CMAKE_AUTOMOC ON)
endif ( )
endif ( )
2010-08-13 17:11:03 +02:00
# Sound setup
2018-10-20 11:09:52 +04:00
# Require at least ffmpeg 3.2 for now
SET ( FFVER_OK FALSE )
2016-05-09 17:24:17 +03:00
find_package ( FFmpeg REQUIRED COMPONENTS AVCODEC AVFORMAT AVUTIL SWSCALE SWRESAMPLE )
2018-10-20 11:09:52 +04:00
if ( FFmpeg_FOUND )
SET ( FFVER_OK TRUE )
# Can not detect FFmpeg version on Windows for now
if ( NOT WIN32 )
if ( FFmpeg_AVFORMAT_VERSION VERSION_LESS "57.56.100" )
message ( STATUS "libavformat is too old! (${FFmpeg_AVFORMAT_VERSION}, wanted 57.56.100)" )
set ( FFVER_OK FALSE )
endif ( )
if ( FFmpeg_AVCODEC_VERSION VERSION_LESS "57.64.100" )
message ( STATUS "libavcodec is too old! (${FFmpeg_AVCODEC_VERSION}, wanted 57.64.100)" )
set ( FFVER_OK FALSE )
endif ( )
if ( FFmpeg_AVUTIL_VERSION VERSION_LESS "55.34.100" )
message ( STATUS "libavutil is too old! (${FFmpeg_AVUTIL_VERSION}, wanted 55.34.100)" )
set ( FFVER_OK FALSE )
endif ( )
if ( FFmpeg_SWSCALE_VERSION VERSION_LESS "4.2.100" )
message ( STATUS "libswscale is too old! (${FFmpeg_SWSCALE_VERSION}, wanted 4.2.100)" )
set ( FFVER_OK FALSE )
endif ( )
if ( FFmpeg_SWRESAMPLE_VERSION VERSION_LESS "2.3.100" )
message ( STATUS "libswresample is too old! (${FFmpeg_SWRESAMPLE_VERSION}, wanted 2.3.100)" )
set ( FFVER_OK FALSE )
endif ( )
endif ( )
endif ( )
if ( NOT FFmpeg_FOUND )
message ( FATAL_ERROR "FFmpeg was not found" )
endif ( )
if ( NOT FFVER_OK )
message ( FATAL_ERROR "FFmpeg version is too old, 3.2 is required" )
endif ( )
if ( WIN32 )
message ( "Can not detect FFmpeg version, at least the 3.2 is required" )
endif ( )
2015-06-28 05:53:03 +02:00
# Required for building the FFmpeg headers
add_definitions ( -D__STDC_CONSTANT_MACROS )
2010-08-13 22:30:22 +02:00
2019-07-28 21:04:37 +03:00
# Reqiuired for unity build
add_definitions ( -DMYGUI_DONT_REPLACE_NULLPTR )
2013-09-13 15:11:17 +02:00
# TinyXML
option ( USE_SYSTEM_TINYXML "Use system TinyXML library instead of internal." OFF )
2016-06-12 21:03:33 +03:00
if ( USE_SYSTEM_TINYXML )
find_package ( TinyXML REQUIRED )
2013-09-14 13:33:49 +02:00
add_definitions ( -DTIXML_USE_STL )
2016-06-12 21:03:33 +03:00
include_directories ( SYSTEM ${ TinyXML_INCLUDE_DIRS } )
2013-09-13 15:11:17 +02:00
endif ( )
2010-08-13 22:30:22 +02:00
2010-03-04 11:24:28 +01:00
# Platform specific
if ( WIN32 )
2013-08-06 18:55:17 +02:00
if ( NOT MINGW )
2012-03-26 00:12:00 +03:00
set ( Boost_USE_STATIC_LIBS ON )
2010-07-04 20:17:10 -07:00
add_definitions ( -DBOOST_ALL_NO_LIB )
2013-08-06 18:55:17 +02:00
endif ( NOT MINGW )
2014-01-04 07:41:23 +02:00
# Suppress WinMain(), provided by SDL
add_definitions ( -DSDL_MAIN_HANDLED )
2015-06-08 15:41:39 +02:00
# Get rid of useless crud from windows.h
add_definitions ( -DNOMINMAX -DWIN32_LEAN_AND_MEAN )
2010-08-30 02:12:54 +01:00
endif ( )
2010-03-04 11:24:28 +01:00
2016-06-12 14:27:45 +03:00
if ( NOT WIN32 AND BUILD_WIZARD ) # windows users can just run the morrowind installer
find_package ( LIBUNSHIELD REQUIRED ) # required only for non win32 when building openmw-wizard
set ( OPENMW_USE_UNSHIELD TRUE )
endif ( )
2012-03-28 21:40:06 +02:00
# Fix for not visible pthreads functions for linker with glibc 2.15
2012-03-19 20:54:30 +01:00
if ( UNIX AND NOT APPLE )
2012-12-10 10:32:00 +01:00
find_package ( Threads )
2012-03-19 20:54:30 +01:00
endif ( )
2014-03-05 17:08:58 +01:00
# Look for stdint.h
include ( CheckIncludeFile )
check_include_file ( stdint.h HAVE_STDINT_H )
if ( NOT HAVE_STDINT_H )
unset ( HAVE_STDINT_H CACHE )
message ( FATAL_ERROR "stdint.h was not found" )
endif ( )
2012-07-22 14:41:23 +02:00
2018-02-27 16:18:42 +00:00
find_package ( OpenSceneGraph 3.3.4 REQUIRED osgDB osgViewer osgText osgGA osgParticle osgUtil osgFX osgShadow )
2019-03-09 17:19:54 +03:00
include_directories ( SYSTEM ${ OPENSCENEGRAPH_INCLUDE_DIRS } )
2015-02-17 17:08:55 +01:00
2016-10-08 19:20:10 +02:00
set ( USED_OSG_PLUGINS
o s g d b _ b m p
o s g d b _ d d s
2019-03-10 01:08:11 +03:00
o s g d b _ f r e e t y p e
2016-10-08 19:20:10 +02:00
o s g d b _ j p e g
o s g d b _ o s g
o s g d b _ p n g
o s g d b _ s e r i a l i z e r s _ o s g
o s g d b _ t g a
)
2018-12-13 02:08:35 +00:00
set ( OSGPlugins_LIB_DIR "" )
foreach ( OSGDB_LIB ${ OSGDB_LIBRARY } )
# Skip library type names
2018-12-14 14:30:56 +00:00
if ( EXISTS ${ OSGDB_LIB } AND NOT IS_DIRECTORY ${ OSGDB_LIB } )
2018-12-13 02:08:35 +00:00
get_filename_component ( OSG_LIB_DIR ${ OSGDB_LIB } DIRECTORY )
list ( APPEND OSGPlugins_LIB_DIR "${OSG_LIB_DIR}/osgPlugins-${OPENSCENEGRAPH_VERSION}" )
endif ( )
endforeach ( OSGDB_LIB )
2016-08-16 02:23:04 +03:00
2015-07-17 00:56:15 -05:00
if ( OSG_STATIC )
2016-08-16 02:23:04 +03:00
add_definitions ( -DOSG_LIBRARY_STATIC )
2015-07-17 00:56:15 -05:00
2016-10-08 19:20:10 +02:00
find_package ( OSGPlugins REQUIRED COMPONENTS ${ USED_OSG_PLUGINS } )
2016-08-16 02:23:04 +03:00
list ( APPEND OPENSCENEGRAPH_LIBRARIES ${ OSGPlugins_LIBRARIES } )
2015-07-17 00:56:15 -05:00
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 ( )
2016-10-10 15:59:59 +02:00
2019-01-16 20:47:59 +01:00
set ( BOOST_COMPONENTS system filesystem program_options iostreams )
2016-10-10 15:59:59 +02:00
if ( WIN32 )
2019-01-16 20:47:59 +01:00
set ( BOOST_COMPONENTS ${ BOOST_COMPONENTS } locale zlib )
2016-10-10 15:59:59 +02:00
endif ( WIN32 )
IF ( BOOST_STATIC )
set ( Boost_USE_STATIC_LIBS ON )
endif ( )
2017-02-07 18:05:24 +01:00
set ( REQUIRED_BULLET_VERSION 286 ) # Bullet 286 required due to runtime bugfixes for btCapsuleShape
2017-02-07 20:40:07 +01:00
if ( DEFINED ENV{TRAVIS_BRANCH} OR DEFINED ENV{APPVEYOR} )
2017-02-07 18:05:24 +01:00
set ( REQUIRED_BULLET_VERSION 283 ) # but for build testing, 283 is fine
endif ( )
2012-07-22 14:41:23 +02:00
find_package ( Boost REQUIRED COMPONENTS ${ BOOST_COMPONENTS } )
2019-04-21 22:38:19 +04:00
find_package ( MyGUI 3.2.2 REQUIRED )
2013-01-08 06:19:05 -04:00
find_package ( SDL2 REQUIRED )
2010-08-12 16:13:54 +02:00
find_package ( OpenAL REQUIRED )
2017-02-07 18:05:24 +01:00
find_package ( Bullet ${ REQUIRED_BULLET_VERSION } REQUIRED COMPONENTS BulletCollision LinearMath )
2014-06-02 02:34:43 -05:00
2015-05-10 00:36:04 +02:00
include_directories ( "."
2015-03-09 16:49:40 -04:00
S Y S T E M
2013-01-08 06:19:05 -04:00
$ { S D L 2 _ I N C L U D E _ D I R }
$ { B o o s t _ I N C L U D E _ D I R }
2016-06-12 23:34:53 +03:00
$ { M y G U I _ I N C L U D E _ D I R S }
2010-08-30 02:12:54 +01:00
$ { O P E N A L _ I N C L U D E _ D I R }
2016-05-09 19:33:24 +03:00
$ { B u l l e t _ I N C L U D E _ D I R S }
2010-07-08 11:53:59 +02:00
)
2016-06-12 23:34:53 +03:00
link_directories ( ${ SDL2_LIBRARY_DIRS } ${ Boost_LIBRARY_DIRS } )
2010-02-28 14:51:17 +01:00
2014-06-02 02:34:43 -05:00
if ( MYGUI_STATIC )
add_definitions ( -DMYGUI_STATIC )
endif ( MYGUI_STATIC )
2012-04-16 15:27:57 +02:00
if ( APPLE )
2015-08-12 00:38:02 +02:00
configure_file ( ${ OpenMW_SOURCE_DIR } /files/mac/openmw-Info.plist.in
2012-07-25 00:13:33 +04:00
" $ { A P P _ B U N D L E _ D I R } / C o n t e n t s / I n f o . p l i s t " )
configure_file ( ${ OpenMW_SOURCE_DIR } /files/mac/openmw.icns
" $ { A P P _ B U N D L E _ D I R } / C o n t e n t s / R e s o u r c e s / O p e n M W . i c n s " C O P Y O N L Y )
2012-04-16 15:27:57 +02:00
endif ( APPLE )
2010-09-14 12:29:26 +02:00
2016-10-28 15:39:27 +02:00
if ( NOT APPLE )
set ( OPENMW_MYGUI_FILES_ROOT ${ OpenMW_BINARY_DIR } )
set ( OPENMW_SHADERS_ROOT ${ OpenMW_BINARY_DIR } )
endif ( )
2012-04-16 15:27:57 +02:00
add_subdirectory ( files/ )
2010-09-14 12:29:26 +02:00
2010-06-06 12:56:46 +02:00
# Specify build paths
2011-03-27 23:28:46 +04:00
if ( APPLE )
2013-03-12 21:21:08 +01:00
set ( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${APP_BUNDLE_DIR}/Contents/MacOS" )
2014-09-11 23:12:38 +02:00
set ( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${APP_BUNDLE_DIR}/Contents/MacOS" )
2015-08-08 17:19:26 +02:00
if ( OPENMW_OSX_DEPLOYMENT )
2015-11-13 01:19:56 +01:00
SET ( CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE )
2015-08-08 17:19:26 +02:00
endif ( )
2011-03-27 23:28:46 +04:00
else ( APPLE )
2013-03-12 21:21:08 +01:00
set ( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${OpenMW_BINARY_DIR}" )
2014-09-11 23:12:38 +02:00
set ( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${OpenMW_BINARY_DIR}" )
2011-03-27 23:28:46 +04:00
endif ( APPLE )
2010-06-06 12:56:46 +02:00
# Other files
2017-10-11 21:58:55 +01:00
configure_resource_file ( ${ OpenMW_SOURCE_DIR } /files/settings-default.cfg
" $ { O p e n M W _ B I N A R Y _ D I R } " " s e t t i n g s - d e f a u l t . c f g " )
2012-04-01 17:14:49 +02:00
2018-12-11 21:30:37 +01:00
configure_resource_file ( ${ OpenMW_SOURCE_DIR } /files/openmw.appdata.xml
2018-12-11 21:34:11 +01:00
" $ { O p e n M W _ B I N A R Y _ D I R } " " o p e n m w . a p p d a t a . x m l " )
2012-04-01 17:14:49 +02:00
2016-10-28 15:39:27 +02:00
if ( NOT APPLE )
2017-10-11 21:58:55 +01:00
configure_resource_file ( ${ OpenMW_SOURCE_DIR } /files/openmw.cfg.local
" $ { O p e n M W _ B I N A R Y _ D I R } " " o p e n m w . c f g " )
configure_resource_file ( ${ OpenMW_SOURCE_DIR } /files/openmw.cfg
" $ { O p e n M W _ B I N A R Y _ D I R } " " o p e n m w . c f g . i n s t a l l " )
2016-10-28 15:39:27 +02:00
else ( )
configure_file ( ${ OpenMW_SOURCE_DIR } /files/openmw.cfg
" $ { O p e n M W _ B I N A R Y _ D I R } / o p e n m w . c f g " )
endif ( )
2011-04-24 12:39:50 +02:00
2017-10-11 21:58:55 +01:00
configure_resource_file ( ${ OpenMW_SOURCE_DIR } /files/openmw-cs.cfg
" $ { O p e n M W _ B I N A R Y _ D I R } " " o p e n m w - c s . c f g " )
2011-04-08 19:24:21 +02:00
2017-10-19 00:50:57 +01:00
# Needs the copy version because the configure version assumes the end of the file has been reached when a null character is reached and there are no CMake expressions to evaluate.
copy_resource_file ( ${ OpenMW_SOURCE_DIR } /files/opencs/defaultfilters
" $ { O p e n M W _ B I N A R Y _ D I R } " " r e s o u r c e s / d e f a u l t f i l t e r s " )
2011-04-08 19:24:21 +02:00
2017-10-11 21:58:55 +01:00
configure_resource_file ( ${ OpenMW_SOURCE_DIR } /files/gamecontrollerdb.txt
" $ { O p e n M W _ B I N A R Y _ D I R } " " g a m e c o n t r o l l e r d b . t x t " )
2014-12-20 14:46:11 -06:00
2018-01-02 20:58:43 -06:00
configure_resource_file ( ${ OpenMW_SOURCE_DIR } /files/gamecontrollerdb_204.txt
" $ { O p e n M W _ B I N A R Y _ D I R } " " g a m e c o n t r o l l e r d b _ 2 0 4 . t x t " )
2017-12-27 22:37:18 -06:00
2018-01-02 20:58:43 -06:00
configure_resource_file ( ${ OpenMW_SOURCE_DIR } /files/gamecontrollerdb_205.txt
" $ { O p e n M W _ B I N A R Y _ D I R } " " g a m e c o n t r o l l e r d b _ 2 0 5 . t x t " )
2014-12-20 14:46:11 -06:00
2013-02-27 07:44:35 +04:00
if ( NOT WIN32 AND NOT APPLE )
2012-04-13 17:36:31 +02:00
configure_file ( ${ OpenMW_SOURCE_DIR } /files/openmw.desktop
" $ { O p e n M W _ B I N A R Y _ D I R } / o p e n m w . d e s k t o p " )
2015-08-04 13:05:29 +02:00
configure_file ( ${ OpenMW_SOURCE_DIR } /files/openmw.appdata.xml
" $ { O p e n M W _ B I N A R Y _ D I R } / o p e n m w . a p p d a t a . x m l " )
2015-02-03 13:18:03 +01:00
configure_file ( ${ OpenMW_SOURCE_DIR } /files/openmw-cs.desktop
" $ { O p e n M W _ B I N A R Y _ D I R } / o p e n m w - c s . d e s k t o p " )
2011-03-29 00:34:35 +02:00
endif ( )
2011-04-08 19:24:21 +02:00
2015-03-09 14:37:43 -04:00
# CXX Compiler settings
2019-04-09 22:34:26 +02:00
set ( CMAKE_CXX_STANDARD 14 )
2015-03-09 14:37:43 -04:00
if ( CMAKE_CXX_COMPILER_ID STREQUAL GNU OR CMAKE_CXX_COMPILER_ID STREQUAL Clang )
2019-04-09 22:34:26 +02:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wundef -Wno-unused-parameter -std=c++14 -pedantic -Wno-long-long" )
2016-08-13 16:39:08 +02:00
add_definitions ( -DBOOST_NO_CXX11_SCOPED_ENUMS=ON )
if ( APPLE )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++" )
2016-09-17 18:52:58 +02:00
set ( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++" )
2016-08-13 16:39:08 +02:00
endif ( )
2012-03-26 23:21:51 +04:00
2015-04-01 21:44:41 -04:00
if ( CMAKE_CXX_COMPILER_ID STREQUAL Clang AND NOT APPLE )
2016-05-09 00:04:18 +03:00
if ( CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 3.6 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 3.6 )
2015-04-01 21:44:41 -04:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-potentially-evaluated-expression" )
2016-05-09 00:04:18 +03:00
endif ( )
endif ( )
2015-04-01 21:44:41 -04:00
2016-05-09 00:04:18 +03:00
if ( CMAKE_CXX_COMPILER_ID STREQUAL GNU AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.6 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 4.6 )
2015-03-09 14:37:43 -04:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-but-set-parameter" )
2016-05-09 00:04:18 +03:00
endif ( )
2015-02-10 00:55:31 +01:00
elseif ( MSVC )
# Enable link-time code generation globally for all linking
2015-06-08 15:41:39 +02:00
if ( OPENMW_LTO_BUILD )
set ( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL" )
set ( CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG" )
set ( CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /LTCG" )
set ( CMAKE_STATIC_LINKER_FLAGS_RELEASE "${CMAKE_STATIC_LINKER_FLAGS_RELEASE} /LTCG" )
endif ( )
set ( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /FORCE:MULTIPLE" )
2015-03-09 14:37:43 -04:00
endif ( CMAKE_CXX_COMPILER_ID STREQUAL GNU OR CMAKE_CXX_COMPILER_ID STREQUAL Clang )
2010-06-25 14:41:49 +02:00
2013-07-31 11:25:11 -04:00
IF ( NOT WIN32 AND NOT APPLE )
2015-12-02 17:33:55 +01:00
# Linux installation
2014-06-10 14:58:09 +02:00
# Install binaries
2015-02-17 16:05:28 +01:00
IF ( BUILD_OPENMW )
INSTALL ( PROGRAMS "${OpenMW_BINARY_DIR}/openmw" DESTINATION "${BINDIR}" )
ENDIF ( BUILD_OPENMW )
2014-06-10 14:58:09 +02:00
IF ( BUILD_LAUNCHER )
2015-01-30 00:07:18 +01:00
INSTALL ( PROGRAMS "${OpenMW_BINARY_DIR}/openmw-launcher" DESTINATION "${BINDIR}" )
2014-06-10 14:58:09 +02:00
ENDIF ( BUILD_LAUNCHER )
IF ( BUILD_BSATOOL )
INSTALL ( PROGRAMS "${OpenMW_BINARY_DIR}/bsatool" DESTINATION "${BINDIR}" )
ENDIF ( BUILD_BSATOOL )
IF ( BUILD_ESMTOOL )
INSTALL ( PROGRAMS "${OpenMW_BINARY_DIR}/esmtool" DESTINATION "${BINDIR}" )
ENDIF ( BUILD_ESMTOOL )
2015-07-21 22:08:37 -04:00
IF ( BUILD_NIFTEST )
INSTALL ( PROGRAMS "${OpenMW_BINARY_DIR}/niftest" DESTINATION "${BINDIR}" )
ENDIF ( BUILD_NIFTEST )
2014-06-10 14:58:09 +02:00
IF ( BUILD_MWINIIMPORTER )
2015-01-30 00:07:18 +01:00
INSTALL ( PROGRAMS "${OpenMW_BINARY_DIR}/openmw-iniimporter" DESTINATION "${BINDIR}" )
2014-06-10 14:58:09 +02:00
ENDIF ( BUILD_MWINIIMPORTER )
2015-01-17 00:11:36 +01:00
IF ( BUILD_ESSIMPORTER )
INSTALL ( PROGRAMS "${OpenMW_BINARY_DIR}/openmw-essimporter" DESTINATION "${BINDIR}" )
ENDIF ( BUILD_ESSIMPORTER )
2014-06-10 14:58:09 +02:00
IF ( BUILD_OPENCS )
2015-02-03 13:18:03 +01:00
INSTALL ( PROGRAMS "${OpenMW_BINARY_DIR}/openmw-cs" DESTINATION "${BINDIR}" )
2014-06-10 14:58:09 +02:00
ENDIF ( BUILD_OPENCS )
2014-11-18 17:43:51 +01:00
IF ( BUILD_WIZARD )
2014-11-18 17:54:37 +01:00
INSTALL ( PROGRAMS "${OpenMW_BINARY_DIR}/openmw-wizard" DESTINATION "${BINDIR}" )
2014-11-18 17:43:51 +01:00
ENDIF ( BUILD_WIZARD )
2015-06-08 01:58:12 +02:00
#if(BUILD_MYGUI_PLUGIN)
# INSTALL(PROGRAMS "${OpenMW_BINARY_DIR}/Plugin_MyGUI_OpenMW_Resources.so" DESTINATION "${LIBDIR}" )
#ENDIF(BUILD_MYGUI_PLUGIN)
2014-06-10 14:58:09 +02:00
# Install licenses
2017-11-05 16:37:38 +01:00
INSTALL ( FILES "files/mygui/DejaVu Font License.txt" DESTINATION "${LICDIR}" )
2011-01-04 20:42:09 +01:00
2013-07-31 10:13:04 -04:00
# Install icon and desktop file
2015-02-07 23:27:32 +01:00
INSTALL ( FILES "${OpenMW_BINARY_DIR}/openmw.desktop" DESTINATION "${DATAROOTDIR}/applications" COMPONENT "openmw" )
INSTALL ( FILES "${OpenMW_SOURCE_DIR}/files/launcher/images/openmw.png" DESTINATION "${ICONDIR}" COMPONENT "openmw" )
2017-07-28 19:16:32 +02:00
INSTALL ( FILES "${OpenMW_BINARY_DIR}/openmw.appdata.xml" DESTINATION "${DATAROOTDIR}/metainfo" COMPONENT "openmw" )
2013-07-31 11:25:11 -04:00
IF ( BUILD_OPENCS )
2015-02-07 23:27:32 +01:00
INSTALL ( FILES "${OpenMW_BINARY_DIR}/openmw-cs.desktop" DESTINATION "${DATAROOTDIR}/applications" COMPONENT "opencs" )
INSTALL ( FILES "${OpenMW_SOURCE_DIR}/files/opencs/openmw-cs.png" DESTINATION "${ICONDIR}" COMPONENT "opencs" )
2013-07-31 11:25:11 -04:00
ENDIF ( BUILD_OPENCS )
2011-09-30 09:36:06 +02:00
2013-07-31 10:13:04 -04:00
# Install global configuration files
2015-02-07 23:27:32 +01:00
INSTALL ( FILES "${OpenMW_BINARY_DIR}/settings-default.cfg" DESTINATION "${SYSCONFDIR}" COMPONENT "openmw" )
INSTALL ( FILES "${OpenMW_BINARY_DIR}/openmw.cfg.install" DESTINATION "${SYSCONFDIR}" RENAME "openmw.cfg" COMPONENT "openmw" )
2015-07-18 03:01:06 +02:00
INSTALL ( FILES "${OpenMW_BINARY_DIR}/resources/version" DESTINATION "${SYSCONFDIR}" COMPONENT "openmw" )
2015-02-27 22:22:32 +01:00
INSTALL ( FILES "${OpenMW_BINARY_DIR}/gamecontrollerdb.txt" DESTINATION "${SYSCONFDIR}" COMPONENT "openmw" )
2018-01-02 20:58:43 -06:00
INSTALL ( FILES "${OpenMW_BINARY_DIR}/gamecontrollerdb_204.txt" DESTINATION "${SYSCONFDIR}" COMPONENT "openmw" )
INSTALL ( FILES "${OpenMW_BINARY_DIR}/gamecontrollerdb_205.txt" DESTINATION "${SYSCONFDIR}" COMPONENT "openmw" )
2015-02-27 22:22:32 +01:00
2013-07-31 11:49:23 -04:00
IF ( BUILD_OPENCS )
2015-12-15 14:51:25 +01:00
INSTALL ( FILES "${OpenMW_BINARY_DIR}/openmw-cs.cfg" DESTINATION "${SYSCONFDIR}" COMPONENT "opencs" )
2013-07-31 11:49:23 -04:00
ENDIF ( BUILD_OPENCS )
2011-01-04 20:42:09 +01:00
2013-07-31 10:13:04 -04:00
# Install resources
2015-02-07 23:27:32 +01:00
INSTALL ( DIRECTORY "${OpenMW_BINARY_DIR}/resources" DESTINATION "${DATADIR}" COMPONENT "Resources" )
2013-08-16 22:32:16 +02:00
INSTALL ( DIRECTORY DESTINATION "${DATADIR}/data" COMPONENT "Resources" )
2013-07-31 11:25:11 -04:00
ENDIF ( NOT WIN32 AND NOT APPLE )
2011-01-04 20:42:09 +01:00
2012-01-29 23:08:02 +01:00
if ( WIN32 )
2016-11-13 16:59:36 -06:00
FILE ( GLOB dll_files_debug "${OpenMW_BINARY_DIR}/Debug/*.dll" )
2016-11-13 13:32:42 -06:00
FILE ( GLOB dll_files_release "${OpenMW_BINARY_DIR}/Release/*.dll" )
INSTALL ( FILES ${ dll_files_debug } DESTINATION "." CONFIGURATIONS Debug )
2016-11-13 16:59:36 -06:00
INSTALL ( FILES ${ dll_files_release } DESTINATION "." CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel )
2017-10-24 22:57:35 +02:00
INSTALL ( FILES "${OpenMW_BINARY_DIR}/Debug/openmw.cfg.install" DESTINATION "." RENAME "openmw.cfg" CONFIGURATIONS Debug )
INSTALL ( FILES "${OpenMW_BINARY_DIR}/Release/openmw.cfg.install" DESTINATION "." RENAME "openmw.cfg" CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel )
2015-01-20 15:24:33 +01:00
INSTALL ( FILES "${OpenMW_SOURCE_DIR}/CHANGELOG.md" DESTINATION "." RENAME "CHANGELOG.txt" )
INSTALL ( FILES "${OpenMW_SOURCE_DIR}/README.md" DESTINATION "." RENAME "README.txt" )
2017-11-05 16:37:38 +01:00
INSTALL ( FILES "${OpenMW_SOURCE_DIR}/LICENSE" DESTINATION "." RENAME "LICENSE.txt" )
2012-04-07 23:33:54 +02:00
INSTALL ( FILES
2017-11-05 16:37:38 +01:00
" $ { O p e n M W _ S O U R C E _ D I R } / f i l e s / m y g u i / D e j a V u F o n t L i c e n s e . t x t "
2012-04-07 23:33:54 +02:00
D E S T I N A T I O N " . " )
2017-10-24 22:57:35 +02:00
INSTALL ( FILES "${OpenMW_BINARY_DIR}/Debug/settings-default.cfg" DESTINATION "." CONFIGURATIONS Debug )
INSTALL ( FILES "${OpenMW_BINARY_DIR}/Release/settings-default.cfg" DESTINATION "." CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel )
INSTALL ( FILES "${OpenMW_BINARY_DIR}/Debug/gamecontrollerdb.txt" DESTINATION "." CONFIGURATIONS Debug )
INSTALL ( FILES "${OpenMW_BINARY_DIR}/Release/gamecontrollerdb.txt" DESTINATION "." CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel )
2018-01-02 20:58:43 -06:00
INSTALL ( FILES "${OpenMW_BINARY_DIR}/Debug/gamecontrollerdb_204.txt" DESTINATION "." CONFIGURATIONS Debug )
INSTALL ( FILES "${OpenMW_BINARY_DIR}/Release/gamecontrollerdb_204.txt" DESTINATION "." CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel )
INSTALL ( FILES "${OpenMW_BINARY_DIR}/Debug/gamecontrollerdb_205.txt" DESTINATION "." CONFIGURATIONS Debug )
INSTALL ( FILES "${OpenMW_BINARY_DIR}/Release/gamecontrollerdb_205.txt" DESTINATION "." CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel )
2013-10-29 13:28:43 +01:00
2014-09-11 23:12:38 +02:00
if ( BUILD_MYGUI_PLUGIN )
2016-11-13 16:59:36 -06:00
INSTALL ( PROGRAMS "${OpenMW_BINARY_DIR}/Debug/Plugin_MyGUI_OpenMW_Resources.dll" DESTINATION "." CONFIGURATIONS Debug )
2016-11-13 13:32:42 -06:00
INSTALL ( PROGRAMS "${OpenMW_BINARY_DIR}/Release/Plugin_MyGUI_OpenMW_Resources.dll" DESTINATION "." CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel )
2014-09-11 23:12:38 +02:00
ENDIF ( BUILD_MYGUI_PLUGIN )
2013-10-29 13:28:43 +01:00
2016-09-08 02:19:12 +02:00
IF ( DESIRED_QT_VERSION MATCHES 5 )
2016-11-13 22:49:01 -06:00
INSTALL ( DIRECTORY "${OpenMW_BINARY_DIR}/Debug/platforms" DESTINATION "." CONFIGURATIONS Debug )
INSTALL ( DIRECTORY "${OpenMW_BINARY_DIR}/Release/platforms" DESTINATION "." CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel )
2016-09-08 02:19:12 +02:00
ENDIF ( )
2017-10-24 22:57:35 +02:00
INSTALL ( DIRECTORY "${OpenMW_BINARY_DIR}/Debug/resources" DESTINATION "." CONFIGURATIONS Debug )
INSTALL ( DIRECTORY "${OpenMW_BINARY_DIR}/Release/resources" DESTINATION "." CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel )
2018-11-01 00:20:10 +03:00
2016-11-13 22:49:01 -06:00
FILE ( GLOB plugin_dir_debug "${OpenMW_BINARY_DIR}/Debug/osgPlugins-*" )
FILE ( GLOB plugin_dir_release "${OpenMW_BINARY_DIR}/Release/osgPlugins-*" )
INSTALL ( DIRECTORY ${ plugin_dir_debug } DESTINATION "." CONFIGURATIONS Debug )
INSTALL ( DIRECTORY ${ plugin_dir_release } DESTINATION "." CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel )
2012-01-29 23:08:02 +01:00
SET ( CPACK_GENERATOR "NSIS" )
SET ( CPACK_PACKAGE_NAME "OpenMW" )
SET ( CPACK_PACKAGE_VENDOR "OpenMW.org" )
SET ( CPACK_PACKAGE_VERSION ${ OPENMW_VERSION } )
SET ( CPACK_PACKAGE_VERSION_MAJOR ${ OPENMW_VERSION_MAJOR } )
2013-02-12 13:23:25 +01:00
SET ( CPACK_PACKAGE_VERSION_MINOR ${ OPENMW_VERSION_MINOR } )
2012-01-29 23:08:02 +01:00
SET ( CPACK_PACKAGE_VERSION_PATCH ${ OPENMW_VERSION_RELEASE } )
2013-10-29 13:28:43 +01:00
SET ( CPACK_PACKAGE_EXECUTABLES "openmw;OpenMW" )
IF ( BUILD_LAUNCHER )
2015-01-30 00:07:18 +01:00
SET ( CPACK_PACKAGE_EXECUTABLES "${CPACK_PACKAGE_EXECUTABLES};openmw-launcher;OpenMW Launcher" )
2013-10-29 13:28:43 +01:00
ENDIF ( BUILD_LAUNCHER )
IF ( BUILD_OPENCS )
2015-02-03 13:18:03 +01:00
SET ( CPACK_PACKAGE_EXECUTABLES "${CPACK_PACKAGE_EXECUTABLES};openmw-cs;OpenMW Construction Set" )
2013-10-29 13:28:43 +01:00
ENDIF ( BUILD_OPENCS )
2013-12-07 16:17:07 +01:00
IF ( BUILD_WIZARD )
SET ( CPACK_PACKAGE_EXECUTABLES "${CPACK_PACKAGE_EXECUTABLES};openmw-wizard;OpenMW Wizard" )
ENDIF ( BUILD_WIZARD )
2015-01-20 15:24:33 +01:00
SET ( CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut '\$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Readme.lnk' '\$INSTDIR\\\\README.txt'" )
2012-04-07 23:33:54 +02:00
SET ( CPACK_NSIS_DELETE_ICONS_EXTRA "
! i n s e r t m a c r o M U I _ S T A R T M E N U _ G E T F O L D E R A p p l i c a t i o n $ M U I _ T E M P
D e l e t e \ \ \ " $ S M P R O G R A M S \ \ \ \ $ M U I _ T E M P \ \ \ \ R e a d m e . l n k \ \ \ "
" )
2015-01-20 15:24:33 +01:00
SET ( CPACK_RESOURCE_FILE_README "${OpenMW_SOURCE_DIR}/README.md" )
SET ( CPACK_PACKAGE_DESCRIPTION_FILE "${OpenMW_SOURCE_DIR}/README.md" )
2012-01-29 23:08:02 +01:00
SET ( CPACK_NSIS_EXECUTABLES_DIRECTORY "." )
2013-02-27 23:44:20 +01:00
SET ( CPACK_NSIS_DISPLAY_NAME "OpenMW ${OPENMW_VERSION}" )
2018-03-08 21:23:24 +01:00
SET ( CPACK_NSIS_HELP_LINK "https:\\\\\\\\www.openmw.org" )
SET ( CPACK_NSIS_URL_INFO_ABOUT "https:\\\\\\\\www.openmw.org" )
2015-01-30 00:07:18 +01:00
SET ( CPACK_NSIS_INSTALLED_ICON_NAME "openmw-launcher.exe" )
2017-10-08 11:58:38 +02:00
SET ( CPACK_NSIS_MUI_FINISHPAGE_RUN "openmw-launcher.exe" )
2014-09-12 04:32:53 +02:00
SET ( CPACK_NSIS_MUI_ICON "${OpenMW_SOURCE_DIR}/files/windows/openmw.ico" )
SET ( CPACK_NSIS_MUI_UNIICON "${OpenMW_SOURCE_DIR}/files/windows/openmw.ico" )
2012-04-19 14:58:27 +02:00
SET ( CPACK_PACKAGE_ICON "${OpenMW_SOURCE_DIR}\\\\files\\\\openmw.bmp" )
2012-01-29 23:08:02 +01:00
2012-03-01 01:32:02 +01:00
SET ( VCREDIST32 "${OpenMW_BINARY_DIR}/vcredist_x86.exe" )
if ( EXISTS ${ VCREDIST32 } )
INSTALL ( FILES ${ VCREDIST32 } DESTINATION "redist" )
2012-01-29 23:12:40 +01:00
SET ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "ExecWait '\\\" $ INSTDIR\\\\redist\\\\vcredist_x86.exe\\\ " /q'" )
2012-03-01 01:32:02 +01:00
endif ( EXISTS ${ VCREDIST32 } )
SET ( VCREDIST64 "${OpenMW_BINARY_DIR}/vcredist_x64.exe" )
if ( EXISTS ${ VCREDIST64 } )
INSTALL ( FILES ${ VCREDIST64 } DESTINATION "redist" )
SET ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "ExecWait '\\\" $ INSTDIR\\\\redist\\\\vcredist_x64.exe\\\ " /q'" )
endif ( EXISTS ${ VCREDIST64 } )
2012-02-16 08:52:26 +01:00
SET ( OALREDIST "${OpenMW_BINARY_DIR}/oalinst.exe" )
if ( EXISTS ${ OALREDIST } )
INSTALL ( FILES ${ OALREDIST } DESTINATION "redist" )
SET ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS " ${ CPACK_NSIS_EXTRA_INSTALL_COMMANDS }
E x e c W a i t ' \ \ \ " $ I N S T D I R \ \ \ \ r e d i s t \ \ \ \ o a l i n s t . e x e \ \ \ " / s ' " )
endif ( EXISTS ${ OALREDIST } )
2012-01-29 23:12:40 +01:00
2012-03-01 01:32:02 +01:00
if ( CMAKE_CL_64 )
SET ( CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64" )
endif ( )
2012-01-29 23:08:02 +01:00
include ( CPack )
endif ( WIN32 )
2012-07-03 22:27:22 +02:00
# Extern
2018-11-01 14:53:06 +03:00
set ( RECASTNAVIGATION_STATIC ON CACHE BOOL "Build recastnavigation static libraries" )
2018-11-01 00:20:10 +03:00
2018-12-20 19:53:51 +01:00
add_subdirectory ( extern/recastnavigation EXCLUDE_FROM_ALL )
2015-04-19 20:14:06 +02:00
add_subdirectory ( extern/osg-ffmpeg-videoplayer )
2015-04-01 17:02:15 +02:00
add_subdirectory ( extern/oics )
2016-09-27 21:22:57 +02:00
if ( BUILD_OPENCS )
2016-02-25 22:39:18 +03:00
add_subdirectory ( extern/osgQt )
endif ( )
2012-07-03 22:27:22 +02:00
2011-11-06 09:30:15 +01:00
# Components
add_subdirectory ( components )
2010-07-08 22:53:14 +02:00
# Apps and tools
2015-02-17 16:05:28 +01:00
if ( BUILD_OPENMW )
add_subdirectory ( apps/openmw )
endif ( )
2010-07-08 22:53:14 +02:00
2013-03-05 00:45:25 +01:00
if ( BUILD_BSATOOL )
add_subdirectory ( apps/bsatool )
endif ( )
2010-07-21 13:52:28 +02:00
if ( BUILD_ESMTOOL )
add_subdirectory ( apps/esmtool )
endif ( )
2010-09-19 02:01:01 +02:00
2011-09-29 14:59:20 +02:00
if ( BUILD_LAUNCHER )
add_subdirectory ( apps/launcher )
endif ( )
2011-03-29 01:31:42 +02:00
2012-03-30 20:59:44 +02:00
if ( BUILD_MWINIIMPORTER )
add_subdirectory ( apps/mwiniimporter )
endif ( )
2015-01-17 00:11:36 +01:00
if ( BUILD_ESSIMPORTER )
add_subdirectory ( apps/essimporter )
endif ( )
2012-11-21 17:31:18 +01:00
if ( BUILD_OPENCS )
add_subdirectory ( apps/opencs )
endif ( )
2013-12-07 16:17:07 +01:00
if ( BUILD_WIZARD )
add_subdirectory ( apps/wizard )
endif ( )
2015-07-21 22:08:37 -04:00
if ( BUILD_NIFTEST )
add_subdirectory ( apps/niftest )
endif ( BUILD_NIFTEST )
2012-08-19 22:23:46 +03:00
# UnitTests
if ( BUILD_UNITTESTS )
add_subdirectory ( apps/openmw_test_suite )
endif ( )
2010-09-19 02:01:01 +02:00
if ( WIN32 )
2011-01-04 14:40:28 +03:00
if ( MSVC )
2015-06-08 15:41:39 +02:00
if ( OPENMW_MP_BUILD )
2014-09-17 09:05:47 +06:00
set ( MT_BUILD "/MP" )
2015-06-08 15:41:39 +02:00
endif ( )
2014-09-17 09:05:47 +06:00
foreach ( OUTPUTCONFIG ${ CMAKE_CONFIGURATION_TYPES } )
string ( TOUPPER ${ OUTPUTCONFIG } OUTPUTCONFIG )
2014-09-24 20:09:48 +02:00
set ( CMAKE_RUNTIME_OUTPUT_DIRECTORY_ ${ OUTPUTCONFIG } "$(SolutionDir)$(Configuration)" )
set ( CMAKE_LIBRARY_OUTPUT_DIRECTORY_ ${ OUTPUTCONFIG } "$(ProjectDir)$(Configuration)" )
2014-09-17 09:05:47 +06:00
endforeach ( OUTPUTCONFIG )
2015-06-08 15:41:39 +02:00
if ( USE_DEBUG_CONSOLE AND BUILD_OPENMW )
2011-01-04 14:40:28 +03:00
set_target_properties ( openmw PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE" )
set_target_properties ( openmw PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/SUBSYSTEM:CONSOLE" )
2018-11-02 01:05:39 +00:00
set_target_properties ( openmw PROPERTIES COMPILE_DEFINITIONS $< $<CONFIG:Debug > :_CONSOLE> )
2015-06-08 15:41:39 +02:00
elseif ( BUILD_OPENMW )
2011-01-04 14:40:28 +03:00
# Turn off debug console, debug output will be written to visual studio output instead
set_target_properties ( openmw PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:WINDOWS" )
set_target_properties ( openmw PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/SUBSYSTEM:WINDOWS" )
2010-09-19 02:01:01 +02:00
endif ( )
2011-01-30 13:19:41 +01:00
2015-06-08 15:41:39 +02:00
if ( BUILD_OPENMW )
2018-07-09 23:04:45 +03:00
# Release builds don't use the debug console
set_target_properties ( openmw PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS" )
set_target_properties ( openmw PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS" )
2015-06-08 15:41:39 +02:00
endif ( )
2012-03-13 21:55:50 +01:00
# Play a bit with the warning levels
2012-03-13 22:47:39 +01:00
set ( WARNINGS "/Wall" ) # Since windows can only disable specific warnings, not enable them
2012-03-13 21:55:50 +01:00
set ( WARNINGS_DISABLE
2012-03-13 23:51:48 +01:00
# Warnings that aren't enabled normally and don't need to be enabled
# They're unneeded and sometimes completely retarded warnings that /Wall enables
2015-06-08 15:41:39 +02:00
# Not going to bother commenting them as they tend to warn on every standard library file
2018-09-04 12:58:34 +04:00
4 0 6 1 4 2 6 3 4 2 6 4 4 2 6 6 4 3 5 0 4 3 7 1 4 4 3 5 4 5 1 4 4 5 4 8 4 5 7 1 4 6 1 0 4 6 1 9 4 6 2 3 4 6 2 5
2018-07-10 13:02:03 +03:00
4 6 2 6 4 6 2 8 4 6 4 0 4 6 6 8 4 7 1 0 4 7 1 1 4 7 6 8 4 8 2 0 4 8 2 6 4 9 1 7 4 9 4 6 5 0 3 2 5 0 3 9 5 0 4 5
2012-03-13 23:51:48 +01:00
# Warnings that are thrown on standard libraries and not OpenMW
4 3 4 7 # Non-template function with same name and parameter count as template function
2012-03-14 11:36:13 +01:00
4 3 6 5 # Variable signed/unsigned mismatch
2012-03-13 23:51:48 +01:00
4 5 1 0 4 5 1 2 # Unable to generate copy constructor/assignment operator as it's not public in the base
4 7 0 6 # Assignment in conditional expression
2012-03-15 14:10:12 +01:00
4 7 3 8 # Storing 32-bit float result in memory, possible loss of performance
2017-07-24 17:49:39 +12:00
4 7 7 4 # Format string expected in argument is not a string literal
2012-03-13 23:51:48 +01:00
4 9 8 6 # Undocumented warning that occurs in the crtdbg.h file
2014-05-14 20:12:52 -05:00
4 9 8 7 # nonstandard extension used (triggered by setjmp.h)
2012-03-13 23:51:48 +01:00
4 9 9 6 # Function was declared deprecated
2016-08-28 21:42:48 +02:00
# caused by OSG
4 5 8 9 # Constructor of abstract class 'osg::Operation' ignores initializer for virtual base class 'osg::Referenced' (False warning)
2014-09-22 21:33:09 -05:00
# caused by boost
4 1 9 1 # 'type cast' : unsafe conversion (1.56, thread_primitives.hpp, normally off)
2018-09-04 12:58:34 +04:00
4 6 4 3 # Forward declaring 'X' in namespace std is not permitted by the C++ Standard. (in *_std_fwd.h files)
2016-08-28 21:42:48 +02:00
# caused by MyGUI
4 2 7 5 # non dll-interface class 'std::exception' used as base for dll-interface class 'MyGUI::Exception'
2018-07-09 23:04:45 +03:00
4 2 9 7 # function assumed not to throw an exception but does
2014-09-22 21:33:09 -05:00
2012-03-13 23:51:48 +01:00
# OpenMW specific warnings
2012-03-13 23:04:33 +01:00
4 0 9 9 # Type mismatch, declared class or struct is defined with other type
2012-03-13 22:47:39 +01:00
4 1 0 0 # Unreferenced formal parameter (-Wunused-parameter)
2015-02-15 20:10:21 -06:00
4 1 0 1 # Unreferenced local variable (-Wunused-variable)
2012-03-13 22:47:39 +01:00
4 1 2 7 # Conditional expression is constant
4 2 4 2 # Storing value in a variable of a smaller type, possible loss of data
2012-03-13 23:04:33 +01:00
4 2 4 4 # Storing value of one type in variable of another (size_t in int, for example)
2015-06-08 15:41:39 +02:00
4 2 4 5 # Signed/unsigned mismatch
2014-06-24 00:13:34 -05:00
4 2 6 7 # Conversion from 'size_t' to 'int', possible loss of data
2012-03-13 23:04:33 +01:00
4 3 0 5 # Truncating value (double to float, for example)
4 3 0 9 # Variable overflow, trying to store 128 in a signed char for example
2014-06-23 01:13:30 -05:00
4 3 5 1 # New behavior: elements of array 'array' will be default initialized (desired behavior)
2012-03-13 22:47:39 +01:00
4 3 5 5 # Using 'this' in member initialization list
2016-08-28 21:42:48 +02:00
4 4 6 4 # relative include path contains '..'
2014-05-14 20:12:52 -05:00
4 5 0 5 # Unreferenced local function has been removed
2012-03-13 22:47:39 +01:00
4 7 0 1 # Potentially uninitialized local variable used
2014-05-14 20:12:52 -05:00
4 7 0 2 # Unreachable code
2016-08-28 21:42:48 +02:00
4 7 1 4 # function 'QString QString::trimmed(void) &&' marked as __forceinline not inlined
2013-03-12 21:21:08 +01:00
4 8 0 0 # Boolean optimization warning, e.g. myBool = (myInt != 0) instead of myBool = myInt
2012-03-13 21:55:50 +01:00
)
2016-08-28 23:23:44 +02:00
if ( MSVC_VERSION GREATER 1800 )
set ( WARNINGS_DISABLE ${ WARNINGS_DISABLE } 5026 5027
5 0 3 1 # #pragma warning(pop): likely mismatch, popping warning state pushed in different file (config_begin.hpp, config_end.hpp)
)
endif ( )
2012-03-13 21:55:50 +01:00
foreach ( d ${ WARNINGS_DISABLE } )
set ( WARNINGS "${WARNINGS} /wd${d}" )
endforeach ( d )
2012-03-13 22:47:39 +01:00
2015-06-08 15:41:39 +02:00
set_target_properties ( components PROPERTIES COMPILE_FLAGS "${WARNINGS} ${MT_BUILD}" )
set_target_properties ( osg-ffmpeg-videoplayer PROPERTIES COMPILE_FLAGS "${WARNINGS} ${MT_BUILD}" )
if ( BUILD_BSATOOL )
set_target_properties ( bsatool PROPERTIES COMPILE_FLAGS "${WARNINGS} ${MT_BUILD}" )
endif ( )
if ( BUILD_ESMTOOL )
set_target_properties ( esmtool PROPERTIES COMPILE_FLAGS "${WARNINGS} ${MT_BUILD}" )
endif ( )
if ( BUILD_ESSIMPORTER )
set_target_properties ( openmw-essimporter PROPERTIES COMPILE_FLAGS "${WARNINGS} ${MT_BUILD}" )
endif ( )
if ( BUILD_LAUNCHER )
set_target_properties ( openmw-launcher PROPERTIES COMPILE_FLAGS "${WARNINGS} ${MT_BUILD}" )
endif ( )
if ( BUILD_MWINIIMPORTER )
set_target_properties ( openmw-iniimporter PROPERTIES COMPILE_FLAGS "${WARNINGS} ${MT_BUILD}" )
endif ( )
2015-03-02 15:45:29 +01:00
2014-05-14 20:12:52 -05:00
if ( BUILD_OPENCS )
2015-06-08 15:41:39 +02:00
set_target_properties ( openmw-cs PROPERTIES COMPILE_FLAGS "${WARNINGS} ${MT_BUILD}" )
endif ( )
if ( BUILD_OPENMW )
2018-05-26 19:51:50 +04:00
if ( OPENMW_UNITY_BUILD )
2016-08-28 23:23:44 +02:00
set_target_properties ( openmw PROPERTIES COMPILE_FLAGS "${WARNINGS} ${MT_BUILD} /bigobj" )
else ( )
set_target_properties ( openmw PROPERTIES COMPILE_FLAGS "${WARNINGS} ${MT_BUILD}" )
endif ( )
2015-06-08 15:41:39 +02:00
endif ( )
if ( BUILD_WIZARD )
set_target_properties ( openmw-wizard PROPERTIES COMPILE_FLAGS "${WARNINGS} ${MT_BUILD}" )
endif ( )
2011-01-04 14:40:28 +03:00
endif ( MSVC )
2011-01-08 23:58:47 +03:00
2011-01-04 14:40:28 +03:00
# TODO: At some point release builds should not use the console but rather write to a log file
#set_target_properties(openmw PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS")
#set_target_properties(openmw PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS")
2010-09-19 02:01:01 +02:00
endif ( )
2012-01-29 23:28:05 +04:00
# Apple bundling
2017-07-30 15:42:16 +02:00
if ( OPENMW_OSX_DEPLOYMENT AND APPLE AND DESIRED_QT_VERSION MATCHES 5 )
2019-03-28 20:48:54 +01:00
if ( CMAKE_VERSION VERSION_GREATER_EQUAL 3.13 AND CMAKE_VERSION VERSION_LESS 3.13.4 )
message ( FATAL_ERROR "macOS packaging is broken in early CMake 3.13 releases, see https://gitlab.com/OpenMW/openmw/issues/4767. Please use at least 3.13.4 or an older version like 3.12.4" )
2018-12-26 16:57:10 +01:00
endif ( )
2015-11-12 22:33:22 +01:00
get_property ( QT_COCOA_PLUGIN_PATH TARGET Qt5::QCocoaIntegrationPlugin PROPERTY LOCATION_RELEASE )
get_filename_component ( QT_COCOA_PLUGIN_DIR "${QT_COCOA_PLUGIN_PATH}" DIRECTORY )
get_filename_component ( QT_COCOA_PLUGIN_GROUP "${QT_COCOA_PLUGIN_DIR}" NAME )
get_filename_component ( QT_COCOA_PLUGIN_NAME "${QT_COCOA_PLUGIN_PATH}" NAME )
2017-07-30 15:42:16 +02:00
configure_file ( "${QT_COCOA_PLUGIN_PATH}" "${APP_BUNDLE_DIR}/Contents/PlugIns/${QT_COCOA_PLUGIN_GROUP}/${QT_COCOA_PLUGIN_NAME}" COPYONLY )
configure_file ( "${OpenMW_SOURCE_DIR}/files/mac/qt.conf" "${APP_BUNDLE_DIR}/Contents/Resources/qt.conf" COPYONLY )
2015-11-12 22:33:22 +01:00
if ( BUILD_OPENCS )
get_property ( OPENCS_BUNDLE_NAME_TMP TARGET openmw-cs PROPERTY OUTPUT_NAME )
set ( OPENCS_BUNDLE_NAME "${OPENCS_BUNDLE_NAME_TMP}.app" )
2017-07-30 15:42:16 +02:00
configure_file ( "${QT_COCOA_PLUGIN_PATH}" "${OPENCS_BUNDLE_NAME}/Contents/PlugIns/${QT_COCOA_PLUGIN_GROUP}/${QT_COCOA_PLUGIN_NAME}" COPYONLY )
configure_file ( "${OpenMW_SOURCE_DIR}/files/mac/qt.conf" "${OPENCS_BUNDLE_NAME}/Contents/Resources/qt.conf" COPYONLY )
2015-11-12 22:33:22 +01:00
endif ( )
2016-10-28 15:39:27 +02:00
install ( DIRECTORY "${APP_BUNDLE_DIR}" USE_SOURCE_PERMISSIONS DESTINATION "." COMPONENT Runtime )
2012-02-28 17:19:44 +01:00
2012-02-01 20:48:13 +04:00
set ( CPACK_GENERATOR "DragNDrop" )
set ( CPACK_PACKAGE_VERSION ${ OPENMW_VERSION } )
set ( CPACK_PACKAGE_VERSION_MAJOR ${ OPENMW_VERSION_MAJOR } )
2013-09-15 23:03:07 +04:00
set ( CPACK_PACKAGE_VERSION_MINOR ${ OPENMW_VERSION_MINOR } )
2012-02-01 20:48:13 +04:00
set ( CPACK_PACKAGE_VERSION_PATCH ${ OPENMW_VERSION_RELEASE } )
2016-10-28 15:39:27 +02:00
set ( INSTALLED_OPENMW_APP "\${CMAKE_INSTALL_PREFIX}/${APP_BUNDLE_NAME}" )
set ( INSTALLED_OPENCS_APP "\${CMAKE_INSTALL_PREFIX}/${OPENCS_BUNDLE_NAME}" )
2013-11-10 22:04:13 +04:00
2014-02-16 19:01:28 +04:00
install ( CODE "
set ( BU_CHMOD_BUNDLE_ITEMS ON )
2015-08-03 19:21:35 +02:00
set ( CMAKE_MODULE_PATH ${ CMAKE_MODULE_PATH } )
2015-11-13 00:53:54 +01:00
include ( BundleUtilities )
cmake_minimum_required ( VERSION 3.1 )
2014-02-16 19:01:28 +04:00
" C O M P O N E N T R u n t i m e )
2015-08-08 17:19:26 +02:00
set ( ABSOLUTE_PLUGINS "" )
2018-12-13 02:08:35 +00:00
set ( OSGPlugins_DONT_FIND_DEPENDENCIES 1 )
find_package ( OSGPlugins REQUIRED COMPONENTS ${ USED_OSG_PLUGINS } )
2015-08-08 17:19:26 +02:00
foreach ( PLUGIN_NAME ${ USED_OSG_PLUGINS } )
2018-12-13 02:08:35 +00:00
string ( TOUPPER ${ PLUGIN_NAME } PLUGIN_NAME_UC )
if ( ${ PLUGIN_NAME_UC } _LIBRARY_RELEASE )
set ( PLUGIN_ABS ${ ${PLUGIN_NAME_UC } _LIBRARY_RELEASE} )
elseif ( ${ PLUGIN_NAME_UC } _LIBRARY )
set ( PLUGIN_ABS ${ ${PLUGIN_NAME_UC } _LIBRARY} )
else ( )
message ( FATAL_ERROR "Can't find library file for ${PLUGIN_NAME}" )
# We used to construct the path manually from OSGPlugins_LIB_DIR and the plugin name.
# Maybe that could be restored as a fallback?
endif ( )
set ( ABSOLUTE_PLUGINS ${ PLUGIN_ABS } ${ ABSOLUTE_PLUGINS } )
2015-08-08 17:19:26 +02:00
endforeach ( )
2018-12-13 02:08:35 +00:00
set ( OSG_PLUGIN_PREFIX_DIR "osgPlugins-${OPENSCENEGRAPH_VERSION}" )
2015-08-08 17:19:26 +02:00
# installs used plugins in bundle at given path (bundle_path must be relative to ${CMAKE_INSTALL_PREFIX})
# and returns list of install paths for all installed plugins
function ( install_plugins_for_bundle bundle_path plugins_var )
2015-11-12 23:37:03 +01:00
set ( RELATIVE_PLUGIN_INSTALL_BASE "${bundle_path}/Contents/PlugIns/${OSG_PLUGIN_PREFIX_DIR}" )
2015-08-08 17:19:26 +02:00
set ( PLUGINS "" )
set ( PLUGIN_INSTALL_BASE "\${CMAKE_INSTALL_PREFIX}/${RELATIVE_PLUGIN_INSTALL_BASE}" )
foreach ( PLUGIN ${ ABSOLUTE_PLUGINS } )
get_filename_component ( PLUGIN_RELATIVE ${ PLUGIN } NAME )
get_filename_component ( PLUGIN_RELATIVE_WE ${ PLUGIN } NAME_WE )
2012-02-01 20:48:13 +04:00
2015-08-08 17:19:26 +02:00
set ( PLUGIN_DYLIB_IN_BUNDLE "${PLUGIN_INSTALL_BASE}/${PLUGIN_RELATIVE}" )
set ( PLUGINS ${ PLUGINS } "${PLUGIN_DYLIB_IN_BUNDLE}" )
install ( CODE "
copy_resolved_item_into_bundle ( \"${PLUGIN}\" \"${PLUGIN_DYLIB_IN_BUNDLE}\")
" C O M P O N E N T R u n t i m e )
endforeach ( )
set ( ${ plugins_var } ${ PLUGINS } PARENT_SCOPE )
endfunction ( install_plugins_for_bundle )
2016-10-28 15:39:27 +02:00
install_plugins_for_bundle ( "${APP_BUNDLE_NAME}" PLUGINS )
install_plugins_for_bundle ( "${OPENCS_BUNDLE_NAME}" OPENCS_PLUGINS )
2015-08-08 17:19:26 +02:00
2017-07-30 15:42:16 +02:00
set ( PLUGINS ${ PLUGINS } "${INSTALLED_OPENMW_APP}/Contents/PlugIns/${QT_COCOA_PLUGIN_GROUP}/${QT_COCOA_PLUGIN_NAME}" )
set ( OPENCS_PLUGINS ${ OPENCS_PLUGINS } "${INSTALLED_OPENCS_APP}/Contents/PlugIns/${QT_COCOA_PLUGIN_GROUP}/${QT_COCOA_PLUGIN_NAME}" )
2012-02-01 20:48:13 +04:00
2015-08-03 19:21:35 +02:00
install ( CODE "
2015-08-08 17:19:26 +02:00
function ( gp_item_default_embedded_path_override item default_embedded_path_var )
2015-11-12 23:37:03 +01:00
if ( \${item} MATCHES ${ OSG_PLUGIN_PREFIX_DIR } )
set ( path \"@executable_path/../PlugIns/${OSG_PLUGIN_PREFIX_DIR}\")
2015-08-08 17:19:26 +02:00
set ( \${default_embedded_path_var} \"\${path}\" PARENT_SCOPE )
endif ( )
endfunction ( )
2015-11-13 01:19:56 +01:00
fixup_bundle ( \"${INSTALLED_OPENMW_APP}\" \"${PLUGINS}\" \"\")
fixup_bundle ( \"${INSTALLED_OPENCS_APP}\" \"${OPENCS_PLUGINS}\" \"\")
2015-08-03 19:21:35 +02:00
" C O M P O N E N T R u n t i m e )
include ( CPack )
2017-07-30 15:42:16 +02:00
endif ( )
2012-08-22 21:11:03 +03:00
2014-10-12 11:28:56 +02:00
# Doxygen Target -- simply run 'make doc' or 'make doc_pages'
2014-10-12 18:30:39 +02:00
# output directory for 'make doc' is "${OpenMW_BINARY_DIR}/docs/Doxygen"
# output directory for 'make doc_pages' is "${DOXYGEN_PAGES_OUTPUT_DIR}" if defined
# or "${OpenMW_BINARY_DIR}/docs/Pages" otherwise
2014-10-12 11:28:56 +02:00
find_package ( Doxygen )
2014-10-12 18:30:39 +02:00
if ( DOXYGEN_FOUND )
# determine output directory for doc_pages
if ( NOT DEFINED DOXYGEN_PAGES_OUTPUT_DIR )
set ( DOXYGEN_PAGES_OUTPUT_DIR "${OpenMW_BINARY_DIR}/docs/Pages" )
endif ( )
configure_file ( ${ OpenMW_SOURCE_DIR } /docs/Doxyfile.cmake ${ OpenMW_BINARY_DIR } /docs/Doxyfile @ONLY )
configure_file ( ${ OpenMW_SOURCE_DIR } /docs/DoxyfilePages.cmake ${ OpenMW_BINARY_DIR } /docs/DoxyfilePages @ONLY )
2014-10-12 11:28:56 +02:00
add_custom_target ( doc
$ { D O X Y G E N _ E X E C U T A B L E } $ { O p e n M W _ B I N A R Y _ D I R } / d o c s / D o x y f i l e
W O R K I N G _ D I R E C T O R Y $ { O p e n M W _ B I N A R Y _ D I R }
2014-10-12 18:30:39 +02:00
C O M M E N T " G e n e r a t i n g D o x y g e n d o c u m e n t a t i o n a t $ { O p e n M W _ B I N A R Y _ D I R } / d o c s / D o x y g e n "
V E R B A T I M )
2014-10-12 11:28:56 +02:00
add_custom_target ( doc_pages
$ { D O X Y G E N _ E X E C U T A B L E } $ { O p e n M W _ B I N A R Y _ D I R } / d o c s / D o x y f i l e P a g e s
W O R K I N G _ D I R E C T O R Y $ { O p e n M W _ B I N A R Y _ D I R }
2014-10-12 18:30:39 +02:00
C O M M E N T " G e n e r a t i n g d o c u m e n t a t i o n f o r t h e g i t h u b - p a g e s a t $ { D O X Y G E N _ P A G E S _ O U T P U T _ D I R } " V E R B A T I M )
endif ( )
2016-11-13 13:32:42 -06:00