CMAKE_WATCOM_RUNTIME_LIBRARY

在 3.24 版本中加入。

选择 Watcom 运行时库,供以 Watcom ABI 为目标的编译器使用。此变量用于初始化所有目标在创建时的 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 时生效。