QT_ANDROID_MULTI_ABI_FORWARD_VARS

Permite compartir variables CMake en construcciones multi-ABI.

Esta variable se introdujo en Qt 6.4.2.

Nota: Esta variable se encuentra en la vista previa de tecnología y puede cambiar en futuras versiones.

Nota: Esta variable sólo se utiliza si está orientada a la plataforma Android.

Permite especificar la lista de variables CMake que necesitan ser reenviados desde el proyecto principal ABI a subproyectos específicos ABI. Debido a las especificidades del proceso de construcción del proyecto Multi-ABI, no hay una forma genérica de reenviar las variables de caché CMake que se especifican en la línea de comandos o de otra manera similar.

Un caso típico de uso de la variable es la propagación de variables de caché CMake especificados en la línea de comandos. Por ejemplo, un proyecto tiene dos variables PROJECT_WIDE_VARIABLE1 y PROJECT_WIDE_VARIABLE2 que afectan a la configuración del proyecto:

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

El contenido anterior de CMakeLists.txt le permite controlar cómo se construye MyApp estableciendo las variables CMake correspondientes desde la línea de comandos:

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"

Al configurar la aplicación para escritorio, PROJECT_WIDE_VARIABLE1 y PROJECT_WIDE_VARIABLE2 son visibles en los listados y scripts de CMake como variables de caché globales. Esto no funciona para Android Multi-ABI construye porque ABI subproyectos específicos no heredan las variables de caché del proyecto principal-ABI. Este problema puede resolverse pasando la lista de variables necesarias a la variable QT_ANDROID_MULTI_ABI_FORWARD_VARS, de modo que los valores de PROJECT_WIDE_VARIABLE1 y PROJECT_WIDE_VARIABLE2 se propaguen a las compilaciones ABI específicas.

La variable también se puede definir en el CMakeLists.txt del proyecto:

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

Establezca la variable de esta manera para tener un conjunto predefinido de variables que siempre serán reenviadas a los proyectos ABI-específicos.

Nota: El reenvío se realiza en el finalizador de destino, que se llama implícitamente cuando se utiliza qt_add_executable(). La finalización se produce automáticamente cuando se utiliza CMake 3.19 o posterior.

Ver también qt_finalize_target() y 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.