mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
7eb84da890
The following 6.0 revisions were analyzed: - sp1r-brian@zim.(none)-20071228102738-21894 - sp1r-brian@zim.(none)-20071228121841-56447 - sp1r-brian@zim.(none)-20071228205403-56423 - sp1r-brian@zim.(none)-20071228221139-55341 - sp1r-brian@zim.(none)-20071228233443-55352 - sp1r-brian@zim.(none)-20071229094527-61763 - sp1r-brian@zim.(none)-20071230203739-61746 - sp1r-brian@zim.(none)-20080102213805-61741 - sp1r-brian@zim.(none)-20080103201041-61746 - sp1r-brian@zim.(none)-20080104234927-59875 - sp1r-brian@zim.(none)-20080105005827-59874 - sp1r-brian@zim.(none)-20080105012020-59865 - sp1r-brian@zim.(none)-20080106003858-59857 - sp1r-brian@zim.(none)-20080123195552-31680 - sp1r-brian@zim.(none)-20080124201848-29999 - sp1r-brian@zim.(none)-20080129075144-36991 - sp1r-cbell/Chuck@mysql_cab_desk.-20080215041806-21954 - sp1r-vvaintroub@wva.-20080212124547-06272 - sp1r-dfischer/mysqldev@mysql.com/production.mysql.com-20071223184258-15140 - sp1r-brian@zim.(none)-20080206122216-35774 - sp1r-baker@bk-internal.mysql.com-20080209005622-35947 - sp1r-baker@bk-internal.mysql.com-20080224215608-24613 - sp1r-baker@bk-internal.mysql.com-20080307170710-63543 - sp1r-baker@bk-internal.mysql.com-20080312233205-13069 - sp1r-Reggie@core.-20080402175211-28643 - kpettersson@mysql.com-20080901101150-4ne74r8v0492vv42 - alik@sun.com-20090805173811-9fzt0ymcp9tsvn7k - alik@sun.com-20090805173937-fcv1fdveodq5x9gb - alik@sun.com-20090805175009-g1od16i3t1xkw2qr - kostja@sun.com-20090805200643-j9i4fy7ii8ijho5c - alik@sun.com-20090807195303-j4fb5m4l1dgdahwo - alik@sun.com-20090808114848-3rkzr9kifrijzaqy - alik@sun.com-20090810041739-ugmx34h34uid8mox - alik@sun.com-20090810105306-rf43rfyzzblsy5e7 - alik@sun.com-20090810123113-ccdjwai68b5woqdm - alik@sun.com-20090811080423-gb7pibec1znaydzy - alik@sun.com-20090811082130-5uckar1vx3kdsw7g - alik@sun.com-20090812202051-uqkfwwxxcjvo5ean The following bugfixes are also backported within this patch: - Bug#34292: netdb.h missing in hostname.cc - Bug#39153: Failing to lookup a host name can lead to crash in current IPv6 implementation - Bug#38247: Server does not resolve connecting ip's - Bug#43006: main.skip_name_resolve fails on Windows in PB2 - Bug#45606: ACL requires IPv4-mapped addresses to be used - Bug#45584: Host name cache does not work as a cache
332 lines
14 KiB
CMake
Executable file
332 lines
14 KiB
CMake
Executable file
# Copyright (C) 2006 MySQL AB, 2009 Sun Microsystems, Inc
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; version 2 of the License.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.6 FATAL_ERROR)
|
|
IF(COMMAND cmake_policy)
|
|
cmake_policy(SET CMP0005 NEW)
|
|
ENDIF(COMMAND cmake_policy)
|
|
|
|
PROJECT(MySql)
|
|
|
|
# This reads user configuration, generated by configure.js.
|
|
INCLUDE(win/configure.data)
|
|
|
|
# Hardcode support for CSV storage engine
|
|
SET(WITH_CSV_STORAGE_ENGINE TRUE)
|
|
|
|
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/mysql_version.h.in
|
|
${CMAKE_SOURCE_DIR}/include/mysql_version.h @ONLY)
|
|
|
|
# Set standard options
|
|
ADD_DEFINITIONS(-DHAVE_YASSL)
|
|
ADD_DEFINITIONS(-DCMAKE_CONFIGD)
|
|
ADD_DEFINITIONS(-DDEFAULT_MYSQL_HOME="c:/Program Files/MySQL/MySQL Server ${MYSQL_BASE_VERSION}/")
|
|
ADD_DEFINITIONS(-DDEFAULT_BASEDIR="c:/Program Files/MySQL/")
|
|
ADD_DEFINITIONS(-DMYSQL_DATADIR="c:/Program Files/MySQL/MySQL Server ${MYSQL_BASE_VERSION}/data")
|
|
ADD_DEFINITIONS(-DDEFAULT_CHARSET_HOME="c:/Program Files/MySQL/MySQL Server ${MYSQL_BASE_VERSION}/")
|
|
ADD_DEFINITIONS(-DPACKAGE=mysql)
|
|
ADD_DEFINITIONS(-DSHAREDIR="share")
|
|
|
|
# Enable IPv6 handling code
|
|
ADD_DEFINITIONS(-DHAVE_IPV6)
|
|
|
|
# Set debug options
|
|
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DFORCE_INIT_OF_VARS")
|
|
|
|
# Do not use SAFEMALLOC for Windows builds, as Debug CRT has the same functionality
|
|
# Neither SAFE_MUTEX works on Windows and it has been explicitely undefined in
|
|
# my_pthread.h
|
|
IF(NOT WIN32)
|
|
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
|
|
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
|
|
ENDIF(NOT WIN32)
|
|
|
|
SET(localstatedir "C:\\mysql\\data")
|
|
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-huge.cnf.sh
|
|
${CMAKE_SOURCE_DIR}/support-files/my-huge.ini @ONLY)
|
|
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-innodb-heavy-4G.cnf.sh
|
|
${CMAKE_SOURCE_DIR}/support-files/my-innodb-heavy-4G.ini @ONLY)
|
|
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-large.cnf.sh
|
|
${CMAKE_SOURCE_DIR}/support-files/my-large.ini @ONLY)
|
|
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-medium.cnf.sh
|
|
${CMAKE_SOURCE_DIR}/support-files/my-medium.ini @ONLY)
|
|
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-small.cnf.sh
|
|
${CMAKE_SOURCE_DIR}/support-files/my-small.ini @ONLY)
|
|
|
|
IF(CYBOZU)
|
|
ADD_DEFINITIONS(-DCYBOZU)
|
|
ENDIF(CYBOZU)
|
|
|
|
IF(EXTRA_DEBUG)
|
|
ADD_DEFINITIONS(-D EXTRA_DEBUG)
|
|
ENDIF(EXTRA_DEBUG)
|
|
|
|
IF(ENABLED_DEBUG_SYNC)
|
|
ADD_DEFINITIONS(-D ENABLED_DEBUG_SYNC)
|
|
ENDIF(ENABLED_DEBUG_SYNC)
|
|
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC")
|
|
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC")
|
|
|
|
# in some places we use DBUG_OFF
|
|
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DDBUG_OFF")
|
|
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DDBUG_OFF")
|
|
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DDBUG_OFF")
|
|
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -DDBUG_OFF")
|
|
|
|
#TODO: update the code and remove the disabled warnings
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4800 /wd4805")
|
|
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4800 /wd4805")
|
|
|
|
# Disable warnings in Visual Studio 8 and above
|
|
IF(MSVC AND NOT CMAKE_GENERATOR MATCHES "Visual Studio 7")
|
|
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /wd4996")
|
|
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /wd4996")
|
|
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /wd4996")
|
|
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /wd4996")
|
|
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /wd4996")
|
|
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} /wd4996")
|
|
ENDIF(MSVC AND NOT CMAKE_GENERATOR MATCHES "Visual Studio 7")
|
|
|
|
IF(CMAKE_GENERATOR MATCHES "Visual Studio 7")
|
|
# VS2003 has a bug that prevents linking mysqld with module definition file
|
|
# (/DEF option for linker). Linker would incorrectly complain about multiply
|
|
# defined symbols. Workaround is to disable dynamic plugins, so /DEF is not
|
|
# used.
|
|
MESSAGE("Warning: Building MySQL with Visual Studio 2003.NET is no more supported.")
|
|
MESSAGE("Please use a newer version of Visual Studio.")
|
|
SET(WITHOUT_DYNAMIC_PLUGINS TRUE)
|
|
ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7")
|
|
|
|
# Settings for Visual Studio 7 and above.
|
|
IF(MSVC)
|
|
# replace /MDd with /MTd
|
|
STRING(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
|
|
STRING(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELWITHDEBINFO ${CMAKE_C_FLAGS_RELWITHDEBINFO})
|
|
STRING(REPLACE "/MDd" "/MTd" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
|
|
STRING(REPLACE "/MDd" "/MTd" CMAKE_C_FLAGS_DEBUG_INIT ${CMAKE_C_FLAGS_DEBUG_INIT})
|
|
|
|
STRING(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
|
|
STRING(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELWITHDEBINFO ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})
|
|
STRING(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
|
|
STRING(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG_INIT ${CMAKE_CXX_FLAGS_DEBUG_INIT})
|
|
|
|
# generate map files, set stack size (see bug#20815)
|
|
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MAP /MAPINFO:EXPORTS")
|
|
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:1048576")
|
|
|
|
# remove support for Exception handling
|
|
STRING(REPLACE "/GX" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
|
|
STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
|
|
STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS_INIT ${CMAKE_CXX_FLAGS_INIT})
|
|
STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS_DEBUG_INIT ${CMAKE_CXX_FLAGS_DEBUG_INIT})
|
|
|
|
# Mark 32 bit executables large address aware so they can
|
|
# use > 2GB address space
|
|
IF(CMAKE_SIZEOF_VOID_P MATCHES 4)
|
|
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE")
|
|
ENDIF(CMAKE_SIZEOF_VOID_P MATCHES 4)
|
|
|
|
# Disable automatic manifest generation.
|
|
STRING(REPLACE "/MANIFEST" "/MANIFEST:NO" CMAKE_EXE_LINKER_FLAGS
|
|
${CMAKE_EXE_LINKER_FLAGS})
|
|
# Explicitly disable it since it is the default for newer versions of VS
|
|
STRING(REGEX MATCH "MANIFEST:NO" tmp_manifest ${CMAKE_EXE_LINKER_FLAGS})
|
|
IF(NOT tmp_manifest)
|
|
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO")
|
|
ENDIF(NOT tmp_manifest)
|
|
ENDIF(MSVC)
|
|
|
|
IF(WIN32)
|
|
ADD_DEFINITIONS("-D_WINDOWS -D__WIN__ -D_CRT_SECURE_NO_DEPRECATE")
|
|
ADD_DEFINITIONS("-D_WIN32_WINNT=0x0501")
|
|
ENDIF(WIN32)
|
|
|
|
# default to x86 platform. We'll check for X64 in a bit
|
|
SET (PLATFORM X86)
|
|
|
|
# This definition is necessary to work around a bug with Intellisense described
|
|
# here: http://tinyurl.com/2cb428. Syntax highlighting is important for proper
|
|
# debugger functionality.
|
|
IF(CMAKE_SIZEOF_VOID_P MATCHES 8)
|
|
MESSAGE(STATUS "Detected 64-bit platform.")
|
|
ADD_DEFINITIONS("-D_WIN64")
|
|
SET (PLATFORM X64)
|
|
ENDIF(CMAKE_SIZEOF_VOID_P MATCHES 8)
|
|
|
|
IF(EMBED_MANIFESTS)
|
|
# Search for the tools (mt, makecat, signtool) necessary for embedding
|
|
# manifests and signing executables with the MySQL AB authenticode cert.
|
|
#
|
|
# CMake will first search it's defaults (CMAKE_FRAMEWORK_PATH,
|
|
# CMAKE_APPBUNDLE_PATH, CMAKE_PROGRAM_PATH and the system PATH) followed
|
|
# by the listed paths which are the current possible defaults and should be
|
|
# updated when necessary.
|
|
#
|
|
# The custom manifests are designed to be compatible with all mt versions.
|
|
# The MySQL AB Authenticode certificate is available only internally.
|
|
# Others should store a single signing certificate in a local cryptographic
|
|
# service provider and alter the signtool command as necessary.
|
|
FIND_PROGRAM(HAVE_MANIFEST_TOOL NAMES mt
|
|
PATHS
|
|
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/VC/bin"
|
|
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin"
|
|
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/SDK/v2.0/Bin")
|
|
FIND_PROGRAM(HAVE_CATALOG_TOOL NAMES makecat
|
|
PATHS
|
|
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin")
|
|
FIND_PROGRAM(HAVE_SIGN_TOOL NAMES signtool
|
|
PATHS
|
|
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin"
|
|
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/SDK/v2.0/Bin")
|
|
|
|
IF(HAVE_MANIFEST_TOOL)
|
|
MESSAGE(STATUS "Found Mainfest Tool.")
|
|
ELSE(HAVE_MANIFEST_TOOL)
|
|
MESSAGE(FATAL_ERROR "Manifest tool, mt.exe, can't be found.")
|
|
ENDIF(HAVE_MANIFEST_TOOL)
|
|
IF(HAVE_CATALOG_TOOL)
|
|
MESSAGE(STATUS "Found Catalog Tool.")
|
|
ELSE(HAVE_CATALOG_TOOL)
|
|
MESSAGE(FATAL_ERROR "Catalog tool, makecat.exe, can't be found.")
|
|
ENDIF(HAVE_CATALOG_TOOL)
|
|
IF(HAVE_SIGN_TOOL)
|
|
MESSAGE(STATUS "Found Sign Tool. Embedding custom manifests and signing executables.")
|
|
ELSE(HAVE_SIGN_TOOL)
|
|
MESSAGE(FATAL_ERROR "Sign tool, signtool.exe, can't be found.")
|
|
ENDIF(HAVE_SIGN_TOOL)
|
|
|
|
# Set the processor architecture.
|
|
IF(CMAKE_GENERATOR MATCHES "Visual Studio 8 2005 Win64")
|
|
SET(PROCESSOR_ARCH "amd64")
|
|
ELSE(CMAKE_GENERATOR MATCHES "Visual Studio 8 2005 Win64")
|
|
SET(PROCESSOR_ARCH "X86")
|
|
ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 8 2005 Win64")
|
|
ENDIF(EMBED_MANIFESTS)
|
|
|
|
# Figure out what engines to build and how (statically or dynamically),
|
|
# add preprocessor defines for storage engines.
|
|
IF(WITHOUT_DYNAMIC_PLUGINS)
|
|
MESSAGE("Dynamic plugins are disabled.")
|
|
ENDIF(WITHOUT_DYNAMIC_PLUGINS)
|
|
|
|
FILE(GLOB STORAGE_SUBDIRS storage/*)
|
|
FOREACH(SUBDIR ${STORAGE_SUBDIRS})
|
|
FILE(RELATIVE_PATH DIRNAME ${PROJECT_SOURCE_DIR}/storage ${SUBDIR})
|
|
IF (EXISTS ${SUBDIR}/CMakeLists.txt)
|
|
# Check MYSQL_STORAGE_ENGINE macro is present
|
|
FILE(STRINGS ${SUBDIR}/CMakeLists.txt HAVE_STORAGE_ENGINE REGEX MYSQL_STORAGE_ENGINE)
|
|
IF(HAVE_STORAGE_ENGINE)
|
|
# Extract name of engine from HAVE_STORAGE_ENGINE
|
|
STRING(REGEX REPLACE ".*MYSQL_STORAGE_ENGINE\\((.*\)\\).*"
|
|
"\\1" ENGINE_NAME ${HAVE_STORAGE_ENGINE})
|
|
STRING(TOUPPER ${ENGINE_NAME} ENGINE)
|
|
STRING(TOLOWER ${ENGINE_NAME} ENGINE_LOWER)
|
|
|
|
SET(ENGINE_BUILD_TYPE "DYNAMIC")
|
|
# Read plug.in to find out if a plugin is mandatory and whether it supports
|
|
# build as shared library (dynamic).
|
|
IF(EXISTS ${SUBDIR}/plug.in)
|
|
FILE(READ ${SUBDIR}/plug.in PLUGIN_FILE_CONTENT)
|
|
STRING (REGEX MATCH "MYSQL_PLUGIN_DYNAMIC" MYSQL_PLUGIN_DYNAMIC ${PLUGIN_FILE_CONTENT})
|
|
STRING (REGEX MATCH "MYSQL_PLUGIN_MANDATORY" MYSQL_PLUGIN_MANDATORY ${PLUGIN_FILE_CONTENT})
|
|
STRING (REGEX MATCH "MYSQL_PLUGIN_STATIC" MYSQL_PLUGIN_STATIC ${PLUGIN_FILE_CONTENT})
|
|
|
|
IF(MYSQL_PLUGIN_MANDATORY)
|
|
SET(WITH_${ENGINE}_STORAGE_ENGINE TRUE)
|
|
ENDIF(MYSQL_PLUGIN_MANDATORY)
|
|
|
|
IF (WITH_${ENGINE}_STORAGE_ENGINE AND MYSQL_PLUGIN_STATIC)
|
|
SET(ENGINE_BUILD_TYPE "STATIC")
|
|
ELSEIF(NOT WITHOUT_${ENGINE}_STORAGE_ENGINE AND MYSQL_PLUGIN_DYNAMIC AND NOT WITHOUT_DYNAMIC_PLUGINS)
|
|
SET(ENGINE_BUILD_TYPE "DYNAMIC")
|
|
ELSE(WITH_${ENGINE}_STORAGE_ENGINE AND MYSQL_PLUGIN_STATIC)
|
|
SET(ENGINE_BUILD_TYPE "NONE")
|
|
ENDIF(WITH_${ENGINE}_STORAGE_ENGINE AND MYSQL_PLUGIN_STATIC)
|
|
IF (ENGINE_BUILD_TYPE STREQUAL "STATIC")
|
|
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_${ENGINE_LOWER}_plugin")
|
|
SET (MYSQLD_STATIC_ENGINE_LIBS ${MYSQLD_STATIC_ENGINE_LIBS} ${ENGINE_LOWER})
|
|
SET (STORAGE_ENGINE_DEFS "${STORAGE_ENGINE_DEFS} -DWITH_${ENGINE}_STORAGE_ENGINE")
|
|
SET (WITH_${ENGINE}_STORAGE_ENGINE TRUE)
|
|
SET (${ENGINE}_DIR ${DIRNAME})
|
|
ENDIF (ENGINE_BUILD_TYPE STREQUAL "STATIC")
|
|
ENDIF(EXISTS ${SUBDIR}/plug.in)
|
|
|
|
IF(NOT ENGINE_BUILD_TYPE STREQUAL "NONE")
|
|
LIST(APPEND ${ENGINE_BUILD_TYPE}_ENGINE_DIRECTORIES ${SUBDIR})
|
|
ENDIF(NOT ENGINE_BUILD_TYPE STREQUAL "NONE")
|
|
|
|
ENDIF(HAVE_STORAGE_ENGINE)
|
|
ENDIF(EXISTS ${SUBDIR}/CMakeLists.txt)
|
|
ENDFOREACH(SUBDIR ${STORAGE_SUBDIRS})
|
|
|
|
# Special handling for partition(not really pluggable)
|
|
IF(NOT WITHOUT_PARTITION_STORAGE_ENGINE)
|
|
SET (STORAGE_ENGINE_DEFS "${STORAGE_ENGINE_DEFS} -DWITH_PARTITION_STORAGE_ENGINE")
|
|
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_partition_plugin")
|
|
ENDIF(NOT WITHOUT_PARTITION_STORAGE_ENGINE)
|
|
|
|
ADD_DEFINITIONS(${STORAGE_ENGINE_DEFS})
|
|
|
|
# Now write out our mysql_plugin_defs struct
|
|
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc.in
|
|
${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc @ONLY)
|
|
|
|
# Add subdirectories for storage engines
|
|
SET (ENGINE_BUILD_TYPE "STATIC")
|
|
FOREACH(DIR ${STATIC_ENGINE_DIRECTORIES})
|
|
ADD_SUBDIRECTORY(${DIR})
|
|
IF(EXISTS ${DIR}/unittest)
|
|
ADD_SUBDIRECTORY(${DIR}/unittest)
|
|
ENDIF(EXISTS ${DIR}/unittest)
|
|
ENDFOREACH(DIR ${STATIC_ENGINE_DIRECTORIES})
|
|
|
|
SET (ENGINE_BUILD_TYPE "DYNAMIC")
|
|
FOREACH(DIR ${DYNAMIC_ENGINE_DIRECTORIES})
|
|
IF(EXISTS ${DIR}/unittest)
|
|
ADD_SUBDIRECTORY(${DIR}/unittest)
|
|
ENDIF(EXISTS ${DIR}/unittest)
|
|
ADD_SUBDIRECTORY(${DIR})
|
|
ENDFOREACH(DIR ${DYNAMIC_ENGINE_DIRECTORIES})
|
|
|
|
# Add subdirectories for semisync plugin
|
|
IF(NOT WITHOUT_DYNAMIC_PLUGINS)
|
|
ADD_SUBDIRECTORY(plugin/semisync)
|
|
ENDIF(NOT WITHOUT_DYNAMIC_PLUGINS)
|
|
|
|
# FIXME "debug" only needed if build type is "Debug", but
|
|
# CMAKE_BUILD_TYPE is not set during configure time.
|
|
ADD_SUBDIRECTORY(vio)
|
|
ADD_SUBDIRECTORY(dbug)
|
|
ADD_SUBDIRECTORY(strings)
|
|
ADD_SUBDIRECTORY(regex)
|
|
ADD_SUBDIRECTORY(mysys)
|
|
ADD_SUBDIRECTORY(scripts)
|
|
ADD_SUBDIRECTORY(zlib)
|
|
ADD_SUBDIRECTORY(extra/yassl)
|
|
ADD_SUBDIRECTORY(extra/yassl/taocrypt)
|
|
ADD_SUBDIRECTORY(extra)
|
|
ADD_SUBDIRECTORY(client)
|
|
ADD_SUBDIRECTORY(sql)
|
|
ADD_SUBDIRECTORY(libmysql)
|
|
ADD_SUBDIRECTORY(libservices)
|
|
ADD_SUBDIRECTORY(tests)
|
|
ADD_SUBDIRECTORY(unittest/mytap)
|
|
ADD_SUBDIRECTORY(unittest/examples)
|
|
ADD_SUBDIRECTORY(unittest/mysys)
|
|
IF(WITH_EMBEDDED_SERVER)
|
|
ADD_SUBDIRECTORY(libmysqld)
|
|
ADD_SUBDIRECTORY(libmysqld/examples)
|
|
ENDIF(WITH_EMBEDDED_SERVER)
|
|
ADD_SUBDIRECTORY(mysql-test/lib/My/SafeProcess)
|