INCLUDE
命令在 CMakeLists.txt 文件中用于引入其他 CMake 模块或脚本文件。CMake 提供了大量的内置模块,这些模块可以简化配置过程,提供额外的功能,如查找库、检查编译器特性等。下面是一些常用的 CMake 模块及其用途:
查找包的模块
- FindBLAS.cmake, FindLAPACK.cmake:用于查找 Basic Linear Algebra Subprograms (BLAS) 和 Linear Algebra PACKage (LAPACK) 库。
- FindBoost.cmake:用于查找 Boost 库。
- FindCUDA.cmake:用于查找 CUDA 工具包。
- FindDoxygen.cmake:用于生成项目文档。
- FindFreetype.cmake:用于查找 FreeType 库。
- FindGLUT.cmake, FindOpenGL.cmake:用于查找 OpenGL 及其工具包 GLUT。
- FindOpenSSL.cmake:用于查找 OpenSSL 库。
- FindPackageHandleStandardArgs.cmake:提供了标准的逻辑来处理
find_package
的结果。 - FindPythonInterp.cmake, FindPythonLibs.cmake:用于查找 Python 解释器和库。
检查编译器特性的模块
- CheckCCompilerFlag.cmake, CheckCXXCompilerFlag.cmake:用于检查 C 或 C++ 编译器是否支持特定的编译器标志。
- CheckIncludeFile.cmake, CheckIncludeFiles.cmake:用于检查系统头文件是否存在。
- CheckFunctionExists.cmake:用于检查特定函数是否存在。
- CheckSymbolExists.cmake:用于检查符号(函数、变量等)是否存在。
- CheckStructHasMember.cmake:用于检查结构体是否有特定成员。
- CheckTypeSize.cmake:用于检查类型大小。
- CheckCSourceCompiles.cmake, CheckCXXSourceCompiles.cmake:用于检查给定的 C 或 C++ 代码能否成功编译。
- CheckCSourceRuns.cmake, CheckCXXSourceRuns.cmake:用于检查给定的 C 或 C++ 代码能否成功编译并运行。
安装相关模块
- GNUInstallDirs.cmake:帮助设置安装目录,遵循 GNU 标准。
- UsePkgConfig.cmake:使用 pkg-config 来获取库的信息。
其他模块
- ExternalProject.cmake:允许从外部构建系统中添加依赖项。
- FeatureSummary.cmake:用于总结和显示项目的特性。
- WriteBasicConfigVersionFile.cmake:用于写入基本的配置版本文件,通常用于创建可被
find_package
使用的配置文件。
自定义模块
你还可以通过 INCLUDE
引入自己编写的 CMake 脚本或模块,以实现特定的功能或逻辑。这可以是项目特有的配置脚本,或者是为了解决某些特定问题而编写的辅助函数集合。
查看CMake支持哪些内置模块:cmake --help-module-list


发表回复