127 lines
4.2 KiB
CMake
127 lines
4.2 KiB
CMake
#-----------------------------------------------------------------------------
|
|
#
|
|
# NeLNS
|
|
# Author: Nevrax
|
|
#
|
|
# Notes:
|
|
# * Changing install location: add -DCMAKE_INSTALL_PREFIX:PATH=/my/new/path
|
|
# * Changing NeL prefix: add -DNEL_PREFIX_PATH:PATH=/my/nel/install
|
|
# * Changing specific install location variables:
|
|
# * NL_ETC_PREFIX (default: $CMAKE_INSTALL_PREFIX/etc)
|
|
# * NL_SHARE_PREFIX (default: $CMAKE_INSTALL_PREFIX/share)
|
|
# * NL_BIN_PREFIX (default: $CMAKE_INSTALL_PREFIX/bin)
|
|
# * NL_SBIN_PREFIX (default: $CMAKE_INSTALL_PREFIX/sbin)
|
|
# * Updating version: update header (above) but also update NL_VERSION below.
|
|
# * To build binary archive, use the 'package' target.
|
|
# To build source archive, use the 'package_source' target.
|
|
#
|
|
#-----------------------------------------------------------------------------
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Load some macros.
|
|
SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules;${CMAKE_MODULE_PATH}")
|
|
INCLUDE(CMakeModules/nel.cmake)
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Force out of source builds.
|
|
CHECK_OUT_OF_SOURCE()
|
|
|
|
IF(WIN32)
|
|
SET(CMAKE_INCLUDE_PATH "${CMAKE_SOURCE_DIR}/../3rdParty/include;${CMAKE_INCLUDE_PATH}")
|
|
SET(CMAKE_LIBRARY_PATH "${CMAKE_SOURCE_DIR}/../3rdParty/lib;${CMAKE_INCLUDE_PATH}")
|
|
IF(NOT DEFINED ENV{QTDIR})
|
|
SET(ENV{QTDIR} "c:/qt/4.5.0")
|
|
ENDIF(NOT DEFINED ENV{QTDIR})
|
|
ENDIF(WIN32)
|
|
|
|
IF(DEFINED NEL_PREFIX_PATH)
|
|
SET(CMAKE_INCLUDE_PATH "${NEL_PREFIX_PATH}/include;${CMAKE_INCLUDE_PATH}")
|
|
SET(CMAKE_LIBRARY_PATH "${NEL_PREFIX_PATH}/lib;${CMAKE_LIBRARY_PATH}")
|
|
ENDIF(DEFINED NEL_PREFIX_PATH)
|
|
|
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
|
|
|
|
PROJECT(NeLNS CXX C)
|
|
SET(NL_VERSION_MAJOR 0)
|
|
SET(NL_VERSION_MINOR 7)
|
|
SET(NL_VERSION_PATCH 0)
|
|
SET(NL_VERSION "${NL_VERSION_MAJOR}.${NL_VERSION_MINOR}.${NL_VERSION_PATCH}")
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Redirect output files
|
|
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
|
|
SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Set CMake 2.6 Policies.
|
|
IF(COMMAND cmake_policy)
|
|
# Works around warnings libraries linked against that don't
|
|
# have absolute paths (e.g. -lpthreads)
|
|
cmake_policy(SET CMP0003 NEW)
|
|
|
|
# Works around warnings about escaped quotes in ADD_DEFINITIONS
|
|
# statements
|
|
cmake_policy(SET CMP0005 OLD)
|
|
ENDIF(COMMAND cmake_policy)
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Set default config options
|
|
#
|
|
NL_SETUP_DEFAULT_OPTIONS()
|
|
NL_SETUP_PREFIX_PATHS()
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Override default options
|
|
OPTION(BUILD_SERVICES "Build NeLNS Services" ON )
|
|
OPTION(BUILD_LOGIN_SYSTEM "Build NeLNS Login System Tools" ON )
|
|
OPTION(BUILD_RYZOM_LAUNCHER "Build Ryzom Launcher" OFF)
|
|
|
|
#-----------------------------------------------------------------------------
|
|
#Platform specifics
|
|
|
|
FIND_PACKAGE(Threads REQUIRED)
|
|
FIND_PACKAGE(LibXml2 REQUIRED)
|
|
FIND_PACKAGE(MySQL)
|
|
FIND_PACKAGE(CURL)
|
|
FIND_PACKAGE(ZLIB)
|
|
|
|
IF(WITH_QT)
|
|
FIND_PACKAGE(Qt4 REQUIRED)
|
|
ENDIF(WITH_QT)
|
|
|
|
NL_SETUP_BUILD()
|
|
|
|
FIND_PACKAGE(NeLMISC)
|
|
FIND_PACKAGE(NeLNET)
|
|
|
|
IF(WIN32)
|
|
INCLUDE(${CMAKE_ROOT}/Modules/Platform/Windows-cl.cmake)
|
|
SET(WINSOCK2_LIB ws2_32.lib)
|
|
ENDIF(WIN32)
|
|
|
|
NL_SETUP_BUILD_FLAGS()
|
|
|
|
SET(ETCDIR "${NL_ETC_PREFIX}/nelns")
|
|
SET(PKGDIR "${NL_SHARE_PREFIX}/nelns")
|
|
SET(LOGDIR "${NL_LOG_PREFIX}/nelns")
|
|
ADD_DEFINITIONS(-DNELNS_CONFIG="\\"${ETCDIR}\\"" -DNELNS_STATE="\\"${PKGDIR}\\"" -DNELNS_LOGS="\\"${LOGDIR}\\"")
|
|
INSTALL(CODE "FILE(MAKE_DIRECTORY ${LOGDIR})")
|
|
|
|
IF(BUILD_SERVICES)
|
|
ADD_SUBDIRECTORY(admin_executor_service)
|
|
ADD_SUBDIRECTORY(admin_service)
|
|
ADD_SUBDIRECTORY(naming_service)
|
|
ADD_SUBDIRECTORY(login_service)
|
|
ADD_SUBDIRECTORY(welcome_service)
|
|
ENDIF(BUILD_SERVICES)
|
|
|
|
IF(BUILD_LOGIN_SYSTEM)
|
|
ADD_SUBDIRECTORY(login_system)
|
|
ENDIF(BUILD_LOGIN_SYSTEM)
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
#Packaging
|
|
INCLUDE(CMakePackaging.txt)
|
|
|