QT_ANDROID_MULTI_ABI_FORWARD_VARS

Permet de partager des variables CMake dans les compilations multi-ABI.

Cette variable a été introduite dans Qt 6.4.2.

Remarque : cette variable est en préversion technologique et est susceptible d'évoluer dans les prochaines versions.

Remarque : cette variable n'est utilisée que si la plate-forme Android est ciblée.

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 compilation des projets Multi-ABI, il n’existe pas de méthode générique pour transmettre les variables du cache CMake spécifiées soit en ligne de commande, soit d’une autre manière similaire.

Un cas d'utilisation typique de cette variable consiste à propager les variables de cache CMake spécifiées dans la ligne de commande. Par exemple, un projet comporte deux variables, PROJECT_WIDE_VARIABLE1 et PROJECT_WIDE_VARIABLE2, qui influent sur 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 manière dont ` MyApp ` est compilé en définissant les variables CMake correspondantes depuis 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 ordinateur de bureau, PROJECT_WIDE_VARIABLE1 et PROJECT_WIDE_VARIABLE2 apparaissent dans les listes et les scripts CMake en tant que variables de cache globales. Cela ne fonctionne pas pour les compilations Android Multi-ABI, car les sous-projets spécifiques à une ABI n’héritent pas des variables de cache du projet de l’ABI principale. Ce problème peut être résolu en transmettant la liste des variables requises à la variable ` QT_ANDROID_MULTI_ABI_FORWARD_VARS `, de sorte que les valeurs de ` PROJECT_WIDE_VARIABLE1 ` et ` PROJECT_WIDE_VARIABLE2 ` soient propagées aux builds spécifiques à l'ABI.

Cette 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 disposer d'un ensemble prédéfini de variables qui seront toujours transmises aux projets spécifiques à l'ABI.

Remarque : la transmission s'effectue dans le finaliseur de la cible, qui est implicitement appelé lorsque la fonction ` qt_add_executable()` est utilisée. La finalisation s'effectue automatiquement à partir de CMake 3.19.

Voir également 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.