要定义一个插件,你需要在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)你需要有插件特定的
#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