CMP0065 — CMake 3.28.3 Documentation

# CMP0065

New in version 3.4.

Do not add flags to export symbols from executables without the `ENABLE_EXPORTS` target property.

CMake 3.3 and below, for historical reasons, always linked executables on some platforms with flags like `-rdynamic` to export symbols from the executables for use by any plugins they may load via `dlopen`. CMake 3.4 and above prefer to do this only for executables that are explicitly marked with the `ENABLE_EXPORTS` target property.

The `OLD` behavior of this policy is to always use the additional link flags when linking executables regardless of the value of the `ENABLE_EXPORTS` target property.

The `NEW` behavior of this policy is to only use the additional link flags when linking executables if the `ENABLE_EXPORTS` target property is set to `True`.

This policy was introduced in CMake version 3.4. Unlike most policies, CMake version 3.28.3 does not warn by default when this policy is not set and simply uses `OLD` behavior. See documentation of the `CMAKE_POLICY_WARNING_CMP0065` variable to control the warning.

Note

The `OLD` behavior of a policy is `deprecated by definition` and may be removed in a future version of CMake.