qt_extract_metatypes
Qt 타깃에서 메타타입을 추출하고, 관련 metatypes.json 파일을 생성합니다.
이 명령어는 Qt6 패키지의 Core 컴포넌트에 정의되어 있으며, 다음과 같이 로드할 수 있습니다:
find_package(Qt6 REQUIRED COMPONENTS Core)이 명령어는 Qt 6.0에서 도입되었습니다.
개요
qt_extract_metatypes(target
[MANUAL_MOC_JSON_FILES json_files...]
[OUTPUT_FILES variable_name]
)버전 정보가 없는 명령어가 비활성화된 경우, 대신 ` qt6_extract_metatypes() `을 사용하십시오. 이 명령어는 본 명령어와 동일한 인자 세트를 지원합니다.
설명
특정 작업은 대상에 대해 생성 및 수집된 메타타입 정보에 의존합니다. 이는 일반적으로 Qt 명령어에 의해 내부적으로 처리되지만, 그렇지 않은 경우 qt_extract_metatypes() 를 호출하여 특정 target 에 대한 이 정보의 수집을 강제할 수 있습니다.
타깃의 소스 파일에 대한 메타타입 정보는 다음 방법 중 하나로 생성됩니다:
- AUTOMOC에 의해 자동으로 생성됩니다.
qt_extract_metatypes()명령은target에서 AUTOMOC이 활성화된 시점을 감지하여 필요한 정보를 자동으로 추출합니다. - `
moc` 명령을 `--output-json` 옵션과 함께 호출하여 수동으로 생성합니다. 프로젝트 측에서는 이 방법으로 생성된 모든 JSON 파일을 추적하고, `MANUAL_MOC_JSON_FILES` 옵션을 사용하여 `qt_extract_metatypes()`에 전달해야 합니다.
qt_extract_metatypes() AUTOMOC 및 수동 moc 입력에서 모든 메타타입 세부 정보를 수집하여 대상별 메타타입 JSON 파일을 생성합니다. 이는 --collect-json 옵션을 사용하여 moc 를 호출함으로써 수행됩니다. 생성된 메타타입 JSON 파일을 어디에서 찾을 수 있는지 알아야 하는 경우(예: 다른 명령에 전달하거나 설치하기 위해), OUTPUT_FILES 옵션을 사용하여 해당 파일의 절대 경로를 저장할 변수 이름을 지정하십시오.
자동 메타타입 추출
Qt 6.8부터, ` AUTOMOC `을 비활성화하지 않았고 CMake 3.19 이상을 사용 중이거나 `qt_finalize_target()`을 수동으로 호출하는 경우, ` qt_extract_metatypes() `는 `qt_add_library()`의 마무리 단계의 일부로 자동으로 호출됩니다. 마무리 단계 이전에 사용자 정의 인수를 사용하여 qt_extract_metatypes() 를 수동으로 호출한 경우에는 이 기능이 적용되지 않습니다. 그러나 수동으로 호출하지 않은 경우에도 메타타입이 생성되도록 보장합니다. 이는 향후 라이브러리의 유형 중 어느 것이든 QML 유형의 일부로 사용될 경우 중요하며, 단점은 없습니다.
또한, qt_add_qml_module()은 대상에 대해 qt_extract_metatypes() 를 자동으로 호출합니다.
© 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.