mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
d9fda1cf9a
CMakeLists.txt: BUG#20815 Set stack size. This value is really supposed to be the linker's default. I'm not quite sure why we have to specify it manually too.
227 lines
9.4 KiB
CMake
227 lines
9.4 KiB
CMake
# Copyright (C) 2006 MySQL AB
|
|
#
|
|
# 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
|
|
|
|
PROJECT(MySql)
|
|
|
|
# This reads user configuration, generated by configure.js.
|
|
INCLUDE(win/configure.data)
|
|
|
|
# By default, CMake will create Release, Debug, RelWithDebInfo and MinSizeRel
|
|
# configurations. The EMBEDDED_ONLY build parameter is necessary because CMake
|
|
# doesn't support custom build configurations for VS2005. Since the Debug
|
|
# configuration does not work properly with USE_TLS defined
|
|
# (see mysys/CMakeLists.txt) the easiest way to debug the Embedded Server is to
|
|
# use the RelWithDebInfo configuration without optimizations.
|
|
#
|
|
# Debug default CXX_FLAGS "/D_DEBUG /MDd /Zi /Ob0 /Od /RTC1"
|
|
# RelWithDebInfo default CXX_FLAGS "/MD /Zi /O2 /Ob1 /D NDEBUG"
|
|
#
|
|
IF(NOT EMBEDDED_ONLY)
|
|
# Hardcode support for CSV storage engine
|
|
SET(WITH_CSV_STORAGE_ENGINE TRUE)
|
|
ELSE(NOT EMBEDDED_ONLY)
|
|
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD /Zi /Od /Ob0 /D NDEBUG" CACHE STRING "No Optimization" FORCE)
|
|
ENDIF(NOT EMBEDDED_ONLY)
|
|
|
|
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/mysql_version.h.in
|
|
${CMAKE_SOURCE_DIR}/include/mysql_version.h @ONLY)
|
|
|
|
SET(WITH_HEAP_STORAGE_ENGINE TRUE)
|
|
ADD_DEFINITIONS(-DWITH_HEAP_STORAGE_ENGINE)
|
|
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_heap_plugin")
|
|
|
|
SET(WITH_MYISAM_STORAGE_ENGINE TRUE)
|
|
ADD_DEFINITIONS(-DWITH_MYISAM_STORAGE_ENGINE)
|
|
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_myisam_plugin")
|
|
|
|
SET(WITH_MYISAMMRG_STORAGE_ENGINE TRUE)
|
|
ADD_DEFINITIONS(-DWITH_MYISAMMRG_STORAGE_ENGINE)
|
|
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_myisammrg_plugin")
|
|
|
|
IF(WITH_ARCHIVE_STORAGE_ENGINE)
|
|
ADD_DEFINITIONS(-DWITH_ARCHIVE_STORAGE_ENGINE)
|
|
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_archive_plugin")
|
|
ENDIF(WITH_ARCHIVE_STORAGE_ENGINE)
|
|
IF(WITH_BLACKHOLE_STORAGE_ENGINE)
|
|
ADD_DEFINITIONS(-DWITH_BLACKHOLE_STORAGE_ENGINE)
|
|
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_blackhole_plugin")
|
|
ENDIF(WITH_BLACKHOLE_STORAGE_ENGINE)
|
|
IF(WITH_CSV_STORAGE_ENGINE)
|
|
ADD_DEFINITIONS(-DWITH_CSV_STORAGE_ENGINE)
|
|
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_csv_plugin")
|
|
ENDIF(WITH_CSV_STORAGE_ENGINE)
|
|
IF(WITH_EXAMPLE_STORAGE_ENGINE)
|
|
ADD_DEFINITIONS(-DWITH_EXAMPLE_STORAGE_ENGINE)
|
|
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_example_plugin")
|
|
ENDIF(WITH_EXAMPLE_STORAGE_ENGINE)
|
|
IF(WITH_INNOBASE_STORAGE_ENGINE)
|
|
ADD_DEFINITIONS(-DWITH_INNOBASE_STORAGE_ENGINE)
|
|
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_innobase_plugin")
|
|
ENDIF(WITH_INNOBASE_STORAGE_ENGINE)
|
|
IF(WITH_PARTITION_STORAGE_ENGINE)
|
|
ADD_DEFINITIONS(-DWITH_PARTITION_STORAGE_ENGINE)
|
|
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_partition_plugin")
|
|
ENDIF(WITH_PARTITION_STORAGE_ENGINE)
|
|
IF(WITH_FEDERATED_STORAGE_ENGINE)
|
|
ADD_DEFINITIONS(-DWITH_FEDERATED_STORAGE_ENGINE)
|
|
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_federated_plugin")
|
|
ENDIF(WITH_FEDERATED_STORAGE_ENGINE)
|
|
|
|
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc.in
|
|
${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc @ONLY)
|
|
|
|
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(__NT__)
|
|
ADD_DEFINITIONS(-D__NT__)
|
|
ENDIF(__NT__)
|
|
IF(CYBOZU)
|
|
ADD_DEFINITIONS(-DCYBOZU)
|
|
ENDIF(CYBOZU)
|
|
|
|
# in some places we use DBUG_OFF
|
|
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DDBUG_OFF")
|
|
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DDBUG_OFF")
|
|
|
|
IF(CMAKE_GENERATOR MATCHES "Visual Studio 8")
|
|
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /wd4996")
|
|
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /wd4996")
|
|
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /wd4996")
|
|
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /wd4996")
|
|
ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 8")
|
|
|
|
IF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR
|
|
CMAKE_GENERATOR MATCHES "Visual Studio 8")
|
|
# replace /MDd with /MTd
|
|
STRING(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG_INIT
|
|
${CMAKE_CXX_FLAGS_DEBUG_INIT})
|
|
STRING(REPLACE "/MDd" "/MTd" CMAKE_C_FLAGS_DEBUG_INIT
|
|
${CMAKE_C_FLAGS_DEBUG_INIT})
|
|
STRING(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELEASE
|
|
${CMAKE_C_FLAGS_RELEASE})
|
|
STRING(REPLACE "/MDd" "/MTd" CMAKE_C_FLAGS_DEBUG
|
|
${CMAKE_C_FLAGS_DEBUG})
|
|
STRING(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASE
|
|
${CMAKE_CXX_FLAGS_RELEASE})
|
|
STRING(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG
|
|
${CMAKE_CXX_FLAGS_DEBUG})
|
|
|
|
STRING(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
|
${CMAKE_CXX_FLAGS_RELWITHDEBINFO})
|
|
STRING(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELWITHDEBINFO
|
|
${CMAKE_C_FLAGS_RELWITHDEBINFO})
|
|
|
|
# generate .map files
|
|
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MAP /MAPINFO:EXPORTS")
|
|
|
|
# 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})
|
|
ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR
|
|
CMAKE_GENERATOR MATCHES "Visual Studio 8")
|
|
|
|
ADD_DEFINITIONS("-D_WINDOWS -D__WIN__ -D_CRT_SECURE_NO_DEPRECATE")
|
|
|
|
IF(EMBED_MANIFESTS)
|
|
# Search for the Manifest tool. 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.
|
|
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")
|
|
IF(HAVE_MANIFEST_TOOL)
|
|
MESSAGE(STATUS "Found Mainfest Tool. Embedding custom manifests.")
|
|
ELSE(HAVE_MANIFEST_TOOL)
|
|
MESSAGE(FATAL_ERROR "Manifest tool, mt.exe, can't be found.")
|
|
ENDIF(HAVE_MANIFEST_TOOL)
|
|
# 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)
|
|
# 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)
|
|
|
|
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(storage/heap)
|
|
ADD_SUBDIRECTORY(storage/myisam)
|
|
ADD_SUBDIRECTORY(storage/myisammrg)
|
|
|
|
IF(WITH_ARCHIVE_STORAGE_ENGINE)
|
|
ADD_SUBDIRECTORY(storage/archive)
|
|
ENDIF(WITH_ARCHIVE_STORAGE_ENGINE)
|
|
IF(WITH_BLACKHOLE_STORAGE_ENGINE)
|
|
ADD_SUBDIRECTORY(storage/blackhole)
|
|
ENDIF(WITH_BLACKHOLE_STORAGE_ENGINE)
|
|
IF(WITH_CSV_STORAGE_ENGINE)
|
|
ADD_SUBDIRECTORY(storage/csv)
|
|
ENDIF(WITH_CSV_STORAGE_ENGINE)
|
|
IF(WITH_EXAMPLE_STORAGE_ENGINE)
|
|
ADD_SUBDIRECTORY(storage/example)
|
|
ENDIF(WITH_EXAMPLE_STORAGE_ENGINE)
|
|
IF(WITH_FEDERATED_STORAGE_ENGINE)
|
|
ADD_SUBDIRECTORY(storage/federated)
|
|
ENDIF(WITH_FEDERATED_STORAGE_ENGINE)
|
|
IF(WITH_INNOBASE_STORAGE_ENGINE)
|
|
ADD_SUBDIRECTORY(storage/innobase)
|
|
ENDIF(WITH_INNOBASE_STORAGE_ENGINE)
|
|
# CMAKE will not allow custom VS7+ configurations. mysqld and libmysqld
|
|
# cannot be built at the same time as they require different configurations
|
|
IF(EMBEDDED_ONLY)
|
|
ADD_DEFINITIONS(-DEMBEDDED_LIBRARY)
|
|
ADD_SUBDIRECTORY(libmysqld)
|
|
ADD_SUBDIRECTORY(libmysqld/examples)
|
|
ELSE(EMBEDDED_ONLY)
|
|
ADD_SUBDIRECTORY(client)
|
|
ADD_SUBDIRECTORY(sql)
|
|
ADD_SUBDIRECTORY(server-tools/instance-manager)
|
|
ADD_SUBDIRECTORY(libmysql)
|
|
ADD_SUBDIRECTORY(tests)
|
|
ENDIF(EMBEDDED_ONLY)
|