CMake Variable Reference | Build with CMake (original) (raw)
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.