CMP0026 — CMake 3.20.3 Documentation

# CMP0026

Disallow use of the LOCATION property for build targets.

CMake 2.8.12 and lower allowed reading the `LOCATION` target property (and configuration-specific variants) to determine the eventual location of build targets. This relies on the assumption that all necessary information is available at configure-time to determine the final location and filename of the target. However, this property is not fully determined until later at generate-time. At generate time, the `$<TARGET_FILE>` generator expression can be used to determine the eventual `LOCATION` of a target output.

Code which reads the `LOCATION` target property can be ported to use the `$<TARGET_FILE>` generator expression together with the `file(GENERATE)` subcommand to generate a file containing the target location.

The `OLD` behavior for this policy is to allow reading the `LOCATION` properties from build-targets. The `NEW` behavior for this policy is to not to allow reading the `LOCATION` properties from build-targets.

This policy was introduced in CMake version 3.0. CMake version 3.20.3 warns when the policy is not set and uses `OLD` behavior. Use the `cmake_policy()` command to set it to `OLD` or `NEW` explicitly.

Note

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