QT_ANDROID_MULTI_ABI_FORWARD_VARS

Permet de partager les variables CMake dans les constructions multi-ABI.

Cette variable a été introduite dans Qt 6.4.2.

Note : Cette variable est en avant-première technologique et peut changer dans les versions futures.

Note : Cette variable n'est utilisée que si l'on vise la plateforme Android.

Permet de spécifier la liste des variables CMake qui doivent être transmises du projet ABI principal aux sous-projets spécifiques à l'ABI. En raison des spécificités du processus de construction des projets Multi-ABI, il n'existe pas de moyen générique de transmettre les variables de cache CMake qui sont spécifiées soit dans la ligne de commande, soit d'une autre manière similaire.

Un cas d'utilisation typique de la variable est la propagation des variables de cache CMake spécifiées dans la ligne de commande. Par exemple, un projet possède deux variables PROJECT_WIDE_VARIABLE1 et PROJECT_WIDE_VARIABLE2 qui affectent la configuration du projet :

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()

Le contenu ci-dessus de CMakeLists.txt vous permet de contrôler la façon dont MyApp est construit en définissant les variables CMake correspondantes à partir de la ligne de commande :

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"

Lors de la configuration de l'application pour le bureau, PROJECT_WIDE_VARIABLE1 et PROJECT_WIDE_VARIABLE2 sont visibles dans les listes et les scripts CMake en tant que variables de cache globales. Cela ne fonctionne pas pour les constructions Android Multi-ABI car les sous-projets spécifiques à l'ABI n'héritent pas des variables de cache du projet principal de l'ABI. Ce problème peut être résolu en passant la liste des variables requises à la variable QT_ANDROID_MULTI_ABI_FORWARD_VARS, de sorte que les valeurs PROJECT_WIDE_VARIABLE1 et PROJECT_WIDE_VARIABLE2 seront propagées vers les constructions spécifiques à l'ABI.

La variable peut également être définie dans le fichier CMakeLists.txt du projet :

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

Définissez la variable de cette manière pour avoir un ensemble prédéfini de variables qui seront toujours transmises aux projets spécifiques à l'ABI.

Note : La transmission est faite dans le finalisateur de cible, qui est implicitement appelé quand qt_add_executable() est utilisé. La finalisation se fait automatiquement lorsque l'on utilise CMake 3.19 ou une version ultérieure.

Voir aussi qt_finalize_target() et 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.