1
- # Copyright (c) 2010, 2012 , Oracle and/or its affiliates. All rights reserved.
1
+ # Copyright (c) 2010, 2015 , Oracle and/or its affiliates. All rights reserved.
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
22
22
# and relative links. Windows zip uses the same tarball layout but without
23
23
# the build prefix.
24
24
#
25
- # RPM
25
+ # RPM, SLES
26
26
# Build as per default RPM layout, with prefix=/usr
27
27
# Note: The layout for ULN RPMs differs, see the "RPM" section.
28
28
#
32
32
# SVR4
33
33
# Solaris package layout suitable for pkg* tools, prefix=/opt/mysql/mysql
34
34
#
35
+ # FREEBSD, GLIBC, OSX, TARGZ
36
+ # Build with prefix=/usr/local/mysql, create tarball with install prefix="."
37
+ # and relative links.
38
+ #
39
+ # WIN
40
+ # Windows zip : same as tarball layout but without the build prefix
41
+ #
35
42
# To force a directory layout, use -DINSTALL_LAYOUT=<layout>.
36
43
#
37
44
# The default is STANDALONE.
38
45
#
46
+ # Note : At present, RPM and SLES layouts are similar. This is also true
47
+ # for layouts like FREEBSD, GLIBC, OSX, TARGZ. However, they provide
48
+ # opportunity to fine-tune deployment for each platform without
49
+ # affecting all other types of deployment.
50
+ #
39
51
# There is the possibility to further fine-tune installation directories.
40
52
# Several variables can be overwritten:
41
53
#
60
72
# - INSTALL_SUPPORTFILESDIR (various extra support files)
61
73
#
62
74
# - INSTALL_MYSQLDATADIR (data directory)
75
+ # - INSTALL_SECURE_FILE_PRIVDIR (--secure-file-priv directory)
63
76
#
64
77
# When changing this page, _please_ do not forget to update public Wiki
65
78
# http://forge.mysql.com/wiki/CMake#Fine-tuning_installation_paths
@@ -72,7 +85,8 @@ SET(INSTALL_LAYOUT "${DEFAULT_INSTALL_LAYOUT}"
72
85
CACHE STRING "Installation directory layout. Options are: STANDALONE (as in zip or tar.gz installer), RPM, DEB, SVR4" )
73
86
74
87
IF (UNIX )
75
- IF (INSTALL_LAYOUT MATCHES "RPM" )
88
+ IF (INSTALL_LAYOUT MATCHES "RPM" OR
89
+ INSTALL_LAYOUT MATCHES "SLES" )
76
90
SET (default_prefix "/usr" )
77
91
ELSEIF (INSTALL_LAYOUT MATCHES "DEB" )
78
92
SET (default_prefix "/opt/mysql/server-${MYSQL_BASE_VERSION} " )
@@ -87,7 +101,7 @@ IF(UNIX)
87
101
SET (CMAKE_INSTALL_PREFIX ${default_prefix}
88
102
CACHE PATH "install prefix" FORCE)
89
103
ENDIF ()
90
- SET (VALID_INSTALL_LAYOUTS "RPM" "STANDALONE " "DEB " "SVR4 " )
104
+ SET (VALID_INSTALL_LAYOUTS "RPM" "DEB " "SVR4 " "FREEBSD" "GLIBC" "OSX" "TARGZ" "SLES" "STANDALONE " )
91
105
LIST (FIND VALID_INSTALL_LAYOUTS "${INSTALL_LAYOUT} " ind)
92
106
IF (ind EQUAL -1)
93
107
MESSAGE (FATAL_ERROR "Invalid INSTALL_LAYOUT parameter:${INSTALL_LAYOUT} ."
@@ -99,6 +113,15 @@ IF(UNIX)
99
113
MARK_AS_ADVANCED (SYSCONFDIR)
100
114
ENDIF ()
101
115
116
+ IF (WIN32 )
117
+ SET (VALID_INSTALL_LAYOUTS "TARGZ" "STANDALONE" "WIN" )
118
+ LIST (FIND VALID_INSTALL_LAYOUTS "${INSTALL_LAYOUT} " ind)
119
+ IF (ind EQUAL -1)
120
+ MESSAGE (FATAL_ERROR "Invalid INSTALL_LAYOUT parameter:${INSTALL_LAYOUT} ."
121
+ " Choose between ${VALID_INSTALL_LAYOUTS} " )
122
+ ENDIF ()
123
+ ENDIF ()
124
+
102
125
#
103
126
# plugin_tests's value should not be used by imported plugins,
104
127
# just use if(INSTALL_PLUGINTESTDIR).
@@ -109,6 +132,21 @@ FILE(GLOB plugin_tests
109
132
${CMAKE_SOURCE_DIR} /internal /plugin/*/tests
110
133
)
111
134
135
+ #
136
+ # DEFAULT_SECURE_FILE_PRIV_DIR
137
+ #
138
+ IF (INSTALL_LAYOUT MATCHES "STANDALONE" OR
139
+ INSTALL_LAYOUT MATCHES "WIN" )
140
+ SET (secure_file_priv_path "" )
141
+ ELSEIF (INSTALL_LAYOUT MATCHES "RPM" OR
142
+ INSTALL_LAYOUT MATCHES "SLES" OR
143
+ INSTALL_LAYOUT MATCHES "SVR4" OR
144
+ INSTALL_LAYOUT MATCHES "DEB" )
145
+ SET (secure_file_priv_path "/var/lib/mysql-files" )
146
+ ELSE ()
147
+ SET (secure_file_priv_path "${default_prefix} /mysql-files" )
148
+ ENDIF ()
149
+
112
150
#
113
151
# STANDALONE layout
114
152
#
@@ -134,6 +172,142 @@ SET(INSTALL_SUPPORTFILESDIR_STANDALONE "support-files")
134
172
#
135
173
SET (INSTALL_MYSQLDATADIR_STANDALONE "data" )
136
174
SET (INSTALL_PLUGINTESTDIR_STANDALONE ${plugin_tests} )
175
+ SET (INSTALL_SECURE_FILE_PRIVDIR_STANDALONE ${secure_file_priv_path} )
176
+
177
+ #
178
+ # WIN layout
179
+ #
180
+ SET (INSTALL_BINDIR_WIN "bin" )
181
+ SET (INSTALL_SBINDIR_WIN "bin" )
182
+ SET (INSTALL_SCRIPTDIR_WIN "scripts" )
183
+ #
184
+ SET (INSTALL_LIBDIR_WIN "lib" )
185
+ SET (INSTALL_PLUGINDIR_WIN "lib/plugin" )
186
+ #
187
+ SET (INSTALL_INCLUDEDIR_WIN "include" )
188
+ #
189
+ SET (INSTALL_DOCDIR_WIN "docs" )
190
+ SET (INSTALL_DOCREADMEDIR_WIN "." )
191
+ SET (INSTALL_MANDIR_WIN "man" )
192
+ SET (INSTALL_INFODIR_WIN "docs" )
193
+ #
194
+ SET (INSTALL_SHAREDIR_WIN "share" )
195
+ SET (INSTALL_MYSQLSHAREDIR_WIN "share" )
196
+ SET (INSTALL_MYSQLTESTDIR_WIN "mysql-test" )
197
+ SET (INSTALL_SQLBENCHDIR_WIN "." )
198
+ SET (INSTALL_SUPPORTFILESDIR_WIN "support-files" )
199
+ #
200
+ SET (INSTALL_MYSQLDATADIR_WIN "data" )
201
+ SET (INSTALL_PLUGINTESTDIR_WIN ${plugin_tests} )
202
+ SET (INSTALL_SECURE_FILE_PRIVDIR_WIN ${secure_file_priv_path} )
203
+
204
+ #
205
+ # FREEBSD layout
206
+ #
207
+ SET (INSTALL_BINDIR_FREEBSD "bin" )
208
+ SET (INSTALL_SBINDIR_FREEBSD "bin" )
209
+ SET (INSTALL_SCRIPTDIR_FREEBSD "scripts" )
210
+ #
211
+ SET (INSTALL_LIBDIR_FREEBSD "lib" )
212
+ SET (INSTALL_PLUGINDIR_FREEBSD "lib/plugin" )
213
+ #
214
+ SET (INSTALL_INCLUDEDIR_FREEBSD "include" )
215
+ #
216
+ SET (INSTALL_DOCDIR_FREEBSD "docs" )
217
+ SET (INSTALL_DOCREADMEDIR_FREEBSD "." )
218
+ SET (INSTALL_MANDIR_FREEBSD "man" )
219
+ SET (INSTALL_INFODIR_FREEBSD "docs" )
220
+ #
221
+ SET (INSTALL_SHAREDIR_FREEBSD "share" )
222
+ SET (INSTALL_MYSQLSHAREDIR_FREEBSD "share" )
223
+ SET (INSTALL_MYSQLTESTDIR_FREEBSD "mysql-test" )
224
+ SET (INSTALL_SQLBENCHDIR_FREEBSD "." )
225
+ SET (INSTALL_SUPPORTFILESDIR_FREEBSD "support-files" )
226
+ #
227
+ SET (INSTALL_MYSQLDATADIR_FREEBSD "data" )
228
+ SET (INSTALL_PLUGINTESTDIR_FREEBSD ${plugin_tests} )
229
+ SET (INSTALL_SECURE_FILE_PRIVDIR_FREEBSD ${secure_file_priv_path} )
230
+
231
+ #
232
+ # GLIBC layout
233
+ #
234
+ SET (INSTALL_BINDIR_GLIBC "bin" )
235
+ SET (INSTALL_SBINDIR_GLIBC "bin" )
236
+ SET (INSTALL_SCRIPTDIR_GLIBC "scripts" )
237
+ #
238
+ SET (INSTALL_LIBDIR_GLIBC "lib" )
239
+ SET (INSTALL_PLUGINDIR_GLIBC "lib/plugin" )
240
+ #
241
+ SET (INSTALL_INCLUDEDIR_GLIBC "include" )
242
+ #
243
+ SET (INSTALL_DOCDIR_GLIBC "docs" )
244
+ SET (INSTALL_DOCREADMEDIR_GLIBC "." )
245
+ SET (INSTALL_MANDIR_GLIBC "man" )
246
+ SET (INSTALL_INFODIR_GLIBC "docs" )
247
+ #
248
+ SET (INSTALL_SHAREDIR_GLIBC "share" )
249
+ SET (INSTALL_MYSQLSHAREDIR_GLIBC "share" )
250
+ SET (INSTALL_MYSQLTESTDIR_GLIBC "mysql-test" )
251
+ SET (INSTALL_SQLBENCHDIR_GLIBC "." )
252
+ SET (INSTALL_SUPPORTFILESDIR_GLIBC "support-files" )
253
+ #
254
+ SET (INSTALL_MYSQLDATADIR_GLIBC "data" )
255
+ SET (INSTALL_PLUGINTESTDIR_GLIBC ${plugin_tests} )
256
+ SET (INSTALL_SECURE_FILE_PRIVDIR_GLIBC ${secure_file_priv_path} )
257
+
258
+ #
259
+ # OSX layout
260
+ #
261
+ SET (INSTALL_BINDIR_OSX "bin" )
262
+ SET (INSTALL_SBINDIR_OSX "bin" )
263
+ SET (INSTALL_SCRIPTDIR_OSX "scripts" )
264
+ #
265
+ SET (INSTALL_LIBDIR_OSX "lib" )
266
+ SET (INSTALL_PLUGINDIR_OSX "lib/plugin" )
267
+ #
268
+ SET (INSTALL_INCLUDEDIR_OSX "include" )
269
+ #
270
+ SET (INSTALL_DOCDIR_OSX "docs" )
271
+ SET (INSTALL_DOCREADMEDIR_OSX "." )
272
+ SET (INSTALL_MANDIR_OSX "man" )
273
+ SET (INSTALL_INFODIR_OSX "docs" )
274
+ #
275
+ SET (INSTALL_SHAREDIR_OSX "share" )
276
+ SET (INSTALL_MYSQLSHAREDIR_OSX "share" )
277
+ SET (INSTALL_MYSQLTESTDIR_OSX "mysql-test" )
278
+ SET (INSTALL_SQLBENCHDIR_OSX "." )
279
+ SET (INSTALL_SUPPORTFILESDIR_OSX "support-files" )
280
+ #
281
+ SET (INSTALL_MYSQLDATADIR_OSX "data" )
282
+ SET (INSTALL_PLUGINTESTDIR_OSX ${plugin_tests} )
283
+ SET (INSTALL_SECURE_FILE_PRIVDIR_OSX ${secure_file_priv_path} )
284
+
285
+ #
286
+ # TARGZ layout
287
+ #
288
+ SET (INSTALL_BINDIR_TARGZ "bin" )
289
+ SET (INSTALL_SBINDIR_TARGZ "bin" )
290
+ SET (INSTALL_SCRIPTDIR_TARGZ "scripts" )
291
+ #
292
+ SET (INSTALL_LIBDIR_TARGZ "lib" )
293
+ SET (INSTALL_PLUGINDIR_TARGZ "lib/plugin" )
294
+ #
295
+ SET (INSTALL_INCLUDEDIR_TARGZ "include" )
296
+ #
297
+ SET (INSTALL_DOCDIR_TARGZ "docs" )
298
+ SET (INSTALL_DOCREADMEDIR_TARGZ "." )
299
+ SET (INSTALL_MANDIR_TARGZ "man" )
300
+ SET (INSTALL_INFODIR_TARGZ "docs" )
301
+ #
302
+ SET (INSTALL_SHAREDIR_TARGZ "share" )
303
+ SET (INSTALL_MYSQLSHAREDIR_TARGZ "share" )
304
+ SET (INSTALL_MYSQLTESTDIR_TARGZ "mysql-test" )
305
+ SET (INSTALL_SQLBENCHDIR_TARGZ "." )
306
+ SET (INSTALL_SUPPORTFILESDIR_TARGZ "support-files" )
307
+ #
308
+ SET (INSTALL_MYSQLDATADIR_TARGZ "data" )
309
+ SET (INSTALL_PLUGINTESTDIR_TARGZ ${plugin_tests} )
310
+ SET (INSTALL_SECURE_FILE_PRIVDIR_TARGZ ${secure_file_priv_path} )
137
311
138
312
#
139
313
# RPM layout
@@ -169,6 +343,39 @@ SET(INSTALL_SUPPORTFILESDIR_RPM "share/mysql")
169
343
#
170
344
SET (INSTALL_MYSQLDATADIR_RPM "/var/lib/mysql" )
171
345
SET (INSTALL_PLUGINTESTDIR_RPM ${plugin_tests} )
346
+ SET (INSTALL_SECURE_FILE_PRIVDIR_RPM ${secure_file_priv_path} )
347
+
348
+ #
349
+ # SLES layout
350
+ #
351
+ SET (INSTALL_BINDIR_SLES "bin" )
352
+ SET (INSTALL_SBINDIR_SLES "sbin" )
353
+ SET (INSTALL_SCRIPTDIR_SLES "bin" )
354
+ #
355
+ IF (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" )
356
+ SET (INSTALL_LIBDIR_SLES "lib64" )
357
+ SET (INSTALL_PLUGINDIR_SLES "lib64/mysql/plugin" )
358
+ ELSE ()
359
+ SET (INSTALL_LIBDIR_SLES "lib" )
360
+ SET (INSTALL_PLUGINDIR_SLES "lib/mysql/plugin" )
361
+ ENDIF ()
362
+ #
363
+ SET (INSTALL_INCLUDEDIR_SLES "include/mysql" )
364
+ #
365
+ #SET(INSTALL_DOCDIR_SLES unset - installed directly by SLES)
366
+ #SET(INSTALL_DOCREADMEDIR_SLES unset - installed directly by SLES)
367
+ SET (INSTALL_INFODIR_SLES "share/info" )
368
+ SET (INSTALL_MANDIR_SLES "share/man" )
369
+ #
370
+ SET (INSTALL_SHAREDIR_SLES "share" )
371
+ SET (INSTALL_MYSQLSHAREDIR_SLES "share/mysql" )
372
+ SET (INSTALL_MYSQLTESTDIR_SLES "share/mysql-test" )
373
+ SET (INSTALL_SQLBENCHDIR_SLES "" )
374
+ SET (INSTALL_SUPPORTFILESDIR_SLES "share/mysql" )
375
+ #
376
+ SET (INSTALL_MYSQLDATADIR_SLES "/var/lib/mysql" )
377
+ SET (INSTALL_PLUGINTESTDIR_SLES ${plugin_tests} )
378
+ SET (INSTALL_SECURE_FILE_PRIVDIR_SLES ${secure_file_priv_path} )
172
379
173
380
#
174
381
# DEB layout
@@ -193,8 +400,9 @@ SET(INSTALL_MYSQLTESTDIR_DEB "mysql-test")
193
400
SET (INSTALL_SQLBENCHDIR_DEB "." )
194
401
SET (INSTALL_SUPPORTFILESDIR_DEB "support-files" )
195
402
#
196
- SET (INSTALL_MYSQLDATADIR_DEB "data " )
403
+ SET (INSTALL_MYSQLDATADIR_DEB "/var/lib/mysql " )
197
404
SET (INSTALL_PLUGINTESTDIR_DEB ${plugin_tests} )
405
+ SET (INSTALL_SECURE_FILE_PRIVDIR_DEB ${secure_file_priv_path} )
198
406
199
407
#
200
408
# SVR4 layout
@@ -221,6 +429,7 @@ SET(INSTALL_SUPPORTFILESDIR_SVR4 "support-files")
221
429
#
222
430
SET (INSTALL_MYSQLDATADIR_SVR4 "/var/lib/mysql" )
223
431
SET (INSTALL_PLUGINTESTDIR_SVR4 ${plugin_tests} )
432
+ SET (INSTALL_SECURE_FILE_PRIVDIR_SVR4 ${secure_file_priv_path} )
224
433
225
434
226
435
# Clear cached variables if install layout was changed
@@ -235,8 +444,21 @@ SET(OLD_INSTALL_LAYOUT ${INSTALL_LAYOUT} CACHE INTERNAL "")
235
444
# will be defined as ${INSTALL_BINDIR_STANDALONE} by default if STANDALONE
236
445
# layout is chosen)
237
446
FOREACH (var BIN SBIN LIB MYSQLSHARE SHARE PLUGIN INCLUDE SCRIPT DOC MAN
238
- INFO MYSQLTEST SQLBENCH DOCREADME SUPPORTFILES MYSQLDATA PLUGINTEST)
447
+ INFO MYSQLTEST SQLBENCH DOCREADME SUPPORTFILES MYSQLDATA PLUGINTEST
448
+ SECURE_FILE_PRIV)
239
449
SET (INSTALL_${var} DIR ${INSTALL_${var} DIR_${INSTALL_LAYOUT} }
240
450
CACHE STRING "${var} installation directory" ${FORCE} )
241
451
MARK_AS_ADVANCED (INSTALL_${var} DIR)
242
452
ENDFOREACH ()
453
+
454
+ #
455
+ # Set DEFAULT_SECURE_FILE_PRIV_DIR
456
+ # This is used as default value for --secure-file-priv
457
+ #
458
+ IF (INSTALL_SECURE_FILE_PRIVDIR)
459
+ SET (DEFAULT_SECURE_FILE_PRIV_DIR "\" ${INSTALL_SECURE_FILE_PRIVDIR} \" "
460
+ CACHE INTERNAL "default --secure-file-priv directory" FORCE)
461
+ ELSE ()
462
+ SET (DEFAULT_SECURE_FILE_PRIV_DIR \"\"
463
+ CACHE INTERNAL "default --secure-file-priv directory" FORCE)
464
+ ENDIF ()
0 commit comments