| 1 |
# Copyright (C) 2006 MySQL AB |
| 2 |
# |
| 3 |
# This program is free software; you can redistribute it and/or modify |
| 4 |
# it under the terms of the GNU General Public License as published by |
| 5 |
# the Free Software Foundation; version 2 of the License. |
| 6 |
# |
| 7 |
# This program is distributed in the hope that it will be useful, |
| 8 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 9 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 10 |
# GNU General Public License for more details. |
| 11 |
# |
| 12 |
# You should have received a copy of the GNU General Public License |
| 13 |
# along with this program; if not, write to the Free Software |
| 14 |
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
| 15 |
|
| 16 |
PROJECT(MySql) |
| 17 |
|
| 18 |
# This reads user configuration, generated by configure.js. |
| 19 |
INCLUDE(win/configure.data) |
| 20 |
|
| 21 |
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/mysql_version.h.in |
| 22 |
${CMAKE_SOURCE_DIR}/include/mysql_version.h @ONLY) |
| 23 |
|
| 24 |
# Set standard options |
| 25 |
ADD_DEFINITIONS(-D WITH_MYISAM_STORAGE_ENGINE) |
| 26 |
ADD_DEFINITIONS(-D CMAKE_BUILD) |
| 27 |
ADD_DEFINITIONS(-D HAVE_YASSL) |
| 28 |
|
| 29 |
# Set debug options |
| 30 |
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DFORCE_INIT_OF_VARS") |
| 31 |
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DFORCE_INIT_OF_VARS") |
| 32 |
|
| 33 |
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_myisam_plugin") |
| 34 |
|
| 35 |
|
| 36 |
IF(WITH_ARCHIVE_STORAGE_ENGINE) |
| 37 |
ADD_DEFINITIONS(-D HAVE_ARCHIVE_DB) |
| 38 |
ENDIF(WITH_ARCHIVE_STORAGE_ENGINE) |
| 39 |
|
| 40 |
IF (WITH_HEAP_STORAGE_ENGINE) |
| 41 |
ADD_DEFINITIONS(-D WITH_HEAP_STORAGE_ENGINE) |
| 42 |
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_heap_plugin") |
| 43 |
ENDIF (WITH_HEAP_STORAGE_ENGINE) |
| 44 |
|
| 45 |
IF (WITH_MYISAMMRG_STORAGE_ENGINE) |
| 46 |
ADD_DEFINITIONS(-D WITH_MYISAMMRG_STORAGE_ENGINE) |
| 47 |
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_myisammrg_plugin") |
| 48 |
ENDIF (WITH_MYISAMMRG_STORAGE_ENGINE) |
| 49 |
|
| 50 |
IF(WITH_INNOBASE_STORAGE_ENGINE) |
| 51 |
ADD_DEFINITIONS(-D HAVE_INNOBASE_DB) |
| 52 |
ADD_DEFINITIONS(-D WITH_INNOBASE_STORAGE_ENGINE) |
| 53 |
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_innobase_plugin") |
| 54 |
ENDIF(WITH_INNOBASE_STORAGE_ENGINE) |
| 55 |
|
| 56 |
IF(WITH_FEDERATED_STORAGE_ENGINE) |
| 57 |
ADD_DEFINITIONS(-D HAVE_FEDERATED_DB) |
| 58 |
ADD_DEFINITIONS(-D WITH_FEDERATED_STORAGE_ENGINE) |
| 59 |
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_federated_plugin") |
| 60 |
ENDIF(WITH_FEDERATED_STORAGE_ENGINE) |
| 61 |
|
| 62 |
IF(WITH_BERKELEY_STORAGE_ENGINE) |
| 63 |
ADD_DEFINITIONS(-D HAVE_BERKELEY_DB) |
| 64 |
ADD_DEFINITIONS(-D WITH_BERKELEY_STORAGE_ENGINE) |
| 65 |
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_berkeley_plugin") |
| 66 |
ENDIF(WITH_BERKELEY_STORAGE_ENGINE) |
| 67 |
|
| 68 |
IF (WITH_BLACKHOLE_STORAGE_ENGINE) |
| 69 |
ADD_DEFINITIONS(-D HAVE_BLACKHOLE_DB) |
| 70 |
ENDIF (WITH_BLACKHOLE_STORAGE_ENGINE) |
| 71 |
|
| 72 |
SET(localstatedir "C:\\mysql\\data") |
| 73 |
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-huge.cnf.sh |
| 74 |
${CMAKE_SOURCE_DIR}/support-files/my-huge.ini @ONLY) |
| 75 |
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-innodb-heavy-4G.cnf.sh |
| 76 |
${CMAKE_SOURCE_DIR}/support-files/my-innodb-heavy-4G.ini @ONLY) |
| 77 |
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-large.cnf.sh |
| 78 |
${CMAKE_SOURCE_DIR}/support-files/my-large.ini @ONLY) |
| 79 |
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-medium.cnf.sh |
| 80 |
${CMAKE_SOURCE_DIR}/support-files/my-medium.ini @ONLY) |
| 81 |
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-small.cnf.sh |
| 82 |
${CMAKE_SOURCE_DIR}/support-files/my-small.ini @ONLY) |
| 83 |
|
| 84 |
IF(__NT__) |
| 85 |
ADD_DEFINITIONS(-D __NT__) |
| 86 |
ENDIF(__NT__) |
| 87 |
|
| 88 |
# in some places we use DBUG_OFF |
| 89 |
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -D DBUG_OFF") |
| 90 |
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -D DBUG_OFF") |
| 91 |
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D DBUG_OFF") |
| 92 |
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -D DBUG_OFF") |
| 93 |
|
| 94 |
IF(CMAKE_GENERATOR MATCHES "Visual Studio 8") |
| 95 |
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /wd4996") |
| 96 |
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /wd4996") |
| 97 |
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /wd4996") |
| 98 |
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /wd4996") |
| 99 |
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /wd4996") |
| 100 |
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} /wd4996") |
| 101 |
ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 8") |
| 102 |
|
| 103 |
IF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR |
| 104 |
CMAKE_GENERATOR MATCHES "Visual Studio 8") |
| 105 |
# replace /MDd with /MTd |
| 106 |
STRING(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG_INIT |
| 107 |
${CMAKE_CXX_FLAGS_DEBUG_INIT}) |
| 108 |
STRING(REPLACE "/MDd" "/MTd" CMAKE_C_FLAGS_DEBUG_INIT |
| 109 |
${CMAKE_C_FLAGS_DEBUG_INIT}) |
| 110 |
STRING(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELEASE |
| 111 |
${CMAKE_C_FLAGS_RELEASE}) |
| 112 |
STRING(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELWITHDEBINFO |
| 113 |
${CMAKE_C_FLAGS_RELWITHDEBINFO}) |
| 114 |
STRING(REPLACE "/MDd" "/MTd" CMAKE_C_FLAGS_DEBUG |
| 115 |
${CMAKE_C_FLAGS_DEBUG}) |
| 116 |
STRING(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASE |
| 117 |
${CMAKE_CXX_FLAGS_RELEASE}) |
| 118 |
STRING(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELWITHDEBINFO |
| 119 |
${CMAKE_CXX_FLAGS_RELWITHDEBINFO}) |
| 120 |
STRING(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG |
| 121 |
${CMAKE_CXX_FLAGS_DEBUG}) |
| 122 |
|
| 123 |
# generate map files |
| 124 |
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MAP /MAPINFO:EXPORTS") |
| 125 |
|
| 126 |
# remove support for Exception handling |
| 127 |
STRING(REPLACE "/GX" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) |
| 128 |
STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) |
| 129 |
STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS_INIT |
| 130 |
${CMAKE_CXX_FLAGS_INIT}) |
| 131 |
STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS_DEBUG_INIT |
| 132 |
${CMAKE_CXX_FLAGS_DEBUG_INIT}) |
| 133 |
ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR |
| 134 |
CMAKE_GENERATOR MATCHES "Visual Studio 8") |
| 135 |
|
| 136 |
ADD_DEFINITIONS("-D_WINDOWS -D__WIN__ -D _CRT_SECURE_NO_DEPRECATE") |
| 137 |
|
| 138 |
IF(EMBED_MANIFESTS) |
| 139 |
# Search for the Manifest tool. CMake will first search it's defaults |
| 140 |
# (CMAKE_FRAMEWORK_PATH, CMAKE_APPBUNDLE_PATH, CMAKE_PROGRAM_PATH and |
| 141 |
# the system PATH) followed by the listed paths which are the current |
| 142 |
# possible defaults and should be updated when necessary. The custom |
| 143 |
# manifests are designed to be compatible with all mt versions. |
| 144 |
FIND_PROGRAM(HAVE_MANIFEST_TOOL NAMES mt |
| 145 |
PATHS |
| 146 |
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/VC/bin" |
| 147 |
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin" |
| 148 |
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/SDK/v2.0/Bin") |
| 149 |
IF(HAVE_MANIFEST_TOOL) |
| 150 |
MESSAGE(STATUS "Found Mainfest Tool. Embedding custom manifests.") |
| 151 |
ELSE(HAVE_MANIFEST_TOOL) |
| 152 |
MESSAGE(FATAL_ERROR "Manifest tool, mt.exe, can't be found.") |
| 153 |
ENDIF(HAVE_MANIFEST_TOOL) |
| 154 |
# Disable automatic manifest generation. |
| 155 |
STRING(REPLACE "/MANIFEST" "/MANIFEST:NO" CMAKE_EXE_LINKER_FLAGS |
| 156 |
${CMAKE_EXE_LINKER_FLAGS}) |
| 157 |
# Explicitly disable it since it is the default for newer versions of VS |
| 158 |
STRING(REGEX MATCH "MANIFEST:NO" tmp_manifest ${CMAKE_EXE_LINKER_FLAGS}) |
| 159 |
IF(NOT tmp_manifest) |
| 160 |
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO") |
| 161 |
ENDIF(NOT tmp_manifest) |
| 162 |
# Set the processor architecture. |
| 163 |
IF(CMAKE_GENERATOR MATCHES "Visual Studio 8 2005 Win64") |
| 164 |
SET(PROCESSOR_ARCH "X64") |
| 165 |
ELSE(CMAKE_GENERATOR MATCHES "Visual Studio 8 2005 Win64") |
| 166 |
SET(PROCESSOR_ARCH "X86") |
| 167 |
ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 8 2005 Win64") |
| 168 |
ENDIF(EMBED_MANIFESTS) |
| 169 |
|
| 170 |
ADD_SUBDIRECTORY(vio) |
| 171 |
ADD_SUBDIRECTORY(dbug) |
| 172 |
ADD_SUBDIRECTORY(strings) |
| 173 |
ADD_SUBDIRECTORY(regex) |
| 174 |
ADD_SUBDIRECTORY(mysys) |
| 175 |
ADD_SUBDIRECTORY(scripts) |
| 176 |
ADD_SUBDIRECTORY(zlib) |
| 177 |
ADD_SUBDIRECTORY(extra/yassl) |
| 178 |
ADD_SUBDIRECTORY(extra/yassl/taocrypt) |
| 179 |
ADD_SUBDIRECTORY(extra) |
| 180 |
ADD_SUBDIRECTORY(heap) |
| 181 |
ADD_SUBDIRECTORY(myisam) |
| 182 |
ADD_SUBDIRECTORY(myisammrg) |
| 183 |
ADD_SUBDIRECTORY(client) |
| 184 |
IF(WITH_BERKELEY_STORAGE_ENGINE) |
| 185 |
ADD_SUBDIRECTORY(bdb) |
| 186 |
ENDIF(WITH_BERKELEY_STORAGE_ENGINE) |
| 187 |
IF(WITH_INNOBASE_STORAGE_ENGINE) |
| 188 |
ADD_SUBDIRECTORY(innobase) |
| 189 |
ENDIF(WITH_INNOBASE_STORAGE_ENGINE) |
| 190 |
ADD_SUBDIRECTORY(sql) |
| 191 |
ADD_SUBDIRECTORY(sql/examples) |
| 192 |
ADD_SUBDIRECTORY(server-tools/instance-manager) |
| 193 |
ADD_SUBDIRECTORY(libmysql) |
| 194 |
ADD_SUBDIRECTORY(tests) |