参考资料:

CMAKE_BUILD_TYPE = Debug | Release | RelWithDebInfo | MinSizeRel

cmake的构建模式

CMAKE_INSTALL_PREFIX:PATH = /usr/local/mysql

mysql 的安装目录

COMMUNITY_BUILD = ON

是否为社区版本

DOWNLOAD_BOOST = 1

是否从下载开源 boost

DWITH_BOOST = <directory>

This CMake script will look for boost in <directory>.

DOWNLOAD_BOOST_TIMEOUT = 600

下载 boost 的超时时间, 单位 秒

ENABLED_PROFILING = ON

是否启用查询分析代码 参考

ENABLE_GCOV = OFF

是否包括gcov支持, 不太懂这是什么, 默认关闭.

ENABLE_GPROF = OFF

启用gprof, (仅优化Linux版本), 不太懂, 默认关闭

ENABLE_MEMCACHED_SASL = OFF

不太懂, 默认关闭

ENABLE_MEMCACHED_SASL_PWDB:BOOL=OFF

不太懂, 看起来和上面一天是配套的, 也默认关闭

FEATURE_SET:STRING=community

这也不太懂, 默认就好了, 它的注释说这个选项好像已经被弃用了

INSTALL_LAYOUT = STANDALONE

选择预定义的安装布局, STANDALONE

  • STANDALONE:与用于.tar.gz.zip 包的布局相同 。这是默认值。
  • RPM:布局类似于RPM包。
  • SVR4:Solaris包布局。
  • DEB:DEB封装布局(实验)。

MYSQL_DATADIR = /usr/local/mysql/data

默认的mysql数据目录

MYSQL_KEYRINGDIR:PATH=/usr/local/mysql/keyring

默认的mysql手册目录

OPTIMIZER_TRACE:BOOL=ON

optimizer_trace 是mysql5.6之后加入的新功能, explain是各种执行计划选择的结果, 如果想看整个执行计划以及对于多种索引方案之间是如何选择的, 就使用optimizer_trace这个功能.

REPRODUCIBLE_BUILD = OFF

不太懂, 默认关闭

TMPDIR = P_tmpdir

临时文件的目录, P_tmpdir的值可以在 /usr/include/stdio.h中查看, 是/tmp

  • WITH_ARCHIVE_STORAGE_ENGINE:BOOL=ON
  • WITH_BLACKHOLE_STORAGE_ENGINE:BOOL=ON
  • WITH_FEDERATED_STORAGE_ENGINE:BOOL=ON
  • WITH_INNOBASE_STORAGE_ENGINE:BOOL=ON
  • WITH_PARTITION_STORAGE_ENGINE:BOOL=ON

分别开启 ARCHIVE , BLACKHOLE , FEDERATED, INNOBASE , PARTITION 引擎, 默认都是开启的.

WITH_ASAN = OFF

是否启用AddressSanitizer , 不太懂, 默认是关闭的.

WITH_ASAN_SCOPE = OFF

不太懂, 看起来像是和上面一个选项是配套的, 默认关闭.

WITH_CLIENT_PROTOCOL_TRACING = ON

是否将客户端协议跟踪框架构建到客户端库中。默认情况下,此选项被启用。

WITH_DEBUG:BOOL=OFF

是否包括调试支持, 默认关闭

WITH_DEFAULT_COMPILER_OPTIONS:BOOL=ON

是否使用默认的编译器来编译, 也就是cmake

WITH_DEFAULT_FEATURE_SET:BOOL=ON

是否使用cmake的特性集

WITH_EDITLINE:STRING = bundled

要使用 哪个libedit/ editline库。允许的值为 bundled(默认值)和 systemWITH_EDITLINE被添加到MySQL 5.7.2中。它取而代之WITH_LIBEDIT,已被删除。

WITH_EMBEDDED_SERVER:BOOL=ON

是否构建libmysqld嵌入式服务器库。 注意: 从libmysqldMySQL 5.7.17起,嵌入式服务器库已被弃用,MySQL 8.0中将被删除。

WITH_EXTRA_CHARSETS:STRING=all

哪些额外的字符集包括: all, complex, none.

WITH_INNODB_MEMCACHED:BOOL=OFF

是否生成memcached共享库(libmemcached.so和 innodb_engine.so)。

WITH_LZ4:STRING = bundled

  • bundled:使用LZ4 与发行版捆绑在一起的库。这是默认值。
  • system:使用系统 LZ4库。如果 WITH_LZ4设置为此值,则不构建lz4_decompress实用程序。在这种情况下, 可以使用系统lz4命令。

WITH_MSAN:BOOL=OFF

是否启用MemorySanitizer,支持它的编译器。默认是关闭。对于此选项,如果启用该功能,则所有连接到MySQL的库也必须已经通过启用该选项进行编译。此选项已添加到MySQL 5.7.4中。

WITH_RAPID:BOOL=ON

是否构建快速开发周期插件.

WITH_SASL:STRING = system

不太懂

WITH_SSL = ssl_type | path_name

要包含的SSL支持类型或要使用的OpenSSL安装的路径名。

  • ssl_type 可以是以下值之一:

    • yes:使用系统SSL库(如果存在),否则与发行版捆绑在一起的库。
    • bundled:使用与发行版捆绑在一起的SSL库。这是默认值。
    • system:使用系统SSL库。
  • path_name是要使用的OpenSSL安装的路径名。使用这个可能比使用这个ssl_type值 更好 system,因为它可以防止CMake检测并使用系统上安装的较旧或不正确的OpenSSL版本。(另一个允许的方式做同样的事情是设置 CMAKE_PREFIX_PATH选项 path_name。)

WITH_TEST_TRACE_PLUGIN = OFF

是否构建测试协议跟踪客户端插件. 默认情况下,此选项被禁用。启用此选项不起作用,除非该WITH_CLIENT_PROTOCOL_TRACING 选项被启用。如果MySQL配置启用了这两个选项,libmysqlclient客户端库将内置测试协议跟踪插件构建,所有标准的MySQL客户端都会加载该插件。但是,即使启用测试插件,默认情况下也不起作用。使用环境变量来控制插件; 请参见第28.2.4.11.1节“使用测试协议跟踪插件”

不要启用 WITH_TEST_TRACE_PLUGIN,如果你想使用自己的协议跟踪的插件,因为只有一个这样的插件可以在同一时间被加载并出现错误尝试加载第二个选项。如果您已经使用启用了测试协议跟踪插件的MySQL来构建MySQL,以了解它是如何工作的,那么在使用自己的插件之前,您必须重新构建MySQL。

WITH_UBSAN:BOOL=OFF

是否为支持它的编译器启用Undefined Behavior Sanitizer。默认是关闭。此选项已添加到MySQL 5.7.6中。

WITH_UNIT_TESTS:BOOL=ON

如果启用,则使用单元测试编译MySQL。默认值为ON,除非服务器未被编译。

WITH_VALGRIND:BOOL=OFF

是否在Valgrind头文件中编译,这将Valgrind API暴露给MySQL代码。默认是 OFF

要生成一个Valgrind感知的调试构建, -DWITH_VALGRIND=1通常与之结合-DWITH_DEBUG=1。请参阅 构建调试配置

WITH_ZLIB:STRING=bundled

某些功能要求服务器使用压缩库支持(如功能COMPRESS()UNCOMPRESS()功能)以及客户端/服务器协议的压缩来构建 。这 WITH_ZLIB表明zlib支持的来源:

  • bundled:使用zlib与发行版捆绑在一起的 库。这是默认值。
  • system:使用系统 zlib库。

标签: none

添加新评论