QT_STANDARD_PROJECT_SETUP
프로젝트 전체 설정의 기본값은 표준 배열입니다.
이 명령은 Qt6
패키지의 Core
컴포넌트에 정의되어 있으며, 다음과 같이 로드할 수 있습니다:
find_package(Qt6 REQUIRED COMPONENTS Core)
이 명령은 Qt 6.3에 도입되었습니다.
개요
qt_standard_project_setup( [REQUIRES <version>] [SUPPORTS_UP_TO <version>] [I18N_TRANSLATED_LANGUAGES <language...>] [I18N_SOURCE_LANGUAGE <language>] )
버전 없는 명령을 사용할 수 없는 경우 qt6_standard_project_setup()
을 대신 사용합니다. 이 명령은 이 명령과 동일한 인수 집합을 지원합니다.
설명
이 명령은 일반적인 Qt 응용 프로그램을 설정하는 작업을 단순화합니다. 일반적으로 첫 번째 find_package(Qt6)
호출 직후, 일반적으로 최상위 수준 CMakeLists.txt
파일에서 타깃이 정의되기 전에 호출됩니다. 이 함수는 다음과 같은 작업을 수행합니다:
- 표준 CMake 변수
CMAKE_AUTOMOC
및CMAKE_AUTOUIC
가 아직 정의되지 않은 경우 true로 설정됩니다. 이렇게 하면 현재 디렉토리 범위 이하에서 이후에 생성되는 타깃에 대해 기본적으로 모든 Qt 관련 오토젠 기능이 활성화됩니다. - CMake의 GNUInstallDirs 모듈이 자동으로 포함됩니다. 이는
CMAKE_INSTALL_BINDIR
,CMAKE_INSTALL_LIBDIR
등과 같은 변수에 대한 적절한 기본값을 정의합니다. - Windows를 대상으로 하는 경우
CMAKE_RUNTIME_OUTPUT_DIRECTORY
변수가 아직 설정되지 않은 경우${CMAKE_CURRENT_BINARY_DIR}
으로 설정됩니다. - Apple 또는 Windows 이외의 플랫폼을 타겟팅하는 경우 아래 설명된 대로
CMAKE_INSTALL_RPATH
가 보강됩니다. - CMake의 USE_FOLDERS 프로퍼티는
ON
로, QT_TARGETS_FOLDER 는QtInternalTargets
로 설정됩니다. 폴더를 지원하는 IDE는 이 폴더에 Qt 내부 타겟을 표시합니다.
Qt 6.5부터는 최신 Qt 버전에서 변경된 사항을 옵트인하여 Qt의 CMake API의 기본 동작을 변경할 수 있습니다. REQUIRES
을 지정하면 Qt에서 REQUIRES
까지 도입된 모든 제안된 변경 사항이 활성화되며, 이전 Qt 버전을 사용하면 오류가 발생합니다. SUPPORTS_UP_TO
을 추가로 지정하면 SUPPORTS_UP_TO
까지의 버전에 도입된 모든 새로운 변경 사항도 활성화됩니다(이전 Qt 버전을 사용해도 오류는 발생하지 않음). 이는 CMake의 정책 개념과 유사합니다( cmake_policy 비교).
RPATH
를 지원하는 플랫폼(Apple 플랫폼 제외)에서는 이 명령으로 CMAKE_INSTALL_RPATH
변수에 두 개의 값이 추가됩니다. $ORIGIN
는 라이브러리가 자신과 같은 디렉토리에서 의존하는 다른 라이브러리를 찾을 수 있도록 추가됩니다. $ORIGIN/<reldir>
도 추가되는데, <reldir>
는 CMAKE_INSTALL_BINDIR
에서 CMAKE_INSTALL_LIBDIR
로의 상대 경로입니다. 이렇게 하면 CMAKE_INSTALL_BINDIR
에 설치된 실행 파일이 CMAKE_INSTALL_LIBDIR
에 설치된 의존하는 모든 라이브러리를 찾을 수 있습니다. CMAKE_INSTALL_RPATH
의 모든 중복은 제거됩니다. 실제로 이 두 값은 프로젝트가 명시적으로 대상을 지정하지 않은 경우 install(TARGETS) 명령이 사용하는 기본 위치에 설치한다고 가정할 때 실행 파일과 라이브러리가 링크 시간 종속성을 찾을 수 있도록 합니다.
IDE에 대한 폴더 지원을 비활성화하려면 qt_standard_project_setup
으로 호출하기 전 또는 후에 USE_FOLDERS를 OFF
으로 설정하세요.
qt_standard_project_setup()
명령은 QT_NO_STANDARD_PROJECT_SETUP 변수를 true로 설정하면 효과적으로 비활성화할 수 있습니다.
국제화
Qt 6.7부터는 I18N_TRANSLATED_LANGUAGES
인수를 사용하여 프로젝트 국제화에 사용되는 언어를 지정할 수 있습니다. 자세한 내용은 QT_I18N_TRANSLATED_LANGUAGES를 참조하십시오.
번역 가능한 문자열이 작성되는 언어를 지정하려면 I18N_SOURCE_LANGUAGE를 사용합니다. 기본적으로 en
이 사용됩니다. 자세한 내용은 QT_I18N_SOURCE_LANGUAGE를 참조하세요.
예제
cmake_minimum_required(VERSION 3.16...3.22) project(MyThings) find_package(Qt6 REQUIRED COMPONENTS Core) qt_standard_project_setup() qt_add_executable(MyApp main.cpp) install(TARGETS MyApp BUNDLE DESTINATION . RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) qt_generate_deploy_app_script( TARGET MyApp OUTPUT_SCRIPT deploy_script NO_UNSUPPORTED_PLATFORM_ERROR ) install(SCRIPT ${deploy_script})
qt_generate_deploy_app_script(), qt_policy 및 qt_add_translations()도 참조하십시오 .
© 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.