CMP0040 — CMake 4.1.4 Documentation

# CMP0040

Warning

The `OLD` behavior of this policy was removed in CMake version 4.0. This policy must be set to `NEW` by a call to `cmake_minimum_required()` or `cmake_policy()`.

The target in the `TARGET` signature of `add_custom_command()` must exist and must be defined in the current directory.

CMake 2.8.12 and lower silently ignored a custom command created with the `TARGET` signature of `add_custom_command()` if the target is unknown or was defined outside the current directory.

The `OLD` behavior for this policy is to ignore custom commands for unknown targets. The `NEW` behavior for this policy is to report an error if the target referenced in `add_custom_command()` is unknown or was defined outside the current directory.

This policy was introduced in CMake version 3.0. Prior to removal in CMake version 4.0, it could be set by `cmake_policy()` or `cmake_minimum_required()`. If it was not set, CMake warned, and used `OLD` behavior.