# WATCOM_RUNTIME_LIBRARY

Added in version 3.24.

Select the Watcom runtime library for use by compilers targeting the Watcom ABI.

The allowed values are:

`SingleThreaded`

  Compile without additional flags to use a single-threaded statically-linked runtime library.

`SingleThreadedDLL`

  Compile with `-br` or equivalent flag(s) to use a single-threaded dynamically-linked runtime library. This is not available for Linux targets.

`MultiThreaded`

  Compile with `-bm` or equivalent flag(s) to use a multi-threaded statically-linked runtime library.

`MultiThreadedDLL`

  Compile with `-bm -br` or equivalent flag(s) to use a multi-threaded dynamically-linked runtime library. This is not available for Linux targets.

The value is ignored on non-Watcom compilers but an unsupported value will be rejected as an error when using a compiler targeting the Watcom ABI.

The value may also be the empty string (`""`) in which case no runtime library selection flag will be added explicitly by CMake.

Use `generator expressions` to support per-configuration specification.

For example, the code:

    add_executable(foo foo.c)
    set_property(TARGET foo PROPERTY
      WATCOM_RUNTIME_LIBRARY "MultiThreaded")

selects for the target `foo` a multi-threaded statically-linked runtime library.

If this property is not set then CMake uses the default value `MultiThreadedDLL` on Windows and `SingleThreaded` on other platforms to select a Watcom runtime library.

Note

This property has effect only when policy `CMP0136` is set to `NEW` prior to the first `project()` or `enable_language()` command that enables a language using a compiler targeting the Watcom ABI.