Legends-of-Azeroth-Pandaria-5.4.8

Форк
0
373 строки · 13.0 Кб
1
# This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
2
#
3
# This program is free software; you can redistribute it and/or modify it
4
# under the terms of the GNU General Public License as published by the
5
# Free Software Foundation; either version 2 of the License, or (at your
6
# option) any later version.
7
#
8
# This program is distributed in the hope that it will be useful, but WITHOUT
9
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11
# more details.
12
#
13
# You should have received a copy of the GNU General Public License along
14
# with this program. If not, see <http://www.gnu.org/licenses/>.
15

16
#[=======================================================================[.rst:
17
FindMySQL
18
-----------
19

20
Find MySQL.
21

22
Imported Targets
23
^^^^^^^^^^^^^^^^
24

25
This module defines the following :prop_tgt:`IMPORTED` targets:
26

27
``MySQL::MySQL``
28
  MySQL client library, if found.
29

30
Result Variables
31
^^^^^^^^^^^^^^^^
32

33
This module will set the following variables in your project:
34

35
``MYSQL_FOUND``
36
  System has MySQL.
37
``MYSQL_INCLUDE_DIR``
38
  MySQL include directory.
39
``MYSQL_LIBRARY``
40
  MySQL library.
41
``MYSQL_EXECUTABLE``
42
  Path to mysql client binary.
43

44
Hints
45
^^^^^
46

47
Set ``MYSQL_ROOT_DIR`` to the root directory of MySQL installation.
48
#]=======================================================================]
49

50
set(MYSQL_FOUND 0)
51

52
set(_MYSQL_ROOT_HINTS
53
  ${MYSQL_ROOT_DIR}
54
  ENV MYSQL_ROOT_DIR
55
)
56

57
if(UNIX)
58
  set(MYSQL_CONFIG_PREFER_PATH "$ENV{MYSQL_HOME}/bin" CACHE FILEPATH
59
    "preferred path to MySQL (mysql_config)"
60
  )
61

62
  find_program(MYSQL_CONFIG mysql_config
63
    ${MYSQL_CONFIG_PREFER_PATH}
64
    /usr/local/mysql/bin/
65
    /usr/local/bin/
66
    /usr/bin/
67
  )
68

69
  if(MYSQL_CONFIG)
70
    message(STATUS "Using mysql-config: ${MYSQL_CONFIG}")
71
    # set INCLUDE_DIR
72
    execute_process(
73
      COMMAND "${MYSQL_CONFIG}" --include
74
      OUTPUT_VARIABLE MY_TMP
75
      OUTPUT_STRIP_TRAILING_WHITESPACE
76
    )
77

78
    string(REGEX REPLACE "-I([^ ]*)( .*)?" "\\1" MY_TMP "${MY_TMP}")
79
    set(MYSQL_ADD_INCLUDE_PATH ${MY_TMP} CACHE FILEPATH INTERNAL)
80
    #message("[DEBUG] MYSQL ADD_INCLUDE_PATH : ${MYSQL_ADD_INCLUDE_PATH}")
81
    # set LIBRARY_DIR
82
    execute_process(
83
      COMMAND "${MYSQL_CONFIG}" --libs_r
84
      OUTPUT_VARIABLE MY_TMP
85
      OUTPUT_STRIP_TRAILING_WHITESPACE
86
    )
87
    set(MYSQL_ADD_LIBRARIES "")
88
    string(REGEX MATCHALL "-l[^ ]*" MYSQL_LIB_LIST "${MY_TMP}")
89
    foreach(LIB ${MYSQL_LIB_LIST})
90
      string(REGEX REPLACE "[ ]*-l([^ ]*)" "\\1" LIB "${LIB}")
91
      list(APPEND MYSQL_ADD_LIBRARIES "${LIB}")
92
      #message("[DEBUG] MYSQL ADD_LIBRARIES : ${MYSQL_ADD_LIBRARIES}")
93
    endforeach(LIB ${MYSQL_LIB_LIST})
94

95
    set(MYSQL_ADD_LIBRARIES_PATH "")
96
    string(REGEX MATCHALL "-L[^ ]*" MYSQL_LIBDIR_LIST "${MY_TMP}")
97
    foreach(LIB ${MYSQL_LIBDIR_LIST})
98
      string(REGEX REPLACE "[ ]*-L([^ ]*)" "\\1" LIB "${LIB}")
99
      list(APPEND MYSQL_ADD_LIBRARIES_PATH "${LIB}")
100
      #message("[DEBUG] MYSQL ADD_LIBRARIES_PATH : ${MYSQL_ADD_LIBRARIES_PATH}")
101
    endforeach(LIB ${MYSQL_LIBS})
102

103
  else(MYSQL_CONFIG)
104
    set(MYSQL_ADD_LIBRARIES "")
105
    list(APPEND MYSQL_ADD_LIBRARIES "mysqlclient_r")
106
  endif(MYSQL_CONFIG)
107
endif(UNIX)
108

109
if(WIN32)
110
  # read environment variables and change \ to /
111
  file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" PROGRAM_FILES_32)
112
  file(TO_CMAKE_PATH "$ENV{ProgramW6432}" PROGRAM_FILES_64)
113
endif(WIN32)
114

115
find_path(MYSQL_INCLUDE_DIR
116
  NAMES
117
    mysql.h
118
  HINTS
119
    ${_MYSQL_ROOT_HINTS}
120
  PATHS
121
    ${MYSQL_ADD_INCLUDE_PATH}
122
    /usr/include
123
    /usr/include/mysql
124
    /usr/local/include
125
    /usr/local/include/mysql
126
    /usr/local/mysql/include
127
    "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.3"
128
    "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.2"
129
    "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.1"
130
    "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.0"
131
    "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7"
132
    "${PROGRAM_FILES_64}/MySQL"
133
    "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.3"
134
    "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.2"
135
    "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.1"
136
    "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.0"
137
    "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.7"
138
    "${PROGRAM_FILES_32}/MySQL"
139
    "C:/MySQL"
140
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.3;Location]"
141
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.2;Location]"
142
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.1;Location]"
143
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.0;Location]"
144
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]"
145
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.3;Location]"
146
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.2;Location]"
147
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.1;Location]"
148
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.0;Location]"
149
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.7;Location]"
150
    "$ENV{SystemDrive}/MySQL/MySQL Server 8.3"
151
    "$ENV{SystemDrive}/MySQL/MySQL Server 8.2"
152
    "$ENV{SystemDrive}/MySQL/MySQL Server 8.1"
153
    "$ENV{SystemDrive}/MySQL/MySQL Server 8.0"
154
    "$ENV{SystemDrive}/MySQL/MySQL Server 5.7"
155
    "c:/msys/local/include"
156
    "$ENV{MYSQL_ROOT}"
157
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.4;INSTALLDIR]"
158
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.4 (x64);INSTALLDIR]"
159
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.5;INSTALLDIR]"
160
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.5 (x64);INSTALLDIR]"
161
  PATH_SUFFIXES
162
    include
163
    include/mysql
164
  DOC
165
    "Specify the directory containing mysql.h."
166
)
167

168
if(UNIX)
169
  foreach(LIB ${MYSQL_ADD_LIBRARIES})
170
    find_library(MYSQL_LIBRARY
171
      NAMES
172
        mysql libmysql ${LIB}
173
      PATHS
174
        ${MYSQL_ADD_LIBRARIES_PATH}
175
        /usr/lib
176
        /usr/lib/mysql
177
        /usr/local/lib
178
        /usr/local/lib/mysql
179
        /usr/local/mysql/lib
180
      DOC "Specify the location of the mysql library here."
181
    )
182
  endforeach(LIB ${MYSQL_ADD_LIBRARY})
183
endif(UNIX)
184

185
if(WIN32)
186
  find_library(MYSQL_LIBRARY
187
    NAMES
188
      libmysql libmariadb
189
    HINTS
190
      ${_MYSQL_ROOT_HINTS}
191
    PATHS
192
      ${MYSQL_ADD_LIBRARIES_PATH}
193
      "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.3"
194
      "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.2"
195
      "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.1"
196
      "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.0"
197
      "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7"
198
      "${PROGRAM_FILES_64}/MySQL/lib"
199
      "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.3"
200
      "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.2"
201
      "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.1"
202
      "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.0"
203
      "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.7"
204
      "${PROGRAM_FILES_32}/MySQL/lib"
205
      "C:/MySQL/lib/debug"
206
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.3;Location]"
207
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.2;Location]"
208
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.1;Location]"
209
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.0;Location]"
210
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]"
211
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.3;Location]"
212
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.2;Location]"
213
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.1;Location]"
214
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.0;Location]"
215
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.7;Location]"
216
      "$ENV{SystemDrive}/MySQL/MySQL Server 8.3"
217
      "$ENV{SystemDrive}/MySQL/MySQL Server 8.2"
218
      "$ENV{SystemDrive}/MySQL/MySQL Server 8.1"
219
      "$ENV{SystemDrive}/MySQL/MySQL Server 8.0"
220
      "$ENV{SystemDrive}/MySQL/MySQL Server 5.7"
221
      "c:/msys/local/lib"
222
      "$ENV{MYSQL_ROOT}"
223
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.4;INSTALLDIR]"
224
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.4 (x64);INSTALLDIR]"
225
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.5;INSTALLDIR]"
226
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.5 (x64);INSTALLDIR]"
227
    PATH_SUFFIXES
228
      lib
229
      lib/opt
230
    DOC "Specify the location of the mysql library here."
231
  )
232
endif(WIN32)
233

234
# On Windows you typically don't need to include any extra libraries
235
# to build MYSQL stuff.
236

237
if(NOT WIN32)
238
  find_library(MYSQL_EXTRA_LIBRARIES
239
    NAMES
240
      z zlib
241
    PATHS
242
      /usr/lib
243
      /usr/local/lib
244
    DOC
245
      "if more libraries are necessary to link in a MySQL client (typically zlib), specify them here."
246
  )
247
else(NOT WIN32)
248
  set(MYSQL_EXTRA_LIBRARIES "")
249
endif(NOT WIN32)
250

251
if(UNIX)
252
    find_program(MYSQL_EXECUTABLE mysql
253
    PATHS
254
        ${MYSQL_CONFIG_PREFER_PATH}
255
        /usr/local/mysql/bin/
256
        /usr/local/bin/
257
        /usr/bin/
258
    DOC
259
        "path to your mysql binary."
260
    )
261
endif(UNIX)
262

263
if(WIN32)
264
  find_program(MYSQL_EXECUTABLE mysql
265
    HINTS
266
      ${_MYSQL_ROOT_HINTS}
267
    PATHS
268
      "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.3"
269
      "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.2"
270
      "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.1"
271
      "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.0"
272
      "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7"
273
      "${PROGRAM_FILES_64}/MySQL"
274
      "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.3"
275
      "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.2"
276
      "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.1"
277
      "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.0"
278
      "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.7"
279
      "${PROGRAM_FILES_32}/MySQL"
280
      "C:/MySQL/bin/debug"
281
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.3;Location]"
282
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.2;Location]"
283
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.1;Location]"
284
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.0;Location]"
285
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]"
286
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.3;Location]"
287
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.2;Location]"
288
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.1;Location]"
289
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.0;Location]"
290
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.7;Location]"
291
      "$ENV{SystemDrive}/MySQL/MySQL Server 8.3"
292
      "$ENV{SystemDrive}/MySQL/MySQL Server 8.2"
293
      "$ENV{SystemDrive}/MySQL/MySQL Server 8.1"
294
      "$ENV{SystemDrive}/MySQL/MySQL Server 8.0"
295
      "$ENV{SystemDrive}/MySQL/MySQL Server 5.7"
296
      "c:/msys/local/bin"
297
      "$ENV{MYSQL_ROOT}"
298
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.4;INSTALLDIR]"
299
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.4 (x64);INSTALLDIR]"
300
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.5;INSTALLDIR]"
301
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.5 (x64);INSTALLDIR]"
302
    PATH_SUFFIXES
303
      bin
304
      bin/opt
305
    DOC
306
      "path to your mysql binary."
307
  )
308
endif(WIN32)
309

310
unset(MySQL_lib_WANTED)
311
unset(MySQL_binary_WANTED)
312
set(MYSQL_REQUIRED_VARS "")
313
foreach(_comp IN LISTS MySQL_FIND_COMPONENTS)
314
  if(_comp STREQUAL "lib")
315
    set(MySQL_${_comp}_WANTED TRUE)
316
  if(MySQL_FIND_REQUIRED_${_comp})
317
    list(APPEND MYSQL_REQUIRED_VARS "MYSQL_LIBRARY")
318
    list(APPEND MYSQL_REQUIRED_VARS "MYSQL_INCLUDE_DIR")
319
  endif()
320
    if(EXISTS "${MYSQL_LIBRARY}" AND EXISTS "${MYSQL_INCLUDE_DIR}")
321
      set(MySQL_${_comp}_FOUND TRUE)
322
    else()
323
      set(MySQL_${_comp}_FOUND FALSE)
324
    endif()
325
  elseif(_comp STREQUAL "binary")
326
    set(MySQL_${_comp}_WANTED TRUE)
327
  if(MySQL_FIND_REQUIRED_${_comp})
328
    list(APPEND MYSQL_REQUIRED_VARS "MYSQL_EXECUTABLE")
329
  endif()
330
    if(EXISTS "${MYSQL_EXECUTABLE}" )
331
      set(MySQL_${_comp}_FOUND TRUE)
332
    else()
333
      set(MySQL_${_comp}_FOUND FALSE)
334
    endif()
335
  else()
336
    message(WARNING "${_comp} is not a valid MySQL component")
337
    set(MySQL_${_comp}_FOUND FALSE)
338
  endif()
339
endforeach()
340
unset(_comp)
341

342
include(FindPackageHandleStandardArgs)
343
find_package_handle_standard_args(MySQL
344
  REQUIRED_VARS
345
    ${MYSQL_REQUIRED_VARS}
346
  HANDLE_COMPONENTS
347
  FAIL_MESSAGE
348
    "Could not find the MySQL libraries! Please install the development libraries and headers"
349
)
350
unset(MYSQL_REQUIRED_VARS)
351

352
if(MYSQL_FOUND)
353
  if(MySQL_lib_WANTED AND MySQL_lib_FOUND)
354
    message(STATUS "Found MySQL library: ${MYSQL_LIBRARY}")
355
    message(STATUS "Found MySQL headers: ${MYSQL_INCLUDE_DIR}")
356
  endif()
357
  if(MySQL_binary_WANTED AND MySQL_binary_FOUND)
358
    message(STATUS "Found MySQL executable: ${MYSQL_EXECUTABLE}")
359
  endif()
360
  mark_as_advanced(MYSQL_FOUND MYSQL_LIBRARY MYSQL_EXTRA_LIBRARIES MYSQL_INCLUDE_DIR MYSQL_EXECUTABLE)
361

362
  if(NOT TARGET MySQL::MySQL AND MySQL_lib_WANTED AND MySQL_lib_FOUND)
363
    add_library(MySQL::MySQL UNKNOWN IMPORTED)
364
    set_target_properties(MySQL::MySQL
365
      PROPERTIES
366
        IMPORTED_LOCATION
367
          "${MYSQL_LIBRARY}"
368
        INTERFACE_INCLUDE_DIRECTORIES
369
          "${MYSQL_INCLUDE_DIR}")
370
  endif()
371
else()
372
  message(FATAL_ERROR "Could not find the MySQL libraries! Please install the development libraries and headers")
373
endif()

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.