MySQL内部手册/插件/ CMake宏定义插件

5.2 CMake宏定义插件

要定义一个插件,你需要在CMakeList.txt中添加MYSQL_ADD_PLUGIN()宏。与5.1不同的是,没有特殊的插头。在脚本。如果你需要执行系统检查,使用标准的CMake技术,如CHECK_FUNCTION_EXISTS或CHECK_INCLUDE_FILE等。

注意:没有自动报头功能。例如,CHECK_FUNCTION_EXISTS(epoll_wait HAVE_EPOLL_WAIT)不会自动在config.h中添加"#define HAVE_EPOLL_WAIT 1"。不同的插件可能选择不同的策略来添加特定于插件的定义

  • 策略1 -使用ADD_DEFINITIONS

这与InnoDB在5.5中所做的类似。一个例子

CHECK_FUNCTION_EXISTS(HAVE_EPOLL_WAIT) IF(HAVE_EPOLL_WAIT) ADD_DEFINITIONS(-DHAVE_EPOLL_WAIT=1) ENDIF()
  • 策略2 -使用自己的头模板

这比策略1的工作更多,但结果是一个更干净的解决方案:

1)你需要有插件特定的_config.h。在与内容类似

#cmakedefine HAVE_EPOLL_CTL . txt

2)在CMakeLists.txt中添加系统检查

CHECK_FUNCTION_EXISTS(epoll_wait HAVE_EPOLL_WAIT)

在所有系统检查后,添加

CONFIGURE_FILE (plugin_config.h。在plugin_config.h)

3)在源文件中使用#include "plugin_config.h