From ff3f5344a96dd38cfedad07614770d19d4164988 Mon Sep 17 00:00:00 2001 From: Foereaper Date: Sun, 29 Mar 2015 01:51:26 +0100 Subject: [PATCH] Large rearrangement and cleanup of base cmake system Thanks to Trinity for some conceptual inspirations! --- CMakeLists.txt | 417 +++++++------------------------------ cmake/FindPlatform.cmake | 40 ++-- cmake/FindReadline.cmake | 22 -- cmake/FindTermcap.cmake | 33 --- cmake/SetDefinitions.cmake | 154 ++++++++++++++ 5 files changed, 249 insertions(+), 417 deletions(-) delete mode 100644 cmake/FindReadline.cmake delete mode 100644 cmake/FindTermcap.cmake create mode 100644 cmake/SetDefinitions.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d0b5053..ee7f1a8d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,6 +16,9 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +project(MaNGOS) +set(MANGOS_VERSION 0.21) + # CMake policies cmake_minimum_required(VERSION 2.8) # Until CMake 3.0 is the standard @@ -24,35 +27,31 @@ if(POLICY CMP0043) cmake_policy(SET CMP0043 OLD) endif() -project(MaNGOS) -set(MANGOS_VERSION 0.21) +set(CMAKE_SKIP_BUILD_RPATH FALSE) +set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) +set(CMAKE_INSTALL_RPATH "${LIBS_DIR}") +set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) -set(CMAKE_MODULE_PATH - "${CMAKE_MODULE_PATH}" - "${CMAKE_SOURCE_DIR}/cmake" -) +# Set the correct macro directory path +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") -# define all options here +# Define available cmake options below if(WIN32) - set(CONF_DIR "" CACHE STRING "Config path. Can be absolute or relative") + set(CONF_DIR "" CACHE STRING "Path to the configs, can be absolute or relative.") else() - set(CONF_DIR "etc/" CACHE STRING "Config path. Can be absolute or relative") + set(CONF_DIR "etc/" CACHE STRING "Path to the configs, can be absolute or relative.") endif() -option(DEBUG "Debug mode" OFF) -option(USE_STD_MALLOC "Use standard malloc instead of TBB" ON) -option(ACE_USE_EXTERNAL "Use external ACE" OFF) -option(POSTGRESQL "Use PostgreSQL" OFF) -option(BUILD_TOOLS "Build tools (map/vmap/mmap extractors)" ON) -option(SCRIPT_LIB_ELUNA "Use Eluna as the scripting engine" ON) -option(SCRIPT_LIB_SD2 "Use ScriptDev2 as the scripting engine" ON) -option(SOAP "Enable access via SOAP or not" OFF) -option(PCH "Use precompiled headers" ON) -# TODO: options that should be checked/created: -#option(CLI "With CLI" ON) -#option(RA "With Remote Access" OFF) -#option(SQL "Copy SQL files" OFF) +option(DEBUG "Debug mode (strict compile, all warnings)" OFF) +option(ACE_USE_EXTERNAL "Use external ACE" OFF) +option(POSTGRESQL "Use PostgreSQL instead of MySQL" OFF) +option(BUILD_TOOLS "Build the map/vmap/mmap extractors" ON) +option(SCRIPT_LIB_ELUNA "Compile with support for Eluna scripts" ON) +option(SCRIPT_LIB_SD2 "Compile with support for ScriptDev2 scripts" ON) +option(SOAP "Enable remote access via SOAP" OFF) +# Hidden option to enable/disable PCH. DEV ONLY! +set(PCH ON) -# Output description of this script +# Print CLI helper message message("") message( "This script builds the MaNGOS server. @@ -60,16 +59,13 @@ message( General: CMAKE_INSTALL_PREFIX Path where the server should be installed to CONF_DIR Path to the configs, can be absolute or relative. - PCH Use precompiled headers - DEBUG Debug mode - USE_STD_MALLOC Use standard malloc instead of TBB + DEBUG Debug mode (strict compile, all warnings) ACE_USE_EXTERNAL Use external ACE - BUILD_TOOLS Build map/vmap/mmap extractors + BUILD_TOOLS Build the map/vmap/mmap extractors SOAP Enable remote access via SOAP Scripting engines: SCRIPT_LIB_ELUNA Compile with support for Eluna scripts SCRIPT_LIB_SD2 Compile with support for ScriptDev2 scripts - To set an option simply type -D