QT_ANDROID_MULTI_ABI_FORWARD_VARS
Ermöglicht die gemeinsame Nutzung von CMake-Variablen in Multi-ABI-Builds.
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 Ziel verwendet wird.
Ermöglicht die Angabe einer Liste von CMake-Variablen, die vom ABI-Hauptprojekt an ABI-spezifische Unterprojekte weitergeleitet werden müssen. Aufgrund der Besonderheiten des Multi-ABI-Projekt-Build-Prozesses gibt es keine generische Möglichkeit, die CMake-Cache-Variablen weiterzuleiten, die entweder in der Kommandozeile oder auf eine andere ähnliche Weise angegeben werden.
Ein typischer Anwendungsfall für die Variable ist die Weiterleitung von CMake-Cache-Variablen, die in der Kommandozeile angegeben werden. Ein Beispiel: Ein Projekt hat 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()
Mit dem obigen Inhalt von CMakeLists.txt
können Sie steuern, wie MyApp
gebaut wird, indem Sie die entsprechenden CMake-Variablen in der Befehlszeile setzen:
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"
Wenn die Anwendung für den Desktop konfiguriert wird, sind PROJECT_WIDE_VARIABLE1
und PROJECT_WIDE_VARIABLE2
in CMake-Listen und -Skripten als globale Cache-Variablen sichtbar. Dies funktioniert nicht für Android Multi-ABI-Builds, da ABI-spezifische Unterprojekte die Cache-Variablen nicht vom Haupt-ABI-Projekt erben. Dieses Problem kann gelöst werden, indem die Liste der benötigten Variablen an die Variable QT_ANDROID_MULTI_ABI_FORWARD_VARS
übergeben wird, so dass sowohl PROJECT_WIDE_VARIABLE1
als auch PROJECT_WIDE_VARIABLE2
Werte an die ABI-spezifischen Builds weitergegeben werden.
Die Variable kann auch in der 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 einen vordefinierten Satz von Variablen zu haben, der immer an ABI-spezifische Projekte weitergeleitet wird.
Hinweis: Die Weiterleitung erfolgt im Target Finalizer, der implizit aufgerufen wird, wenn qt_add_executable() verwendet wird. Die Finalisierung erfolgt automatisch, wenn CMake 3.19 oder später verwendet wird.
Siehe auch qt_finalize_target() und qt_add_executable().
© 2025 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.