QT_ANDROID_MULTI_ABI_FORWARD_VARS

Ermöglicht die gemeinsame Nutzung von CMake-Variablen bei Builds mit mehreren ABIs.

Diese Variable wurde in Qt 6.4.2 eingeführt.

Hinweis: Diese Variable befindet sich in der Technologievorschau und kann sich in zukünftigen Versionen ändern.

Hinweis: Diese Variable wird nur verwendet, wenn die Android-Plattform als Zielplattform ausgewählt ist.

Ermöglicht die Angabe einer Liste von CMake-Variablen, die vom Haupt-ABI-Projekt an ABI-spezifische Unterprojekte weitergegeben werden müssen. Aufgrund der Besonderheiten des Build-Prozesses für Multi-ABI-Projekte gibt es keine generische Möglichkeit, die CMake-Cache-Variablen weiterzugeben, die entweder über die Befehlszeile oder auf ähnliche Weise angegeben werden.

Ein typischer Anwendungsfall für diese Variable ist die Weitergabe von CMake-Cache-Variablen, die in der Befehlszeile angegeben wurden. Ein Projekt verfügt beispielsweise über zwei Variablen, „ PROJECT_WIDE_VARIABLE1 “ und „ PROJECT_WIDE_VARIABLE2 “, die die Projektkonfiguration beeinflussen:

cmake_minimum_required(VERSION 3.18)

project(MyProject LANGUAGES CXX)

find_package(Qt6 REQUIRED COMPONENTS Core)

qt_add_executable(MyApp main.cpp)

if(PROJECT_WIDE_VARIABLE1)
    target_sources(MyApp PRIVATE sourcefile1.cpp)
endif()
if(PROJECT_WIDE_VARIABLE2)
    target_sources(MyApp PRIVATE sourcefile2.cpp)
endif()

Der oben angegebene Inhalt von „ CMakeLists.txt “ ermöglicht es Ihnen, die Art und Weise zu steuern, wie „ MyApp “ erstellt wird, indem Sie die entsprechenden CMake-Variablen über die Befehlszeile festlegen:

qt-cmake -S<source directory> -B<build directory> \
    -DPROJECT_WIDE_VARIABLE1=ON \
    -DPROJECT_WIDE_VARIABLE2=ON \
    -DQT_ANDROID_MULTI_ABI_FORWARD_VARS="PROJECT_WIDE_VARIABLE1;PROJECT_WIDE_VARIABLE2"

Bei der Konfiguration der Anwendung für den Desktop werden PROJECT_WIDE_VARIABLE1 und PROJECT_WIDE_VARIABLE2 in den CMake-Listen und -Skripten als globale Cache-Variablen angezeigt. Dies funktioniert bei Android-Multi-ABI-Builds nicht, da ABI-spezifische Unterprojekte die Cache-Variablen nicht vom Haupt-ABI-Projekt erben. Dieses Problem lässt sich lösen, indem die Liste der erforderlichen Variablen an die Variable „ QT_ANDROID_MULTI_ABI_FORWARD_VARS “ übergeben wird, sodass sowohl die Werte von „ PROJECT_WIDE_VARIABLE1 “ als auch von „ PROJECT_WIDE_VARIABLE2 “ an die ABI-spezifischen Builds weitergegeben werden.

Die Variable kann auch in der Datei „CMakeLists.txt“ des Projekts definiert werden:

...
qt_add_executable(MyApp main.cpp)
...
if(ANDROID)
    set(QT_ANDROID_MULTI_ABI_FORWARD_VARS "PROJECT_WIDE_VARIABLE1;PROJECT_WIDE_VARIABLE2")
endif()
...

Setzen Sie die Variable auf diese Weise, um über einen vordefinierten Satz von Variablen zu verfügen, die stets an ABI-spezifische Projekte weitergeleitet werden.

Hinweis: Die Weiterleitung erfolgt im Ziel-Finalizer, der implizit aufgerufen wird, wenn qt_add_executable() verwendet wird. Die Finalisierung erfolgt automatisch bei Verwendung von CMake 3.19 oder höher.

Siehe auch qt_finalize_target() und qt_add_executable().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.