- Qt 5.15
- Build with CMake
- CMake Variable Reference
- Qt 5.15.18 Reference Documentation

Build with CMake ◦ CMake Command Reference

# CMake Variable Reference

## Module variables

Qt modules loaded with `find_package` set various variables.

Note: You rarely need to access these variables directly. Common tasks like linking against a module should be done through the library targets each module defines.

For example, `find_package(Qt5 COMPONENTS Widgets)`, when successful, makes the following variables available:

Variable | Description
--- | ---
`Qt5Widgets_COMPILE_DEFINITIONS` | A list of compile definitions to use when building against the library.
`Qt5Widgets_DEFINITIONS` | A list of definitions to use when building against the library.
`Qt5Widgets_EXECUTABLE_COMPILE_FLAGS` | A string of flags to use when building executables against the library.
`Qt5Widgets_FOUND` | A boolean that describes whether the module was found successfully.
`Qt5Widgets_INCLUDE_DIRS` | A list of include directories to use when building against the library.
`Qt5Widgets_LIBRARIES` | The name of the imported target for the module: `Qt5::Widgets`
`Qt5Widgets_PRIVATE_INCLUDE_DIRS` | A list of private include directories to use when building against the library and using private Qt API.
`Qt5Widgets_VERSION_STRING` | A string containing the module's version.

For all packages found with `find_package`, equivalents of these variables are available; they are case-sensitive.

## Installation variables

Additionally, there are also variables that don't relate to a particular package, but to the Qt installation itself.

Variable | Description
--- | ---

`QT_DEFAULT_MAJOR_VERSION`

An integer that controls the Qt version that `qt_` commands forward to in case of mixed Qt 5 and Qt 6 projects. It needs to be set to either `5` or `6` before the respective `find_package()` calls.

If set to `5`, commands starting with `qt_` will call their counterpart starting with `qt5_`. If set to `6`, they will call their counterpart starting with `qt6_`.

If not set, the first `find_package` call defines the default version. This functionality was added in Qt 5.15.

`QT_LIBINFIX` | A string that holds the infix used in library names, when Qt is configured with `-libinfix`.
`QT_NO_CREATE_VERSIONLESS_FUNCTIONS` | Since Qt 5.15, modules define not only commands that start with `qt5_`, but also ones with `qt_`. You can set `QT_NO_CREATE_VERSIONLESS_FUNCTIONS` before `find_package` to prevent this.
`QT_NO_CREATE_VERSIONLESS_TARGETS` | Since Qt 5.15, modules define not only targets that start with `Qt5::`, but also ones with `Qt::`. You can set `QT_NO_CREATE_VERSIONLESS_TARGETS` before `find_package` to prevent this.
`QT_VISIBILITY_AVAILABLE` | On Unix, a boolean that describes whether Qt libraries and plugins were compiled with `-fvisibility=hidden`. This means that only selected symbols are exported.