qt_policy

Modify the default behavior of Qt's CMake API.

The command is defined in the Core component of the Qt6 package, which can be loaded like so:

 find_package(Qt6 REQUIRED COMPONENTS Core)

This command was introduced in Qt 6.5.

Synopsis

 qt_policy(
     [SET <policy_name> behavior]
     [GET <policy_name> <variable>]
 )

If versionless commands are disabled, use qt6_policy() instead. It supports the same set of arguments as this command.

Description

This command has two modes:

  • When the SET keyword is used, this command can be used to opt in to behavior changes in Qt's CMake API, or to explicitly opt out of them.
  • When the GET keyword is used, <variable> is set to the current behavior for the policy, i.e. OLD or NEW.

<policy_name> must be the name of one of the Qt CMake policies. Policy names have the form of QTP<NNNN> where <NNNN> is an integer specifying the index of the policy. Using an invalid policy name results in an error.

Code supporting older Qt versions can check the existence of a policy by checking the value of the QT_KNOWN_POLICY_<policy_name> variable before getting the value of <policy_name> or setting its behavior.

 if(QT_KNOWN_POLICY_<policy_name>)
     qt_policy(SET <policy_name> NEW)
 endif()

You can set behavior to one of the following options:

  • NEW to opt into the new behavior
  • OLD to explicitly opt-out of it

Note: The OLD behavior of a policy is deprecated, and may be removed in the future.

See also qt_standard_project_setup.