# Copyright (C) # # This file is free software; as a special exception the author gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # Set projectname (must be done AFTER setting configurationtypes) project(AzerothCore) # CMake policies (can not be handled elsewhere) cmake_minimum_required(VERSION 2.8) cmake_policy(SET CMP0005 OLD) # add this options before PROJECT keyword set(CMAKE_DISABLE_SOURCE_CHANGES ON) set(CMAKE_DISABLE_IN_SOURCE_BUILD ON) # Set RPATH-handing (CMake parameters) set(CMAKE_SKIP_BUILD_RPATH 0) set(CMAKE_BUILD_WITH_INSTALL_RPATH 0) set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") set(CMAKE_INSTALL_RPATH_USE_LINK_PATH 1) set(AC_PATH_ROOT "${CMAKE_SOURCE_DIR}") # set macro-directory set(CMAKE_MODULE_PATH "${AC_PATH_ROOT}/modules/worldengine/nucleus/src/cmake/macros") include(CheckCXXSourceRuns) include(CheckIncludeFiles) # some utils for cmake include(modules/uwd/cmake-utils/utils.cmake) include(src/cmake/ac_macros.cmake) # set default buildoptions and print them include(conf/config.cmake.dist) # load custom configurations for cmake if exists if(EXISTS "conf/config.cmake") include(conf/config.cmake) endif() CU_RUN_HOOK("AFTER_LOAD_CONF") # build in Release-mode by default if not explicitly set if( NOT CMAKE_BUILD_TYPE ) set(CMAKE_BUILD_TYPE "Release") endif() # turn off PCH totally if enabled (hidden setting, mainly for devs) if( NOPCH ) set(USE_COREPCH 0) set(USE_SCRIPTPCH 0) endif() include(CheckPlatform) # basic packagesearching and setup (further support will be needed, this is a preliminary release!) set(OPENSSL_EXPECTED_VERSION 1.0.0) set(ACE_EXPECTED_VERSION 6.0.3) find_package(PCHSupport) find_package(ACE REQUIRED) find_package(OpenSSL REQUIRED) find_package(Threads REQUIRED) find_package(MySQL REQUIRED) if( UNIX ) find_package(Readline) find_package(ZLIB) find_package(BZip2) endif() if(NOT WITHOUT_GIT) find_package(Git) endif() # Find revision ID and hash of the sourcetree include(src/cmake/genrev.cmake) # print out the results before continuing include(src/cmake/showoptions.cmake) # # Loading framework # add_subdirectory(modules/worldengine/deps) if( SERVERS OR TOOLS) add_subdirectory(modules/worldengine/nucleus) add_subdirectory(modules/worldengine/lib-collision) add_subdirectory(modules/acore/game-framework) endif() if( TOOLS ) add_subdirectory(modules/acore/extractors) endif() # # Loading dyn modules # # add modules and dependencies CU_SUBDIRLIST(sub_DIRS "${CMAKE_SOURCE_DIR}/modules" FALSE FALSE) FOREACH(subdir ${sub_DIRS}) STRING(REGEX REPLACE "^${CMAKE_SOURCE_DIR}/" "" subdir_rel ${subdir}) if(EXISTS "${subdir}/CMakeLists.txt") message("Loading module: ${subdir_rel}") add_subdirectory("${subdir_rel}") endif() ENDFOREACH() # # Loading application sources # CU_RUN_HOOK("BEFORE_SRC_LOAD") # add core sources add_subdirectory(src) CU_RUN_HOOK("AFTER_SRC_LOAD")