diff options
author | Kargatum <dowlandtop@yandex.com> | 2021-06-27 23:59:44 +0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-27 18:59:44 +0200 |
commit | 2d2857ce81db5297eb63d388d2e2f252ef52412d (patch) | |
tree | 93455f25b00358326cb6d73bd1b454d45cd95d26 /src/cmake | |
parent | ccd73918aed62456af4cf900c59b2d8108a24d81 (diff) |
feat(Core/DBUpdater): implement db auto update (#6576)
* feat(Core/DBUpdater): implement db auto update
* 1
* 2
* 3
* Some minor improvements
* add find bin for mysql 8.0
* lic
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
Diffstat (limited to 'src/cmake')
-rw-r--r-- | src/cmake/macros/ConfigureModules.cmake | 15 | ||||
-rw-r--r-- | src/cmake/macros/FindMySQL.cmake | 65 | ||||
-rw-r--r-- | src/cmake/revision.h.in.cmake | 4 |
3 files changed, 81 insertions, 3 deletions
diff --git a/src/cmake/macros/ConfigureModules.cmake b/src/cmake/macros/ConfigureModules.cmake index 41c2162788..8cde64e028 100644 --- a/src/cmake/macros/ConfigureModules.cmake +++ b/src/cmake/macros/ConfigureModules.cmake @@ -71,3 +71,18 @@ function(IsDynamicLinkingModulesRequired variable) endforeach() set(${variable} ${IS_REQUIRED} PARENT_SCOPE) endfunction() + +# Get list all modules +function(GetModuleList) + file(GLOB LOCALE_MODULE_LIST RELATIVE + ${CMAKE_SOURCE_DIR}/modules + ${CMAKE_SOURCE_DIR}/modules/*) + + foreach(MODULE_DIR ${LOCALE_MODULE_LIST}) + if(IS_DIRECTORY "${CMAKE_SOURCE_DIR}/modules/${MODULE_DIR}") + set(MODULE_LIST__ ${MODULE_LIST__}${MODULE_DIR},) + endif() + endforeach() + + add_definitions(-DAC_MODULES_LIST=$<1:"${MODULE_LIST__}">) +endfunction() diff --git a/src/cmake/macros/FindMySQL.cmake b/src/cmake/macros/FindMySQL.cmake index d26d812b30..ae7d09ddd0 100644 --- a/src/cmake/macros/FindMySQL.cmake +++ b/src/cmake/macros/FindMySQL.cmake @@ -73,9 +73,22 @@ if (WIN32) if(MYSQL_LIBRARY) set(MARIADB_FOUND_LIB 1) endif() - if (MYSQL_LIBRARY AND MYSQL_INCLUDE_DIR) + + find_program(MYSQL_EXECUTABLE mysql + PATHS + "${PROGRAM_FILES_64}/${MariaDBVersion}/bin" + "${PROGRAM_FILES_64}/${MariaDBVersion}/bin/opt" + "${PROGRAM_FILES_32}/${MariaDBVersion}/bin" + "${PROGRAM_FILES_32}/${MariaDBVersion}/bin/opt" + "$ENV{ProgramFiles}/${MariaDBVersion}/bin/opt" + "$ENV{SystemDrive}/${MariaDBVersion}/bin/opt" + DOC + "path to your mysql binary.") + + if (MYSQL_LIBRARY AND MYSQL_INCLUDE_DIR AND MYSQL_EXECUTABLE) set(MARIADB_FOUND 1) endif() + endmacro(FindLibMariaDB) foreach(version ${_MARIADB_KNOWN_VERSIONS}) @@ -207,7 +220,6 @@ endif( WIN32 ) # On Windows you typically don't need to include any extra libraries # to build MYSQL stuff. - if( NOT WIN32 ) find_library( MYSQL_EXTRA_LIBRARIES NAMES @@ -222,6 +234,50 @@ else( NOT WIN32 ) set( MYSQL_EXTRA_LIBRARIES "" ) endif( NOT WIN32 ) +if( UNIX ) + find_program(MYSQL_EXECUTABLE mysql + PATHS + ${MYSQL_CONFIG_PREFER_PATH} + /usr/local/mysql/bin/ + /usr/local/bin/ + /usr/bin/ + DOC + "path to your mysql binary." + ) +endif( UNIX ) + +if( WIN32 ) + find_program(MYSQL_EXECUTABLE mysql + PATHS + "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.0/bin" + "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/bin" + "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.0/bin/opt" + "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/bin/opt" + "${PROGRAM_FILES_64}/MySQL/bin" + "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.0/bin" + "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.7/bin" + "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.0/bin/opt" + "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.7/bin/opt" + "${PROGRAM_FILES_32}/MySQL/bin" + "C:/MySQL/bin/debug" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.0;Location]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.0;Location]/bin/opt" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/bin/opt" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.0;Location]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.7;Location]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.0;Location]/bin/opt" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.7;Location]/bin/opt" + "$ENV{ProgramFiles}/MySQL/MySQL Server 8.0/bin/opt" + "$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/bin/opt" + "$ENV{SystemDrive}/MySQL/MySQL Server 8.0/bin/opt" + "$ENV{SystemDrive}/MySQL/MySQL Server 5.7/bin/opt" + "c:/msys/local/include" + "$ENV{MYSQL_ROOT}/bin" + DOC + "path to your mysql binary.") +endif( WIN32 ) + if( MYSQL_LIBRARY ) if( MYSQL_INCLUDE_DIR ) set( MYSQL_FOUND 1 ) @@ -230,7 +286,10 @@ if( MYSQL_LIBRARY ) else( MYSQL_INCLUDE_DIR ) message(FATAL_ERROR "Could not find MySQL headers! Please install the development libraries and headers") endif( MYSQL_INCLUDE_DIR ) - mark_as_advanced( MYSQL_FOUND MYSQL_LIBRARY MYSQL_EXTRA_LIBRARIES MYSQL_INCLUDE_DIR ) + if( MYSQL_EXECUTABLE ) + message(STATUS "Found MySQL executable: ${MYSQL_EXECUTABLE}") + endif( MYSQL_EXECUTABLE ) + mark_as_advanced( MYSQL_FOUND MYSQL_LIBRARY MYSQL_EXTRA_LIBRARIES MYSQL_INCLUDE_DIR MYSQL_EXECUTABLE ) else( MYSQL_LIBRARY ) message(FATAL_ERROR "Could not find the MySQL libraries! Please install the development libraries and headers") endif( MYSQL_LIBRARY ) diff --git a/src/cmake/revision.h.in.cmake b/src/cmake/revision.h.in.cmake index 3417b88e4c..de599c5a66 100644 --- a/src/cmake/revision.h.in.cmake +++ b/src/cmake/revision.h.in.cmake @@ -4,8 +4,12 @@ #define _HASH "@rev_hash@" #define _DATE "@rev_date@" #define _BRANCH "@rev_branch@" + #define _CMAKE_COMMAND R"(@CMAKE_COMMAND@)" #define _CMAKE_VERSION R"(@CMAKE_VERSION@)" #define _CMAKE_HOST_SYSTEM R"(@CMAKE_HOST_SYSTEM_NAME@ @CMAKE_HOST_SYSTEM_VERSION@)" + #define _SOURCE_DIRECTORY R"(@CMAKE_SOURCE_DIR@)" + #define _BUILD_DIRECTORY R"(@BUILDDIR@)" + #define _MYSQL_EXECUTABLE R"(@MYSQL_EXECUTABLE@)" #define VER_COMPANYNAME_STR "AzerothCore" #define VER_LEGALCOPYRIGHT_STR "(c)2016-@rev_year@ AzerothCore" #define VER_FILEVERSION 0,0,0 |