blob: 623c3f9faafed7671afdeb4fbbb50e3e5a4ee961 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
#
# This file is part of the AzerothCore Project. See AUTHORS file for Copyright information
#
# 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(BUILD_APPLICATION_AUTHSERVER 0)
set(BUILD_APPLICATION_WORLDSERVER 0)
# Returns the base path to the apps directory in the source directory
function(GetApplicationsBasePath variable)
set(${variable} "${CMAKE_SOURCE_DIR}/src/server/apps" PARENT_SCOPE)
endfunction()
# Stores the absolut path of the given app in the variable
function(GetPathToApplication app variable)
GetApplicationsBasePath(APPS_BASE_PATH)
set(${variable} "${APPS_BASE_PATH}/${app}" PARENT_SCOPE)
endfunction()
# Stores the project name of the given app in the variable
function(GetProjectNameOfApplicationName app variable)
string(TOLOWER "${app}" GENERATED_NAME)
set(${variable} "${GENERATED_NAME}" PARENT_SCOPE)
endfunction()
# Creates a list of all applications and stores it in the given variable.
function(GetApplicationsList variable)
GetApplicationsBasePath(BASE_PATH)
file(GLOB LOCALE_SOURCE_APP_LIST RELATIVE
${BASE_PATH}
${BASE_PATH}/*)
set(${variable})
foreach(SOURCE_APP ${LOCALE_SOURCE_APP_LIST})
GetPathToApplication(${SOURCE_APP} SOURCE_APP_PATH)
if(IS_DIRECTORY ${SOURCE_APP_PATH})
list(APPEND ${variable} ${SOURCE_APP})
endif()
endforeach()
set(${variable} ${${variable}} PARENT_SCOPE)
endfunction()
# Converts the given application name into it's
# variable name which holds the build type.
function(ApplicationNameToVariable application variable)
string(TOUPPER ${application} ${variable})
set(${variable} "APP_${${variable}}")
set(${variable} ${${variable}} PARENT_SCOPE)
endfunction()
function(CheckApplicationsBuildList)
GetApplicationsList(APPLICATIONS_BUILD_LIST)
if (APPS_BUILD STREQUAL "none")
set(APPS_DEFAULT_BUILD "disabled")
else()
set(APPS_DEFAULT_BUILD "enabled")
endif()
# Sets BUILD_APPS_USE_WHITELIST
# Sets BUILD_APPS_WHITELIST
if (APPS_BUILD MATCHES "-only")
set(BUILD_APPS_USE_WHITELIST ON)
if (APPS_BUILD STREQUAL "auth-only")
list(APPEND BUILD_APPS_WHITELIST authserver)
endif()
if (APPS_BUILD STREQUAL "world-only")
list(APPEND BUILD_APPS_WHITELIST worldserver)
endif()
endif()
foreach(APPLICATION_BUILD_NAME ${APPLICATIONS_BUILD_LIST})
ApplicationNameToVariable(${APPLICATION_BUILD_NAME} APPLICATION_BUILD_VARIABLE)
if(${APPLICATION_BUILD_VARIABLE} STREQUAL "default")
if(BUILD_APPS_USE_WHITELIST)
list(FIND BUILD_APPS_WHITELIST "${APPLICATION_BUILD_NAME}" INDEX)
if(${INDEX} GREATER -1)
set(${APPLICATION_BUILD_VARIABLE} ${APPS_DEFAULT_BUILD})
else()
set(${APPLICATION_BUILD_VARIABLE} "disabled")
endif()
else()
set(${APPLICATION_BUILD_VARIABLE} ${APPS_DEFAULT_BUILD})
endif()
endif()
# Build the Graph values
if(${APPLICATION_BUILD_VARIABLE} MATCHES "enabled")
if (${APPLICATION_BUILD_NAME} MATCHES "authserver")
set (BUILD_APPLICATION_AUTHSERVER 1 PARENT_SCOPE)
elseif(${APPLICATION_BUILD_NAME} MATCHES "worldserver")
set (BUILD_APPLICATION_WORLDSERVER 1 PARENT_SCOPE)
endif()
endif()
endforeach()
endfunction()
|