mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2025-11-29 17:38:24 +08:00
CMake: Use source_groups to represent the source tree (#1247)
This commit is contained in:
@@ -81,6 +81,7 @@ if( NOPCH )
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(CheckPlatform)
|
include(CheckPlatform)
|
||||||
|
include(GroupSources)
|
||||||
|
|
||||||
# basic packagesearching and setup (further support will be needed, this is a preliminary release!)
|
# basic packagesearching and setup (further support will be needed, this is a preliminary release!)
|
||||||
set(OPENSSL_EXPECTED_VERSION 1.0.0)
|
set(OPENSSL_EXPECTED_VERSION 1.0.0)
|
||||||
|
|||||||
@@ -11,3 +11,7 @@ option(WITHOUT_GIT "Disable the GIT testing routines"
|
|||||||
option(ENABLE_EXTRAS "Set to 0 to disable extra features optimizing performances" 1)
|
option(ENABLE_EXTRAS "Set to 0 to disable extra features optimizing performances" 1)
|
||||||
option(ENABLE_VMAP_CHECKS "Enable Checks relative to DisableMgr system on vmap" 1)
|
option(ENABLE_VMAP_CHECKS "Enable Checks relative to DisableMgr system on vmap" 1)
|
||||||
option(ENABLE_EXTRA_LOGS "Enable extra log functions that can be CPU intensive" 0)
|
option(ENABLE_EXTRA_LOGS "Enable extra log functions that can be CPU intensive" 0)
|
||||||
|
|
||||||
|
# Source tree in IDE
|
||||||
|
set(WITH_SOURCE_TREE "hierarchical" CACHE STRING "Build the source tree for IDE's.")
|
||||||
|
set_property(CACHE WITH_SOURCE_TREE PROPERTY STRINGS no flat hierarchical)
|
||||||
|
|||||||
46
src/cmake/macros/GroupSources.cmake
Normal file
46
src/cmake/macros/GroupSources.cmake
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# Copyright (C) 2008-2018 TrinityCore <https://www.trinitycore.org/>
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
macro(GroupSources dir)
|
||||||
|
# Skip this if WITH_SOURCE_TREE is not set (empty string).
|
||||||
|
if (NOT ${WITH_SOURCE_TREE} STREQUAL "")
|
||||||
|
# Include all header and c files
|
||||||
|
file(GLOB_RECURSE elements RELATIVE ${dir} *.h *.hpp *.c *.cpp *.cc)
|
||||||
|
|
||||||
|
foreach(element ${elements})
|
||||||
|
# Extract filename and directory
|
||||||
|
get_filename_component(element_name ${element} NAME)
|
||||||
|
get_filename_component(element_dir ${element} DIRECTORY)
|
||||||
|
|
||||||
|
if (NOT ${element_dir} STREQUAL "")
|
||||||
|
# If the file is in a subdirectory use it as source group.
|
||||||
|
if (${WITH_SOURCE_TREE} STREQUAL "flat")
|
||||||
|
# Build flat structure by using only the first subdirectory.
|
||||||
|
string(FIND ${element_dir} "/" delemiter_pos)
|
||||||
|
if (NOT ${delemiter_pos} EQUAL -1)
|
||||||
|
string(SUBSTRING ${element_dir} 0 ${delemiter_pos} group_name)
|
||||||
|
source_group("${group_name}" FILES ${dir}/${element})
|
||||||
|
else()
|
||||||
|
# Build hierarchical structure.
|
||||||
|
# File is in root directory.
|
||||||
|
source_group("${element_dir}" FILES ${dir}/${element})
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
# Use the full hierarchical structure to build source_groups.
|
||||||
|
string(REPLACE "/" "\\" group_name ${element_dir})
|
||||||
|
source_group("${group_name}" FILES ${dir}/${element})
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
# If the file is in the root directory, place it in the root source_group.
|
||||||
|
source_group("\\" FILES ${dir}/${element})
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
@@ -1,19 +1,19 @@
|
|||||||
# output generic information about the core and buildtype chosen
|
# output generic information about the core and buildtype chosen
|
||||||
message("")
|
message("")
|
||||||
message("* AzerothCore revision : ${rev_hash} ${rev_date} (${rev_branch} branch)")
|
message("* AzerothCore revision : ${rev_hash} ${rev_date} (${rev_branch} branch)")
|
||||||
if( UNIX )
|
if( UNIX )
|
||||||
message("* AzerothCore buildtype : ${CMAKE_BUILD_TYPE}")
|
message("* AzerothCore buildtype : ${CMAKE_BUILD_TYPE}")
|
||||||
endif()
|
endif()
|
||||||
message("")
|
message("")
|
||||||
|
|
||||||
# output information about installation-directories and locations
|
# output information about installation-directories and locations
|
||||||
|
|
||||||
message("* Install core to : ${CMAKE_INSTALL_PREFIX}")
|
message("* Install core to : ${CMAKE_INSTALL_PREFIX}")
|
||||||
if( UNIX )
|
if( UNIX )
|
||||||
message("* Install libraries to : ${LIBSDIR}")
|
message("* Install libraries to : ${LIBSDIR}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
message("* Install configs to : ${CONF_DIR}")
|
message("* Install configs to : ${CONF_DIR}")
|
||||||
add_definitions(-D_CONF_DIR="\\"${CONF_DIR}\\"")
|
add_definitions(-D_CONF_DIR="\\"${CONF_DIR}\\"")
|
||||||
|
|
||||||
message("")
|
message("")
|
||||||
@@ -21,69 +21,69 @@ message("")
|
|||||||
# Show infomation about the options selected during configuration
|
# Show infomation about the options selected during configuration
|
||||||
|
|
||||||
if( SERVERS )
|
if( SERVERS )
|
||||||
message("* Build world/auth : Yes (default)")
|
message("* Build world/auth : Yes (default)")
|
||||||
else()
|
else()
|
||||||
message("* Build world/authserver : No")
|
message("* Build world/authserver : No")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if( SCRIPTS )
|
if( SCRIPTS )
|
||||||
message("* Build with scripts : Yes (default)")
|
message("* Build with scripts : Yes (default)")
|
||||||
add_definitions(-DSCRIPTS)
|
add_definitions(-DSCRIPTS)
|
||||||
else()
|
else()
|
||||||
message("* Build with scripts : No")
|
message("* Build with scripts : No")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if( TOOLS )
|
if( TOOLS )
|
||||||
message("* Build map/vmap tools : Yes")
|
message("* Build map/vmap tools : Yes")
|
||||||
add_definitions(-DNO_CORE_FUNCS)
|
add_definitions(-DNO_CORE_FUNCS)
|
||||||
else()
|
else()
|
||||||
message("* Build map/vmap tools : No (default)")
|
message("* Build map/vmap tools : No (default)")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if( USE_COREPCH )
|
if( USE_COREPCH )
|
||||||
message("* Build core w/PCH : Yes (default)")
|
message("* Build core w/PCH : Yes (default)")
|
||||||
else()
|
else()
|
||||||
message("* Build core w/PCH : No")
|
message("* Build core w/PCH : No")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if( USE_SCRIPTPCH )
|
if( USE_SCRIPTPCH )
|
||||||
message("* Build scripts w/PCH : Yes (default)")
|
message("* Build scripts w/PCH : Yes (default)")
|
||||||
else()
|
else()
|
||||||
message("* Build scripts w/PCH : No")
|
message("* Build scripts w/PCH : No")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if( WITH_WARNINGS )
|
if( WITH_WARNINGS )
|
||||||
message("* Show all warnings : Yes")
|
message("* Show all warnings : Yes")
|
||||||
else()
|
else()
|
||||||
message("* Show compile-warnings : No (default)")
|
message("* Show compile-warnings : No (default)")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if( WITH_COREDEBUG )
|
if( WITH_COREDEBUG )
|
||||||
message("* Use coreside debug : Yes")
|
message("* Use coreside debug : Yes")
|
||||||
add_definitions(-DTRINITY_DEBUG)
|
add_definitions(-DTRINITY_DEBUG)
|
||||||
else()
|
else()
|
||||||
message("* Use coreside debug : No (default)")
|
message("* Use coreside debug : No (default)")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if ( UNIX )
|
if ( UNIX )
|
||||||
if( WITH_PERFTOOLS )
|
if( WITH_PERFTOOLS )
|
||||||
message("* Use unix gperftools : Yes")
|
message("* Use unix gperftools : Yes")
|
||||||
add_definitions(-DPERF_TOOLS)
|
add_definitions(-DPERF_TOOLS)
|
||||||
else()
|
else()
|
||||||
message("* Use unix gperftools : No (default)")
|
message("* Use unix gperftools : No (default)")
|
||||||
endif()
|
endif()
|
||||||
endif( UNIX )
|
endif( UNIX )
|
||||||
|
|
||||||
if( WIN32 )
|
if( WIN32 )
|
||||||
if( USE_MYSQL_SOURCES )
|
if( USE_MYSQL_SOURCES )
|
||||||
message("* Use MySQL sourcetree : Yes (default)")
|
message("* Use MySQL sourcetree : Yes (default)")
|
||||||
else()
|
else()
|
||||||
message("* Use MySQL sourcetree : No")
|
message("* Use MySQL sourcetree : No")
|
||||||
endif()
|
endif()
|
||||||
endif( WIN32 )
|
endif( WIN32 )
|
||||||
|
|
||||||
if ( WITHOUT_GIT )
|
if ( WITHOUT_GIT )
|
||||||
message("* Use GIT revision hash : No")
|
message("* Use GIT revision hash : No")
|
||||||
message("")
|
message("")
|
||||||
message(" *** WITHOUT_GIT - WARNING!")
|
message(" *** WITHOUT_GIT - WARNING!")
|
||||||
message(" *** By choosing the WITHOUT_GIT option you have waived all rights for support,")
|
message(" *** By choosing the WITHOUT_GIT option you have waived all rights for support,")
|
||||||
@@ -94,7 +94,7 @@ if ( WITHOUT_GIT )
|
|||||||
message(" *** version of git for the revision-hash to work, and be allowede to ask for")
|
message(" *** version of git for the revision-hash to work, and be allowede to ask for")
|
||||||
message(" *** support if needed.")
|
message(" *** support if needed.")
|
||||||
else()
|
else()
|
||||||
message("* Use GIT revision hash : Yes")
|
message("* Use GIT revision hash : Yes (default)")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if ( NOJEM )
|
if ( NOJEM )
|
||||||
@@ -108,24 +108,34 @@ endif()
|
|||||||
# Performance optimization options:
|
# Performance optimization options:
|
||||||
|
|
||||||
if( ENABLE_EXTRAS )
|
if( ENABLE_EXTRAS )
|
||||||
message("* Enable extra features : Yes (default)")
|
message("* Enable extra features : Yes (default)")
|
||||||
add_definitions(-DENABLE_EXTRAS)
|
add_definitions(-DENABLE_EXTRAS)
|
||||||
else()
|
else()
|
||||||
message("* Enable extra features : No")
|
message("* Enable extra features : No")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if( ENABLE_VMAP_CHECKS )
|
if( ENABLE_VMAP_CHECKS )
|
||||||
message("* Enable vmap DisableMgr checks : Yes (default)")
|
message("* Enable vmap DisableMgr checks : Yes (default)")
|
||||||
add_definitions(-DENABLE_VMAP_CHECKS)
|
add_definitions(-DENABLE_VMAP_CHECKS)
|
||||||
else()
|
else()
|
||||||
message("* Enable vmap DisableMgr checks : No")
|
message("* Enable vmap DisableMgr checks : No")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if( ENABLE_EXTRA_LOGS )
|
if( ENABLE_EXTRA_LOGS )
|
||||||
message("* Enable extra logging functions : Yes")
|
message("* Enable extra logging functions : Yes")
|
||||||
add_definitions(-DENABLE_EXTRA_LOGS)
|
add_definitions(-DENABLE_EXTRA_LOGS)
|
||||||
else()
|
else()
|
||||||
message("* Enable extra logging functions : No (default)")
|
message("* Enable extra logging functions : No (default)")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(WIN32 AND NOT CMAKE_VERSION VERSION_LESS 2.8.12)
|
||||||
|
if(NOT WITH_SOURCE_TREE STREQUAL "no")
|
||||||
|
message("* Show source tree : Yes - \"${WITH_SOURCE_TREE}\"")
|
||||||
|
else()
|
||||||
|
message("* Show source tree : No")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message("* Show source tree : No (For UNIX default)")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
message("")
|
message("")
|
||||||
|
|||||||
@@ -78,6 +78,9 @@ include_directories(
|
|||||||
${OPENSSL_INCLUDE_DIR}
|
${OPENSSL_INCLUDE_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Group sources
|
||||||
|
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
add_library(shared STATIC
|
add_library(shared STATIC
|
||||||
${shared_STAT_SRCS}
|
${shared_STAT_SRCS}
|
||||||
${shared_STAT_PCH_SRC}
|
${shared_STAT_PCH_SRC}
|
||||||
|
|||||||
@@ -61,6 +61,9 @@ include_directories(
|
|||||||
${OPENSSL_INCLUDE_DIR}
|
${OPENSSL_INCLUDE_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Group sources
|
||||||
|
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
add_executable(authserver
|
add_executable(authserver
|
||||||
${authserver_SRCS}
|
${authserver_SRCS}
|
||||||
${authserver_PCH_SRC}
|
${authserver_PCH_SRC}
|
||||||
|
|||||||
@@ -213,6 +213,9 @@ include_directories(
|
|||||||
${OPENSSL_INCLUDE_DIR}
|
${OPENSSL_INCLUDE_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Group sources
|
||||||
|
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
add_library(game STATIC
|
add_library(game STATIC
|
||||||
${game_STAT_SRCS}
|
${game_STAT_SRCS}
|
||||||
${game_STAT_PCH_SRC}
|
${game_STAT_PCH_SRC}
|
||||||
|
|||||||
@@ -180,6 +180,9 @@ include_directories(
|
|||||||
${MYSQL_INCLUDE_DIR}
|
${MYSQL_INCLUDE_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Group sources
|
||||||
|
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
add_library(scripts STATIC
|
add_library(scripts STATIC
|
||||||
${scripts_STAT_SRCS}
|
${scripts_STAT_SRCS}
|
||||||
${scripts_STAT_PCH_SRC}
|
${scripts_STAT_PCH_SRC}
|
||||||
|
|||||||
@@ -153,6 +153,9 @@ add_executable(worldserver
|
|||||||
${worldserver_PCH_SRC}
|
${worldserver_PCH_SRC}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Group sources
|
||||||
|
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
if( NOT WIN32 )
|
if( NOT WIN32 )
|
||||||
set_target_properties(worldserver PROPERTIES
|
set_target_properties(worldserver PROPERTIES
|
||||||
COMPILE_DEFINITIONS _TRINITY_CORE_CONFIG="${CONF_DIR}/worldserver.conf"
|
COMPILE_DEFINITIONS _TRINITY_CORE_CONFIG="${CONF_DIR}/worldserver.conf"
|
||||||
|
|||||||
Reference in New Issue
Block a user