CMAKE_WATCOM_RUNTIME_LIBRARY

3.24 版中添加了此功能。

选择针对 Watcom ABI 的编译器的 Watcom 运行库供其使用。此变量用于在创建所有目标时初始化 WATCOM_RUNTIME_LIBRARY 属性。它也通过调用 try_compile() 命令传播到测试项目中。

允许的值为

SingleThreaded

编译时不添加额外的标记,以使用链接到静态库中的单线程运行时库。

SingleThreadedDLL

使用 -br 或等效标记编译,以使用动态链接到库中的单线程运行时库。Linux 目标不支持此功能。

MultiThreaded

使用 -bm 或等效标记编译,以使用链接到静态库中的多线程运行时库。

MultiThreadedDLL

使用 -bm -br 或等效标记编译,以使用动态链接到库中的多线程运行时库。Linux 目标不支持此功能。

非 Watcom 编译器将忽略此值,但使用针对 Watcom ABI 的编译器时,不支持的值将作为错误被拒绝。

值也可能是空字符串 (""),在这种情况下,CMake 不会明确添加运行时库选择标记。

使用 generator expressions 支持按配置进行指定。

例如,以下代码

set(CMAKE_WATCOM_RUNTIME_LIBRARY "MultiThreaded")

为所有后续目标选择链接到静态库中的多线程运行时库。

如果未设置此变量,则不会自动设置 WATCOM_RUNTIME_LIBRARY 目标属性。如果未设置该属性,则 CMake 使用 Windows 上的默认值 MultiThreadedDLL 和其他平台上的 SingleThreaded 选择 Watcom 运行库。

注意

此变量仅在策略 CMP0136 在启用使用针对 Watcom ABI 的编译器的第一个 project()enable_language() 命令之前设置为 NEW 时才有效。