如果你修改MySQL源代码并想添加一个新的平台检查,请阅读http://www.vtk.org/Wiki/CMake_HowToDoPlatformChecks第一。在MySQL中,大多数平台测试是在configure.cmake
模板头文件,config.h.cmake
。
类的文件中实现了更大的功能块,例如重要的宏cmake
子目录。
对于具有自动工具背景的人来说,记住CMake不提供自动标头功能是很重要的。例如,如果您将此支票添加到config.cmake
:
CHECK_FUNCTION_EXISTS (foo HAVE_FOO)
然后还必须将下面的行添加到config.h.cmake
:
# cmakedefine HAVE_FOO 1
有用的部分:
检查是否存在C/ c++编译器标记
CHECK_C_COMPILER_FLAG
和CHECK_CXX_COMPILER_FLAG
。
下面是一个检查(假设)的例子喷火
在C编译器中支持标志,并将其添加到C标志中,如果该标志被支持:
CHECK_C_COMPILER_FLAG("-foo" HAVE_C_COMPILER_FOO) IF(HAVE_COMPILER_FOO) SET("${CMAKE_C_FLAGS} -foo") ENDIF()