From 33fd34a42e806c7b43c5f0786c8ec50852d49cf1 Mon Sep 17 00:00:00 2001 From: cipherCOM Date: Sun, 13 Feb 2011 03:42:09 +0300 Subject: [PATCH] [11167] Added CMake support (based on cipherCOM's commit 0039476) Signed-off-by: VladimirMangos --- .gitignore | 23 + CMakeLists.txt | 423 ++++++++++++++++++ cmake/FindACE.cmake | 68 +++ cmake/FindGit.cmake | 46 ++ cmake/FindMySQL.cmake | 152 +++++++ cmake/FindOpenSSL.cmake | 107 +++++ cmake/FindPCHSupport.cmake | 322 +++++++++++++ cmake/FindPlatform.cmake | 23 + cmake/FindReadline.cmake | 22 + cmake/FindTBB.cmake | 91 ++++ cmake/FindTermcap.cmake | 33 ++ cmake/FindVisualStudio2010.cmake | 20 + cmake/ImportACE.cmake | 59 +++ cmake/ImportTBB.cmake | 100 +++++ cmake/cmake_uninstall.cmake.in | 23 + config.h.cmake | 10 + createprojects.bat | 15 + dep/ACE_wrappers/CMakeLists.txt | 78 ++++ dep/ACE_wrappers/ace/config.h.win | 1 + dep/CMakeLists.txt | 27 ++ dep/src/CMakeLists.txt | 24 + dep/src/g3dlite/CMakeLists.txt | 78 ++++ dep/src/gsoap/CMakeLists.txt | 28 ++ dep/src/zlib/CMakeLists.txt | 40 ++ dep/tbb/CMakeLists.txt | 82 ++++ dep/tbb/build/Makefile.tbb | 4 +- dep/tbb/build/common.inc | 2 +- dep/tbb/build/vs100project/index.html | 31 ++ dep/tbb/build/vs100project/makefile.sln | 50 +++ dep/tbb/build/vs100project/tbb.vcxproj | 346 ++++++++++++++ dep/tbb/build/vs100project/tbbmalloc.vcxproj | 337 ++++++++++++++ .../vs100project/tbbmalloc_proxy.vcxproj | 222 +++++++++ dep/tbb/build/vs100project/version_string.tmp | 1 + src/CMakeLists.txt | 34 ++ src/bindings/CMakeLists.txt | 19 + src/bindings/universal/CMakeLists.txt | 85 ++++ src/framework/CMakeLists.txt | 72 +++ src/game/CMakeLists.txt | 108 +++++ src/mangosd/CMakeLists.txt | 98 ++++ src/mangosd/mangosd.conf.dist.in | 2 +- src/realmd/CMakeLists.txt | 88 ++++ src/shared/CMakeLists.txt | 73 +++ src/shared/revision_nr.h | 2 +- 43 files changed, 3465 insertions(+), 4 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 cmake/FindACE.cmake create mode 100644 cmake/FindGit.cmake create mode 100644 cmake/FindMySQL.cmake create mode 100644 cmake/FindOpenSSL.cmake create mode 100644 cmake/FindPCHSupport.cmake create mode 100644 cmake/FindPlatform.cmake create mode 100644 cmake/FindReadline.cmake create mode 100644 cmake/FindTBB.cmake create mode 100644 cmake/FindTermcap.cmake create mode 100644 cmake/FindVisualStudio2010.cmake create mode 100644 cmake/ImportACE.cmake create mode 100644 cmake/ImportTBB.cmake create mode 100644 cmake/cmake_uninstall.cmake.in create mode 100644 config.h.cmake create mode 100755 createprojects.bat create mode 100644 dep/ACE_wrappers/CMakeLists.txt create mode 100755 dep/ACE_wrappers/ace/config.h.win create mode 100644 dep/CMakeLists.txt create mode 100644 dep/src/CMakeLists.txt create mode 100644 dep/src/g3dlite/CMakeLists.txt create mode 100644 dep/src/gsoap/CMakeLists.txt create mode 100644 dep/src/zlib/CMakeLists.txt create mode 100644 dep/tbb/CMakeLists.txt create mode 100644 dep/tbb/build/vs100project/index.html create mode 100644 dep/tbb/build/vs100project/makefile.sln create mode 100644 dep/tbb/build/vs100project/tbb.vcxproj create mode 100644 dep/tbb/build/vs100project/tbbmalloc.vcxproj create mode 100644 dep/tbb/build/vs100project/tbbmalloc_proxy.vcxproj create mode 100644 dep/tbb/build/vs100project/version_string.tmp create mode 100644 src/CMakeLists.txt create mode 100644 src/bindings/CMakeLists.txt create mode 100644 src/bindings/universal/CMakeLists.txt create mode 100644 src/framework/CMakeLists.txt create mode 100644 src/game/CMakeLists.txt create mode 100644 src/mangosd/CMakeLists.txt create mode 100644 src/realmd/CMakeLists.txt create mode 100644 src/shared/CMakeLists.txt diff --git a/.gitignore b/.gitignore index 375c0ba46ec..853e2948af6 100644 --- a/.gitignore +++ b/.gitignore @@ -80,8 +80,31 @@ cmake_install.cmake # # Special exceptions # + +# cmake generated files in sources +dep/ACE_wrappers/ace/ACE_vc8.vcxproj* +dep/ACE_wrappers/ace/Backup* +dep/ACE_wrappers/ace/Debug* +dep/ACE_wrappers/ace/ETCL/ACE_ETCL_Parser_vc8.vcxproj* +dep/ACE_wrappers/ace/ETCL/ACE_ETCL_vc8.vcxproj* +dep/ACE_wrappers/ace/ETCL/Debug* +dep/ACE_wrappers/ace/ETCL/Release* +dep/ACE_wrappers/ace/Monitor_Control/Debug* +dep/ACE_wrappers/ace/Monitor_Control/Monitor_Control_vc8.vcxproj* +dep/ACE_wrappers/ace/Monitor_Control/Release* +dep/ACE_wrappers/ace/QoS/Debug* +dep/ACE_wrappers/ace/QoS/QoS_vc8.vcxproj* +dep/ACE_wrappers/ace/QoS/Release* +dep/ACE_wrappers/ace/UpgradeLog* +dep/ACE_wrappers/ace/Release* +dep/ACE_wrappers/ace/_UpgradeReport_Files* +dep/ACE_wrappers/lib/* +dep/ACE_wrappers/ace/config.h + +# ned files from excluded dirs !dep/ACE_wrappers/ace/ace_message_table.bin !dep/ACE_wrappers/bin/GNUmakefile.bin !dep/ACE_wrappers/configure.ac~ !dep/ACE_wrappers/lib/.empty !dep/tbb/src/Makefile + diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000000..b66a8c00f3e --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,423 @@ +# +# Copyright (C) 2005-2011 MaNGOS project +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +project(MaNGOS) +set(MANGOS_VERSION 0.17.0) + +# CMake policies +cmake_minimum_required(VERSION 2.8) + +set(CMAKE_MODULE_PATH + ${CMAKE_MODULE_PATH} + ${CMAKE_SOURCE_DIR}/cmake +) + +# Force out-of-source build +string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" BUILDING_IN_SOURCE) +if(BUILDING_IN_SOURCE) + message(FATAL_ERROR + "This project requires an out of source build. Remove the file 'CMakeCache.txt' found in this directory before continuing, create a separate build directory and run 'cmake [options]' from there." + ) +endif() + +if(WIN32 AND NOT MSVC) + message(FATAL_ERROR + "Under Windows other compiler than Microsoft Visual Studio are not supported." + ) +endif() + +find_package(Platform REQUIRED) +find_package(Git) + +# VS100 uses MSBuild.exe instead of devenv.com, so force it to use devenv.com +if(WIN32 AND MSVC_VERSION MATCHES 1600) + find_package(VisualStudio2010) +endif() + +# if(NOT PLATFORM MATCHES X86 AND NOT PLATFORM MATCHES X64) +# message(FATAL_ERROR +# "An unknown Architecture was selected. Only the values X86 and X64 for PLATFORM are supported." +# ) +# endif() + +# Output description of this script +message( + "\nThis script builds the MaNGOS server. + Options that can be used in order to configure the process: + PREFIX: Path where the server should be installed to + PCH: Use precompiled headers + DEBUG: Debug mode + To set an option simply type -D