- Qt 6.9
- Build with CMake
- CMake Variable Reference
- Qt 6.9.3 Reference Documentation

CMake Command Reference ◦ CMake Property Reference

# CMake Variable Reference

## Qt build variables

When building Qt you can use CMake variables to control the build result.

Variable | Description
--- | ---
QT_HOST_PATH | Location of the host Qt installation from which host tools may be used during another Qt build, either a regular one or a cross-compiling one.
`QT_FORCE_BUILD_TOOLS` | Forces building tools even if host tools have already been found. Useful when cross-compiling Qt to ensure the SDK has cross-built tools.
`QT_FORCE_FIND_TOOLS` | Uses Qt tools from the pre-built Qt in `QT_HOST_PATH` when you do not cross-compile. The variable only takes effect if `QT_FORCE_BUILD_TOOLS` is set to `ON`. Otherwise `QT_FORCE_FIND_TOOLS` does not affect the default behavior.

## 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(Qt6 COMPONENTS Widgets)`, when successful, makes the following variables available:

Variable | Description
--- | ---
`Qt6Widgets_COMPILE_DEFINITIONS` | A list of compile definitions to use when building against the library.
`Qt6Widgets_DEFINITIONS` | A list of definitions to use when building against the library.
`Qt6Widgets_EXECUTABLE_COMPILE_FLAGS` | A string of flags to use when building executables against the library.
`Qt6Widgets_FOUND` | A boolean that describes whether the module was found successfully.
`Qt6Widgets_INCLUDE_DIRS` | A list of include directories to use when building against the library.
`Qt6Widgets_LIBRARIES` | The name of the imported target for the module: `Qt6::Widgets`
`Qt6Widgets_PRIVATE_INCLUDE_DIRS` | A list of private include directories to use when building against the library and using private Qt API.
`Qt6Widgets_VERSION` | 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.

`QT_LIBINFIX` | A string that holds the infix used in library names, when Qt is configured with `-libinfix`.
`QT_NO_CREATE_VERSIONLESS_FUNCTIONS` | Hides commands that start with `qt_`, leaving only the versioned ones starting with `qt6_`.
`QT_NO_CREATE_VERSIONLESS_TARGETS` | Hides the imported targets starting with `Qt::`. Instead, you need to use the targets starting with `Qt6::`.
`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.

## Project variables

These variables can influence CMake commands provided by Qt. They may be set by the project, a toolchain file or other third-party packages.

### `Qt6::Core`

### `Qt6::InterfaceFramework`

### `Qt6::Multimedia`

### `Qt6::Qml`

## Standard CMake Variables

CMAKE_AUTOGEN_BETTER_GRAPH_MULTI_CONFIG | Improves the dependency graph for multi-configuration generators