# CMP0040

The target in the `TARGET` signature of `add_custom_command()` must exist and must be defined in 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. CMake version 3.9.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.