Setup project-wide defaults to a standard arrangement.
命令的定义在
核心
组件对于
Qt6
包,可以像这样加载:
find_package(Qt6 REQUIRED COMPONENTS Core)
This command was introduced in Qt 6.3.
qt_standard_project_setup( [REQUIRES <version>] [SUPPORTS_UP_TO <version>] )
若
无版本命令
被禁用,使用
qt6_standard_project_setup()
代替。它支持如此命令的一组相同自变量。
This command simplifies the task of setting up a typical Qt application. It would usually be called immediately after the first
find_package(Qt6)
call, normally in the top level
CMakeLists.txt
file and before any targets have been defined. It does the following things:
CMAKE_AUTOMOC
and
CMAKE_AUTOUIC
are set to true if they are not already defined. This enables all Qt-related autogen features by default for subsequently created targets in the current directory scope and below.
CMAKE_INSTALL_BINDIR
,
CMAKE_INSTALL_LIBDIR
, and so on.
CMAKE_RUNTIME_OUTPUT_DIRECTORY
variable is not already set, it will be set to
${CMAKE_CURRENT_BINARY_DIR}
.
CMAKE_INSTALL_RPATH
will be augmented as described below.
ON
,和
QT_TARGETS_FOLDER
被设为
QtInternalTargets
. IDEs that support folders will display Qt-internal targets in this folder.
Since Qt 6.5, it is possible to change the default behavior of Qt's CMake API by opting in to changes from newer Qt versions. If
REQUIRES
is specified, all suggested changes introduced in Qt up to
REQUIRES
are enabled, and using an older Qt version will result in an error. If additionally
SUPPORTS_UP_TO
has been specified, any new changes introduced in versions up to
SUPPORTS_UP_TO
are also enabled (but using an older Qt version is not an error). This is similar to CMake's policy concept (compare
cmake_policy
).
On platforms that support
RPATH
(other than Apple platforms), two values are appended to the
CMAKE_INSTALL_RPATH
variable by this command.
$ORIGIN
is appended so that libraries will find other libraries they depend on in the same directory as themselves.
$ORIGIN/<reldir>
is also appended, where
<reldir>
is the relative path from
CMAKE_INSTALL_BINDIR
to
CMAKE_INSTALL_LIBDIR
. This allows executables installed to
CMAKE_INSTALL_BINDIR
to find any libraries they may depend on installed to
CMAKE_INSTALL_LIBDIR
. Any duplicates in
CMAKE_INSTALL_RPATH
are removed. In practice, these two values ensure that executables and libraries will find their link-time dependencies, assuming projects install them to the default locations the
install(TARGETS)
command uses when no destination is explicitly provided.
To disable folder support for IDEs, set
USE_FOLDERS
to
OFF
before or after the call to
qt_standard_project_setup
.
The
qt_standard_project_setup()
command can effectively be disabled by setting the
QT_NO_STANDARD_PROJECT_SETUP
variable to true.
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() and qt_policy .