QT_ANDROID_MULTI_ABI_FORWARD_VARS

다중 ABI 빌드에서 CMake 변수를 공유할 수 있게 합니다.

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

참고: 이 변수는 기술 미리보기 단계에 있으며 향후 릴리스에서 변경될 수 있습니다.

참고: 이 변수는 Android 플랫폼을 대상으로 하는 경우에만 사용됩니다.

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

이 변수의 일반적인 사용 사례는 명령줄에서 지정된 CMake 캐시 변수를 전달하는 것입니다. 예를 들어, 프로젝트 구성에 영향을 미치는 PROJECT_WIDE_VARIABLE1 및 PROJECT_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_VARIABLE1 와 PROJECT_WIDE_VARIABLE2 는 CMake 목록 및 스크립트에서 전역 캐시 변수로 표시됩니다. 그러나 ABI별 하위 프로젝트가 메인 ABI 프로젝트의 캐시 변수를 상속받지 않기 때문에, Android Multi-ABI 빌드에서는 이 방법이 작동하지 않습니다. 이 문제는 QT_ANDROID_MULTI_ABI_FORWARD_VARS 변수에 필요한 변수 목록을 전달함으로써 해결할 수 있으며, 이렇게 하면 PROJECT_WIDE_VARIABLE1 및 PROJECT_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()도 참조하십시오 .

© 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.