CMake Variable Reference

Qt build variables

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

VariableDescription
QT_HOST_PATHLocation 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_TOOLSForces 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_TOOLSUses 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:

VariableDescription
Qt6Widgets_COMPILE_DEFINITIONSA list of compile definitions to use when building against the library.
Qt6Widgets_DEFINITIONSA list of definitions to use when building against the library.
Qt6Widgets_EXECUTABLE_COMPILE_FLAGSA string of flags to use when building executables against the library.
Qt6Widgets_FOUNDA boolean that describes whether the module was found successfully.
Qt6Widgets_INCLUDE_DIRSA list of include directories to use when building against the library.
Qt6Widgets_LIBRARIESThe name of the imported target for the module: Qt6::Widgets
Qt6Widgets_PRIVATE_INCLUDE_DIRSA list of private include directories to use when building against the library and using private Qt API.
Qt6Widgets_VERSIONA 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.

VariableDescription

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_LIBINFIXA 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_AVAILABLEOn 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

ANDROID_NDK_HOST_SYSTEM_NAME

Android-specific architecture of the host system

ANDROID_SDK_ROOT

Location of the Android SDK

QT_ANDROID_ABIS

List of ABIs that the project packages are built for

QT_ANDROID_APPLICATION_ARGUMENTS

List of arguments to pass to Android applications

QT_ANDROID_BUILD_ALL_ABIS

Enables building multi-ABI packages using the autodetected Qt for Android SDK list

QT_ANDROID_DEPLOYMENT_TYPE

Forces or disables release package signing regardless of the build type

QT_ANDROID_GENERATE_JAVA_QTQUICKVIEW_CONTENTS

Enables the generation of QtQuickViewContent-based classes

QT_ANDROID_MULTI_ABI_FORWARD_VARS

Allows to share CMake variables in multi-ABI builds

QT_ANDROID_SIGN_AAB

Signs the .aab package with the specified keystore, alias, and store password

QT_ANDROID_SIGN_APK

Signs the package with the specified keystore, alias, and store password

QT_DEPLOY_BIN_DIR

Prefix-relative subdirectory for deploying runtime binaries on some target platforms

QT_DEPLOY_IGNORED_LIB_DIRS

Directories that are excluded from runtime dependencies search

QT_DEPLOY_LIBEXEC_DIR

Prefix-relative subdirectory for deploying program executables on some target platforms

QT_DEPLOY_LIB_DIR

Prefix-relative subdirectory for deploying libraries on some target platforms

QT_DEPLOY_PLUGINS_DIR

Prefix-relative subdirectory for deploying Qt plugins on some target platforms

QT_DEPLOY_PREFIX

Base location for a deployment

QT_DEPLOY_QML_DIR

Prefix-relative subdirectory for deploying QML plugins on some target platforms

QT_DEPLOY_SUPPORT

Name of the file to include for setting up deployment support

QT_DEPLOY_TRANSLATIONS_DIR

Prefix-relative subdirectory for deploying Qt translations on some target platforms

QT_ENABLE_VERBOSE_DEPLOYMENT

Enables verbose mode of deployment tools

QT_HOST_PATH

Location of the host Qt installation when cross-compiling

QT_I18N_SOURCE_LANGUAGE

Specifies the language of translatable strings

QT_I18N_TRANSLATED_LANGUAGES

List of languages to be used for project internationalization

QT_IOS_LAUNCH_SCREEN

Path to iOS launch screen storyboard used by all targets

QT_NO_COLLECT_BUILD_TREE_APK_DEPS

Prevents collecting of project-built shared library targets during Android deployment

QT_NO_COLLECT_IMPORTED_TARGET_APK_DEPS

Prevents collecting of imported targets during Android deployment

QT_NO_SET_XCODE_BUNDLE_IDENTIFIER

Disables providing a fallback app bundle ID during target finalization on iOS

QT_NO_SET_XCODE_DEVELOPMENT_TEAM_ID

Disables providing a fallback team ID during target finalization on iOS

QT_NO_STANDARD_PROJECT_SETUP

Prevents subsequent calls to qt_standard_project_setup() from making any changes

QT_PATH_ANDROID_ABI_<ABI>

Set of variables to specify the path to Qt for Android for the corresponding ABI

QT_USE_TARGET_ANDROID_BUILD_DIR

Enables the use of per-target Android build directories

Qt6::InterfaceFramework

Qt6::Multimedia

QT_NO_FFMPEG_XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY

Disables FFmpeg code-signing on iOS

Qt6::Qml

QT_QML_GENERATE_QMLLS_INI

Enables autogeneration of .qmlls.ini files for QML Language Server

QT_QML_NO_CACHEGEN

Disables compilation of QML files into bytecode or C++ code

QT_QML_OUTPUT_DIRECTORY

Base output directory below which QML modules will be created by default

Standard CMake Variables

CMAKE_AUTOGEN_BETTER_GRAPH_MULTI_CONFIGImproves the dependency graph for multi-configuration generators