CheckOBJCXXSourceCompiles

在第 3.16 版中添加。

检查一次是否可以构建 Objective-C++ 源代码。

check_objcxx_source_compiles
check_objcxx_source_compiles(<code> <resultVar>
                             [FAIL_REGEX <regex1> [<regex2>...]])

检查一次指定在 <code> 中的源代码是否可以构建。结果存储在 <resultVar> 指定的内部缓存变量中,成功时为布尔 true,失败时为布尔 false

如果提供了 FAIL_REGEX,则通过检查编译器输出中的任何内容是否与任何指定正则表达式匹配来确定失败。

在内部,try_compile() 用于编译源代码。如果将CMAKE_TRY_COMPILE_TARGET_TYPE设置为 EXECUTABLE(默认值),则将源代码编译并链接为可执行程序。如果设置为 STATIC_LIBRARY,则编译源代码但不链接。无论如何,都必须按通常方法声明所有函数。

另请参阅check_source_compiles(),了解更通用的命令语法。

另请参阅check_source_runs()以运行已编译源代码。

在调用 check_objcxx_source_compiles() 之前设置以下任一变量,可以影响编译和链接命令

CMAKE_REQUIRED_FLAGS

传递给编译器的附加标志的字符串。该字符串必须以空格分隔——;-list 将不起作用。内容CMAKE_<LANG>_FLAGS及其关联配置特定的变量在 CMAKE_REQUIRED_FLAGS 的内容之前自动添加到编译器命令中。

CMAKE_REQUIRED_DEFINITIONS

;- 列表,形式为编译器定义 -DFOO-DFOO=bar。一个为 <resultVar> 指定的名称的定义也将自动添加。

CMAKE_REQUIRED_INCLUDES

;- 列表,其包含传给编译器的头搜索路径。这些将是仅使用的头搜索路径——不会理睬 Span 类中 INCLUDE_DIRECTORIES 的目录属性。

CMAKE_REQUIRED_LINK_OPTIONS

在版本 3.14 中添加。

;- 列表,其包含将添加到链接命令的选项(参见 try_compile() 了解更多详细信息)。

CMAKE_REQUIRED_LIBRARIES

;- 列表,其包含将添加到链接命令中的库。它们可以是系统库的名称,或者它们可以是 导入目标(参见 try_compile() 了解更多详细信息)。

CMAKE_REQUIRED_LINK_DIRECTORIES

在版本 3.31 中添加。

;- 列表,其包含将传给链接器的库搜索路径(参见 try_compile() 了解更多详细信息)。

CMAKE_REQUIRED_QUIET

在版本 3.1 中添加。

如果这个变量评估为布尔真值,与检查关联的所有状态信息将被抑制。