QT_ANDROID_MULTI_ABI_FORWARD_VARS

멀티-ABI 빌드에서 CMake 변수를 공유할 수 있습니다.

이 변수는 Qt 6.4.2에 도입되었습니다.

참고: 이 변수는 기술 프리뷰 버전이며 향후 릴리스에서 변경될 수 있습니다.

참고: 이 변수는 Android 플랫폼을 타깃팅하는 경우에만 사용됩니다.

메인 ABI 프로젝트에서 ABI 관련 하위 프로젝트로 전달해야 하는 CMake 변수 목록을 지정할 수 있습니다. 멀티 ABI 프로젝트 빌드 프로세스의 특성으로 인해 명령줄이나 다른 유사한 방식으로 지정된 CMake 캐시 변수를 전달하는 일반적인 방법은 없습니다.

변수의 일반적인 사용 사례는 명령줄에 지정된 CMake 캐시 변수를 전파하는 것입니다. 예를 들어 프로젝트에 프로젝트 구성에 영향을 주는 PROJECT_WIDE_VARIABLE1PROJECT_WIDE_VARIABLE2 변수가 두 개 있다고 가정해 보겠습니다:

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

위의 CMakeLists.txt 내용은 명령줄에서 해당 CMake 변수를 설정하여 MyApp 빌드 방식을 제어할 수 있습니다:

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"

데스크톱용 애플리케이션을 구성할 때 PROJECT_WIDE_VARIABLE1PROJECT_WIDE_VARIABLE2 은 CMake 목록 및 스크립트에서 전역 캐시 변수로 표시됩니다. ABI 관련 하위 프로젝트는 메인-ABI 프로젝트에서 캐시 변수를 상속하지 않기 때문에 Android 멀티-ABI 빌드에서는 이 기능이 작동하지 않습니다. 이 문제는 QT_ANDROID_MULTI_ABI_FORWARD_VARS 변수에 필수 변수 목록을 전달하여 해결할 수 있으므로 PROJECT_WIDE_VARIABLE1PROJECT_WIDE_VARIABLE2 값이 모두 ABI별 빌드에 전파됩니다.

이 변수는 프로젝트의 CMakeLists.txt에서도 정의할 수 있습니다:

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

이 방법으로 변수를 설정하면 항상 ABI 관련 프로젝트에 전달되는 미리 정의된 변수 집합을 갖게 됩니다.

참고: 전달은 대상 파이널라이저에서 수행되며, 이는 qt_add_executable() 이 사용될 때 암시적으로 호출됩니다. CMake 3.19 이상을 사용하면 파이널라이제이션이 자동으로 수행됩니다.

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