~mdcallag/+junk/5.1-map

2476.274.1 by joerg at trift2
Fix a bad BitKeeper dependency structure for the "CMakeLists.txt" files.
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
1810.3411.2 by iggy at alf
Bug#31319 CMake build does not check for minimum required version
16
CMAKE_MINIMUM_REQUIRED(VERSION 2.4.7 FATAL_ERROR)
17
1810.2080.1 by georg at sap
Additional files for cmake support
18
PROJECT(MySql)
19
20
# This reads user configuration, generated by configure.js.
21
INCLUDE(win/configure.data)
22
2476.273.20 by iggy at amd64
Post Merge Fixup.
23
# Hardcode support for CSV storage engine
24
SET(WITH_CSV_STORAGE_ENGINE TRUE)
25
1810.2080.1 by georg at sap
Additional files for cmake support
26
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/mysql_version.h.in
27
               ${CMAKE_SOURCE_DIR}/include/mysql_version.h @ONLY)
28
29
# Set standard options
1810.3233.5 by kent at mysql
CMakeLists.txt:
30
ADD_DEFINITIONS(-DHAVE_YASSL)
1810.2080.1 by georg at sap
Additional files for cmake support
31
1810.2900.1 by kgeorge at magare
Bug #27811:
32
# Set debug options
33
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DFORCE_INIT_OF_VARS")
1810.3233.4 by kent at mysql
CMakeLists.txt, README, configure.js
34
2476.286.1 by kent at kent-amd64
Merge mysql.com:/home/kent/bk/cmake-tls/mysql-5.0-build-new
35
# Note that some engines are always compiled in, MyISAM, MyISAMMRG and HEAP,
36
# these three plugin defintions are dummys for symmetry
37
2476.274.1 by joerg at trift2
Fix a bad BitKeeper dependency structure for the "CMakeLists.txt" files.
38
SET(WITH_HEAP_STORAGE_ENGINE TRUE)
39
ADD_DEFINITIONS(-DWITH_HEAP_STORAGE_ENGINE)
40
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_heap_plugin")
41
42
SET(WITH_MYISAM_STORAGE_ENGINE TRUE)
43
ADD_DEFINITIONS(-DWITH_MYISAM_STORAGE_ENGINE)
44
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_myisam_plugin")
45
46
SET(WITH_MYISAMMRG_STORAGE_ENGINE TRUE)
47
ADD_DEFINITIONS(-DWITH_MYISAMMRG_STORAGE_ENGINE)
48
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_myisammrg_plugin")
1810.2080.1 by georg at sap
Additional files for cmake support
49
50
IF(WITH_ARCHIVE_STORAGE_ENGINE)
2476.274.1 by joerg at trift2
Fix a bad BitKeeper dependency structure for the "CMakeLists.txt" files.
51
  ADD_DEFINITIONS(-DWITH_ARCHIVE_STORAGE_ENGINE)
52
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_archive_plugin")
1810.2080.1 by georg at sap
Additional files for cmake support
53
ENDIF(WITH_ARCHIVE_STORAGE_ENGINE)
2476.274.1 by joerg at trift2
Fix a bad BitKeeper dependency structure for the "CMakeLists.txt" files.
54
IF(WITH_BLACKHOLE_STORAGE_ENGINE)
55
  ADD_DEFINITIONS(-DWITH_BLACKHOLE_STORAGE_ENGINE)
56
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_blackhole_plugin")
57
ENDIF(WITH_BLACKHOLE_STORAGE_ENGINE)
58
IF(WITH_CSV_STORAGE_ENGINE)
59
  ADD_DEFINITIONS(-DWITH_CSV_STORAGE_ENGINE)
60
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_csv_plugin")
61
ENDIF(WITH_CSV_STORAGE_ENGINE)
62
IF(WITH_EXAMPLE_STORAGE_ENGINE)
63
  ADD_DEFINITIONS(-DWITH_EXAMPLE_STORAGE_ENGINE)
64
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_example_plugin")
65
ENDIF(WITH_EXAMPLE_STORAGE_ENGINE)
66
IF(WITH_INNOBASE_STORAGE_ENGINE)
67
  ADD_DEFINITIONS(-DWITH_INNOBASE_STORAGE_ENGINE)
68
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_innobase_plugin")
69
ENDIF(WITH_INNOBASE_STORAGE_ENGINE)
70
IF(WITH_PARTITION_STORAGE_ENGINE)
71
  ADD_DEFINITIONS(-DWITH_PARTITION_STORAGE_ENGINE)
72
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_partition_plugin")
73
ENDIF(WITH_PARTITION_STORAGE_ENGINE)
74
IF(WITH_FEDERATED_STORAGE_ENGINE)
75
  ADD_DEFINITIONS(-DWITH_FEDERATED_STORAGE_ENGINE)
76
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_federated_plugin")
77
ENDIF(WITH_FEDERATED_STORAGE_ENGINE)
78
79
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc.in 
80
               ${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc @ONLY)
81
1810.2080.1 by georg at sap
Additional files for cmake support
82
SET(localstatedir "C:\\mysql\\data")
83
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-huge.cnf.sh
84
               ${CMAKE_SOURCE_DIR}/support-files/my-huge.ini @ONLY)
85
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-innodb-heavy-4G.cnf.sh
86
               ${CMAKE_SOURCE_DIR}/support-files/my-innodb-heavy-4G.ini @ONLY)
87
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-large.cnf.sh
88
               ${CMAKE_SOURCE_DIR}/support-files/my-large.ini @ONLY)
89
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-medium.cnf.sh
90
               ${CMAKE_SOURCE_DIR}/support-files/my-medium.ini @ONLY)
91
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-small.cnf.sh
92
               ${CMAKE_SOURCE_DIR}/support-files/my-small.ini @ONLY)
93
94
IF(__NT__)
2476.274.1 by joerg at trift2
Fix a bad BitKeeper dependency structure for the "CMakeLists.txt" files.
95
  ADD_DEFINITIONS(-D__NT__)
1810.2080.1 by georg at sap
Additional files for cmake support
96
ENDIF(__NT__)
2476.274.1 by joerg at trift2
Fix a bad BitKeeper dependency structure for the "CMakeLists.txt" files.
97
IF(CYBOZU)
98
  ADD_DEFINITIONS(-DCYBOZU)
99
ENDIF(CYBOZU)
1810.2080.1 by georg at sap
Additional files for cmake support
100
101
# in some places we use DBUG_OFF
2476.274.1 by joerg at trift2
Fix a bad BitKeeper dependency structure for the "CMakeLists.txt" files.
102
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DDBUG_OFF")
1810.3233.5 by kent at mysql
CMakeLists.txt:
103
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DDBUG_OFF")
2476.274.1 by joerg at trift2
Fix a bad BitKeeper dependency structure for the "CMakeLists.txt" files.
104
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DDBUG_OFF")
1810.3233.5 by kent at mysql
CMakeLists.txt:
105
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -DDBUG_OFF")
1810.2080.1 by georg at sap
Additional files for cmake support
106
1810.3686.1 by kgeorge at macbook
Bug #26461: Intrinsic data type bool (1 byte) redefined to BOOL (4 bytes)
107
#TODO: update the code and remove the disabled warnings
108
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4800 /wd4805")
109
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4800 /wd4805")
110
1810.3764.1 by iggy at slim
Changes for Visual Studio 9
111
# Disable warnings in Visual Studio 8 and above
1810.3764.2 by iggy at amd64
Work around for older version of cmake.
112
IF(MSVC AND NOT CMAKE_GENERATOR MATCHES "Visual Studio 7")
1810.2080.1 by georg at sap
Additional files for cmake support
113
    SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /wd4996")
114
    SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /wd4996")
1810.2689.10 by kent at mysql
Makefile.am:
115
    SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /wd4996")
1810.2080.1 by georg at sap
Additional files for cmake support
116
    SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /wd4996")
117
    SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /wd4996")
1810.2689.10 by kent at mysql
Makefile.am:
118
    SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} /wd4996")
1810.3764.2 by iggy at amd64
Work around for older version of cmake.
119
ENDIF(MSVC AND NOT CMAKE_GENERATOR MATCHES "Visual Studio 7")
1810.3764.1 by iggy at slim
Changes for Visual Studio 9
120
121
# Settings for Visual Studio 7 and above.  
1810.3764.2 by iggy at amd64
Work around for older version of cmake.
122
IF(MSVC)
1810.3233.4 by kent at mysql
CMakeLists.txt, README, configure.js
123
    # replace /MDd with /MTd
124
    STRING(REPLACE "/MD"  "/MT"  CMAKE_C_FLAGS_RELEASE          ${CMAKE_C_FLAGS_RELEASE})
125
    STRING(REPLACE "/MD"  "/MT"  CMAKE_C_FLAGS_RELWITHDEBINFO   ${CMAKE_C_FLAGS_RELWITHDEBINFO})
126
    STRING(REPLACE "/MDd" "/MTd" CMAKE_C_FLAGS_DEBUG            ${CMAKE_C_FLAGS_DEBUG})
127
    STRING(REPLACE "/MDd" "/MTd" CMAKE_C_FLAGS_DEBUG_INIT       ${CMAKE_C_FLAGS_DEBUG_INIT})
128
129
    STRING(REPLACE "/MD"  "/MT"  CMAKE_CXX_FLAGS_RELEASE        ${CMAKE_CXX_FLAGS_RELEASE})
130
    STRING(REPLACE "/MD"  "/MT"  CMAKE_CXX_FLAGS_RELWITHDEBINFO ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})
131
    STRING(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG          ${CMAKE_CXX_FLAGS_DEBUG})
132
    STRING(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG_INIT     ${CMAKE_CXX_FLAGS_DEBUG_INIT})
133
134
    # generate map files, set stack size (see bug#20815)
135
    SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MAP /MAPINFO:EXPORTS")
136
    SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:1048576")
137
138
    # remove support for Exception handling
139
    STRING(REPLACE "/GX"   "" CMAKE_CXX_FLAGS            ${CMAKE_CXX_FLAGS})
140
    STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS            ${CMAKE_CXX_FLAGS})
141
    STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS_INIT       ${CMAKE_CXX_FLAGS_INIT})
142
    STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS_DEBUG_INIT ${CMAKE_CXX_FLAGS_DEBUG_INIT})
143
1810.3398.1 by iggy at alf
Bug#31289 vm-win2003-64-b build failures on PushBuild due to manifest
144
    # Disable automatic manifest generation.
145
    STRING(REPLACE "/MANIFEST" "/MANIFEST:NO" CMAKE_EXE_LINKER_FLAGS 
146
    	   ${CMAKE_EXE_LINKER_FLAGS})
147
    # Explicitly disable it since it is the default for newer versions of VS
148
    STRING(REGEX MATCH "MANIFEST:NO" tmp_manifest ${CMAKE_EXE_LINKER_FLAGS})
149
    IF(NOT tmp_manifest)
150
        SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO")
151
    ENDIF(NOT tmp_manifest)
1810.3764.2 by iggy at amd64
Work around for older version of cmake.
152
ENDIF(MSVC)
1810.2080.1 by georg at sap
Additional files for cmake support
153
2476.294.1 by kent at mysql
CMakeLists.txt (many), win/README, mysql_manifest.cmake, configure.js:
154
IF(WIN32)
155
  ADD_DEFINITIONS("-D_WINDOWS -D__WIN__ -D_CRT_SECURE_NO_DEPRECATE")
156
ENDIF(WIN32)
1810.2080.1 by georg at sap
Additional files for cmake support
157
1810.3672.1 by iggy at alf
Bug #23839 Multiple declarations of macros
158
# This definition is necessary to work around a bug with Intellisense described
159
# here: http://tinyurl.com/2cb428.  Syntax highlighting is important for proper
160
# debugger functionality.
161
IF(CMAKE_SIZEOF_VOID_P MATCHES 8)
162
    MESSAGE(STATUS "Detected 64-bit platform.")
163
    ADD_DEFINITIONS("-D_WIN64")
164
ENDIF(CMAKE_SIZEOF_VOID_P MATCHES 8)
165
1810.3392.3 by mysqldev at mysql
backport vista manifest patch
166
IF(EMBED_MANIFESTS)
1810.3203.2 by iggy at amd64
Bug#24732 Executables do not include Vista manifests
167
    # Search for the tools (mt, makecat, signtool) necessary for embedding
168
    # manifests and signing executables with the MySQL AB authenticode cert.
169
    #
170
    # CMake will first search it's defaults (CMAKE_FRAMEWORK_PATH, 
171
    # CMAKE_APPBUNDLE_PATH, CMAKE_PROGRAM_PATH and the system PATH) followed 
172
    # by the listed paths which are the current possible defaults and should be
173
    # updated when necessary.  
174
    # 
175
    # The custom manifests are designed to be compatible with all mt versions.
176
    # The MySQL AB Authenticode certificate is available only internally.  
177
    # Others should store a single signing certificate in a local cryptographic
178
    # service provider and alter the signtool command as necessary.
1810.3392.3 by mysqldev at mysql
backport vista manifest patch
179
    FIND_PROGRAM(HAVE_MANIFEST_TOOL NAMES mt
180
                 PATHS
181
                 "$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/VC/bin"
182
                 "$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin"
183
                 "$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/SDK/v2.0/Bin")
1810.3203.2 by iggy at amd64
Bug#24732 Executables do not include Vista manifests
184
    FIND_PROGRAM(HAVE_CATALOG_TOOL NAMES makecat
185
                 PATHS
186
                 "$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin")
187
    FIND_PROGRAM(HAVE_SIGN_TOOL NAMES signtool
188
                 PATHS
189
                 "$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin"
190
                 "$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/SDK/v2.0/Bin")
191
1810.3392.3 by mysqldev at mysql
backport vista manifest patch
192
    IF(HAVE_MANIFEST_TOOL)
1810.3203.2 by iggy at amd64
Bug#24732 Executables do not include Vista manifests
193
        MESSAGE(STATUS "Found Mainfest Tool.")
1810.3392.3 by mysqldev at mysql
backport vista manifest patch
194
    ELSE(HAVE_MANIFEST_TOOL)
195
        MESSAGE(FATAL_ERROR "Manifest tool, mt.exe, can't be found.")
196
    ENDIF(HAVE_MANIFEST_TOOL)
1810.3203.2 by iggy at amd64
Bug#24732 Executables do not include Vista manifests
197
    IF(HAVE_CATALOG_TOOL)
198
        MESSAGE(STATUS "Found Catalog Tool.")
199
    ELSE(HAVE_CATALOG_TOOL)
200
        MESSAGE(FATAL_ERROR "Catalog tool, makecat.exe, can't be found.")
201
    ENDIF(HAVE_CATALOG_TOOL)
202
    IF(HAVE_SIGN_TOOL)
203
        MESSAGE(STATUS "Found Sign Tool. Embedding custom manifests and signing executables.")
204
    ELSE(HAVE_SIGN_TOOL)
205
        MESSAGE(FATAL_ERROR "Sign tool, signtool.exe, can't be found.")
206
    ENDIF(HAVE_SIGN_TOOL)
207
1810.3392.3 by mysqldev at mysql
backport vista manifest patch
208
    # Set the processor architecture.
209
    IF(CMAKE_GENERATOR MATCHES "Visual Studio 8 2005 Win64")
1810.2918.34 by iggy at amd64
Bug#24732 Executables do not include Vista manifests
210
    	SET(PROCESSOR_ARCH "amd64") 
1810.3392.3 by mysqldev at mysql
backport vista manifest patch
211
    ELSE(CMAKE_GENERATOR MATCHES "Visual Studio 8 2005 Win64")
212
    	SET(PROCESSOR_ARCH "X86")
213
    ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 8 2005 Win64")
214
ENDIF(EMBED_MANIFESTS)
215
1810.3233.4 by kent at mysql
CMakeLists.txt, README, configure.js
216
# FIXME "debug" only needed if build type is "Debug", but
217
# CMAKE_BUILD_TYPE is not set during configure time.
1810.2080.1 by georg at sap
Additional files for cmake support
218
ADD_SUBDIRECTORY(vio)
219
ADD_SUBDIRECTORY(dbug)
220
ADD_SUBDIRECTORY(strings)
221
ADD_SUBDIRECTORY(regex)
222
ADD_SUBDIRECTORY(mysys)
2476.274.1 by joerg at trift2
Fix a bad BitKeeper dependency structure for the "CMakeLists.txt" files.
223
ADD_SUBDIRECTORY(scripts)
224
ADD_SUBDIRECTORY(zlib)
1810.2080.1 by georg at sap
Additional files for cmake support
225
ADD_SUBDIRECTORY(extra/yassl)
226
ADD_SUBDIRECTORY(extra/yassl/taocrypt)
227
ADD_SUBDIRECTORY(extra)
2476.274.1 by joerg at trift2
Fix a bad BitKeeper dependency structure for the "CMakeLists.txt" files.
228
ADD_SUBDIRECTORY(storage/heap)
229
ADD_SUBDIRECTORY(storage/myisam)
230
ADD_SUBDIRECTORY(storage/myisammrg)
2476.294.1 by kent at mysql
CMakeLists.txt (many), win/README, mysql_manifest.cmake, configure.js:
231
ADD_SUBDIRECTORY(client)
2476.274.1 by joerg at trift2
Fix a bad BitKeeper dependency structure for the "CMakeLists.txt" files.
232
IF(WITH_ARCHIVE_STORAGE_ENGINE)
233
  ADD_SUBDIRECTORY(storage/archive)
234
ENDIF(WITH_ARCHIVE_STORAGE_ENGINE)
235
IF(WITH_BLACKHOLE_STORAGE_ENGINE)
236
  ADD_SUBDIRECTORY(storage/blackhole)
237
ENDIF(WITH_BLACKHOLE_STORAGE_ENGINE)
238
IF(WITH_CSV_STORAGE_ENGINE)
239
  ADD_SUBDIRECTORY(storage/csv)
240
ENDIF(WITH_CSV_STORAGE_ENGINE)
241
IF(WITH_EXAMPLE_STORAGE_ENGINE)
242
  ADD_SUBDIRECTORY(storage/example)
243
ENDIF(WITH_EXAMPLE_STORAGE_ENGINE)
244
IF(WITH_FEDERATED_STORAGE_ENGINE)
245
  ADD_SUBDIRECTORY(storage/federated)
246
ENDIF(WITH_FEDERATED_STORAGE_ENGINE)
1810.2167.6 by iggy at dyndns
Bug#22224: Windows build depends on ib_config.h
247
IF(WITH_INNOBASE_STORAGE_ENGINE)
2476.274.1 by joerg at trift2
Fix a bad BitKeeper dependency structure for the "CMakeLists.txt" files.
248
  ADD_SUBDIRECTORY(storage/innobase)
1810.2167.6 by iggy at dyndns
Bug#22224: Windows build depends on ib_config.h
249
ENDIF(WITH_INNOBASE_STORAGE_ENGINE)
2476.294.1 by kent at mysql
CMakeLists.txt (many), win/README, mysql_manifest.cmake, configure.js:
250
ADD_SUBDIRECTORY(sql)
251
ADD_SUBDIRECTORY(server-tools/instance-manager)
2476.273.20 by iggy at amd64
Post Merge Fixup.
252
ADD_SUBDIRECTORY(libmysql)
2476.294.1 by kent at mysql
CMakeLists.txt (many), win/README, mysql_manifest.cmake, configure.js:
253
ADD_SUBDIRECTORY(tests)
254
IF(WITH_EMBEDDED_SERVER) 
2476.274.1 by joerg at trift2
Fix a bad BitKeeper dependency structure for the "CMakeLists.txt" files.
255
  ADD_SUBDIRECTORY(libmysqld)
256
  ADD_SUBDIRECTORY(libmysqld/examples)
2476.294.1 by kent at mysql
CMakeLists.txt (many), win/README, mysql_manifest.cmake, configure.js:
257
ENDIF(WITH_EMBEDDED_SERVER)