CMakeLists.txt 6.54 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
# 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

16 17
PROJECT(MySql)

18
# This reads user configuration, generated by configure.js.
reggie@big_geek's avatar
reggie@big_geek committed
19
INCLUDE(win/configure.data)
20

21 22 23
# Hardcode support for CSV storage engine
SET(WITH_CSV_STORAGE_ENGINE TRUE)

24
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/mysql_version.h.in
reggie@big_geek's avatar
reggie@big_geek committed
25
               ${CMAKE_SOURCE_DIR}/include/mysql_version.h @ONLY)
26

acurtis@xiphis.org's avatar
acurtis@xiphis.org committed
27 28 29 30 31 32 33 34 35 36 37 38
SET(WITH_HEAP_STORAGE_ENGINE TRUE)
ADD_DEFINITIONS(-D WITH_HEAP_STORAGE_ENGINE)
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_heap_plugin")

SET(WITH_MYISAM_STORAGE_ENGINE TRUE)
ADD_DEFINITIONS(-D WITH_MYISAM_STORAGE_ENGINE)
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_myisam_plugin")

SET(WITH_MYISAMMRG_STORAGE_ENGINE TRUE)
ADD_DEFINITIONS(-D WITH_MYISAMMRG_STORAGE_ENGINE)
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_myisammrg_plugin")

39 40
IF(WITH_ARCHIVE_STORAGE_ENGINE)
  ADD_DEFINITIONS(-D WITH_ARCHIVE_STORAGE_ENGINE)
acurtis@xiphis.org's avatar
acurtis@xiphis.org committed
41
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_archive_plugin")
42 43 44
ENDIF(WITH_ARCHIVE_STORAGE_ENGINE)
IF(WITH_BLACKHOLE_STORAGE_ENGINE)
  ADD_DEFINITIONS(-D WITH_BLACKHOLE_STORAGE_ENGINE)
acurtis@xiphis.org's avatar
acurtis@xiphis.org committed
45
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_blackhole_plugin")
46
ENDIF(WITH_BLACKHOLE_STORAGE_ENGINE)
47 48
IF(WITH_CSV_STORAGE_ENGINE)
  ADD_DEFINITIONS(-D WITH_CSV_STORAGE_ENGINE)
acurtis@xiphis.org's avatar
acurtis@xiphis.org committed
49
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_csv_plugin")
50
ENDIF(WITH_CSV_STORAGE_ENGINE)
51 52
IF(WITH_EXAMPLE_STORAGE_ENGINE)
  ADD_DEFINITIONS(-D WITH_EXAMPLE_STORAGE_ENGINE)
acurtis@xiphis.org's avatar
acurtis@xiphis.org committed
53
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_example_plugin")
54 55 56
ENDIF(WITH_EXAMPLE_STORAGE_ENGINE)
IF(WITH_INNOBASE_STORAGE_ENGINE)
  ADD_DEFINITIONS(-D WITH_INNOBASE_STORAGE_ENGINE)
acurtis@xiphis.org's avatar
acurtis@xiphis.org committed
57
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_innobase_plugin")
58 59 60
ENDIF(WITH_INNOBASE_STORAGE_ENGINE)
IF(WITH_PARTITION_STORAGE_ENGINE)
  ADD_DEFINITIONS(-D WITH_PARTITION_STORAGE_ENGINE)
acurtis@xiphis.org's avatar
acurtis@xiphis.org committed
61
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_partition_plugin")
62 63 64
ENDIF(WITH_PARTITION_STORAGE_ENGINE)
IF(WITH_FEDERATED_STORAGE_ENGINE)
  ADD_DEFINITIONS(-D WITH_FEDERATED_STORAGE_ENGINE)
acurtis@xiphis.org's avatar
acurtis@xiphis.org committed
65
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_federated_plugin")
66 67
ENDIF(WITH_FEDERATED_STORAGE_ENGINE)

acurtis@xiphis.org's avatar
acurtis@xiphis.org committed
68 69
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc.in 
               ${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc @ONLY)
70

71 72 73 74 75 76 77 78 79 80 81
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)
82

83 84 85 86 87 88 89
IF(__NT__)
  ADD_DEFINITIONS(-D __NT__)
ENDIF(__NT__)
IF(CYBOZU)
  ADD_DEFINITIONS(-D CYBOZU)
ENDIF(CYBOZU)

90 91 92 93
# in some places we use DBUG_OFF
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -D DBUG_OFF")
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D DBUG_OFF")

reggie@big_geek's avatar
reggie@big_geek committed
94 95 96 97 98 99
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")
reggie@big_geek's avatar
reggie@big_geek committed
100

reggie@big_geek's avatar
reggie@big_geek committed
101 102
IF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR 
   CMAKE_GENERATOR MATCHES "Visual Studio 8")
103
	# replace /MDd with /MTd
reggie@big_geek's avatar
reggie@big_geek committed
104 105 106 107 108 109 110 111 112 113 114 115
	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})
116 117 118 119

	# remove support for Exception handling
	STRING(REPLACE "/GX" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
	STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
reggie@big_geek's avatar
reggie@big_geek committed
120 121 122 123 124 125
	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")
126

reggie@big_geek's avatar
reggie@big_geek committed
127
ADD_DEFINITIONS("-D_WINDOWS -D__WIN__ -D _CRT_SECURE_NO_DEPRECATE")
128

129 130 131 132 133
ADD_SUBDIRECTORY(vio)
ADD_SUBDIRECTORY(dbug)
ADD_SUBDIRECTORY(strings)
ADD_SUBDIRECTORY(regex)
ADD_SUBDIRECTORY(mysys)
134
ADD_SUBDIRECTORY(zlib)
135 136 137 138 139 140 141 142 143 144
ADD_SUBDIRECTORY(extra/yassl)
ADD_SUBDIRECTORY(extra/yassl/taocrypt)
ADD_SUBDIRECTORY(extra)
ADD_SUBDIRECTORY(storage/heap)
ADD_SUBDIRECTORY(storage/myisam)
ADD_SUBDIRECTORY(storage/myisammrg)
ADD_SUBDIRECTORY(client)
IF(WITH_ARCHIVE_STORAGE_ENGINE)
  ADD_SUBDIRECTORY(storage/archive)
ENDIF(WITH_ARCHIVE_STORAGE_ENGINE)
acurtis@xiphis.org's avatar
acurtis@xiphis.org committed
145 146 147 148 149 150
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)
151 152 153
IF(WITH_EXAMPLE_STORAGE_ENGINE)
  ADD_SUBDIRECTORY(storage/example)
ENDIF(WITH_EXAMPLE_STORAGE_ENGINE)
154 155 156
IF(WITH_FEDERATED_STORAGE_ENGINE)
  ADD_SUBDIRECTORY(storage/federated)
ENDIF(WITH_FEDERATED_STORAGE_ENGINE)
157 158 159 160 161 162 163
IF(WITH_INNOBASE_STORAGE_ENGINE)
  ADD_SUBDIRECTORY(storage/innobase)
ENDIF(WITH_INNOBASE_STORAGE_ENGINE)
ADD_SUBDIRECTORY(sql)
ADD_SUBDIRECTORY(server-tools/instance-manager)
ADD_SUBDIRECTORY(libmysql)
ADD_SUBDIRECTORY(tests)
164 165 166 167

# disable libmysqld until it's fixed, so we can use Cmake 2.2 and 2.4
#ADD_SUBDIRECTORY(libmysqld)
#ADD_SUBDIRECTORY(libmysqld/examples)