En esta página

qt_standard_project_setup

Configura los valores predeterminados de todo el proyecto a una disposición estándar.

El comando está definido en el componente Core del paquete Qt6, que puede cargarse así:

find_package(Qt6 REQUIRED COMPONENTS Core)

Este comando se introdujo en Qt 6.3.

Sinopsis

qt_standard_project_setup(
    [REQUIRES <version>]
    [SUPPORTS_UP_TO <version>]
    [I18N_TRANSLATED_LANGUAGES <language...>]
    [I18N_SOURCE_LANGUAGE <language>]
)

Si los comandos sin versión están desactivados, utilice qt6_standard_project_setup() en su lugar. Admite el mismo conjunto de argumentos que este comando.

Descripción

Este comando simplifica la tarea de configurar una aplicación Qt típica. Normalmente se ejecuta inmediatamente después de la primera llamada a find_package(Qt6), normalmente en el archivo de nivel superior CMakeLists.txt y antes de que se haya definido ningún objetivo. Si se llama más tarde, no se aplica a ningún objetivo definido antes, con resultados posiblemente confusos. Hace lo siguiente

  • Las variables estándar de CMake CMAKE_AUTOMOC y CMAKE_AUTOUIC se establecen en true si no están ya definidas. Esto habilita todas las características de autogen relacionadas con Qt por defecto para los objetivos creados posteriormente en el ámbito del directorio actual y por debajo.
  • El módulo GNUInstallDirs de CMake se incluye automáticamente. Esto define los valores por defecto apropiados para variables como CMAKE_INSTALL_BINDIR, CMAKE_INSTALL_LIBDIR, y así sucesivamente.
  • Cuando el objetivo es Windows, si la variable CMAKE_RUNTIME_OUTPUT_DIRECTORY no está ya definida, se definirá como ${CMAKE_CURRENT_BINARY_DIR}.
  • Cuando el objetivo sean plataformas distintas de Apple o Windows, CMAKE_INSTALL_RPATH se aumentará como se describe a continuación.
  • La propiedad USE_FOLDERS de CMake se establece en ON, y QT_TARGETS_FOLDER se establece en QtInternalTargets. Los IDEs que soportan carpetas mostrarán los objetivos internos de Qt en esta carpeta.

Desde Qt 6.5, es posible cambiar el comportamiento por defecto de la API CMake de Qt optando por los cambios de comportamiento de las nuevas versiones de Qt a través de las políticas CMake de Qt. Esto es similar al propio concepto de política de CMake (comparar cmake_policy). Si se especifica REQUIRES, todas las políticas introducidas en las versiones de Qt hasta REQUIRES inclusive se establecen automáticamente en NEW, y el uso de una versión anterior de Qt producirá un error. Por ejemplo, si se especifica REQUIRES 6.8, se activan las políticas QTP0001 a QTP0005. Si también se especifica SUPPORTS_UP_TO, también se habilitan las políticas hasta esa versión, pero sin requerir que esté presente esa versión concreta de Qt.

Están disponibles las siguientes políticas:

QTP0001

':/qt/qml/' es el prefijo de recurso predeterminado para los módulos QML.

QTP0002

Las propiedades de destino que especifican rutas específicas de Android pueden contener expresiones de generador.

QTP0003

Tenga en cuenta el valor BUILD_SHARED_LIBS al crear bibliotecas Qt.

QTP0004

Los directorios adicionales con archivos QML en un módulo QML necesitan archivos qmldir adicionales

QTP0005

Las palabras clave de dependencia Qt_add_qml_module aceptan objetivos CMake

Véase qt_policy para más detalles sobre la configuración manual de políticas individuales.

En las plataformas que admiten RPATH (excepto las plataformas Apple), este comando añade dos valores a la variable CMAKE_INSTALL_RPATH. $ORIGIN se añade para que las bibliotecas encuentren otras bibliotecas de las que dependan en el mismo directorio que ellas. $ORIGIN/<reldir> también se añade, donde <reldir> es la ruta relativa de CMAKE_INSTALL_BINDIR a CMAKE_INSTALL_LIBDIR. Esto permite que los ejecutables instalados en CMAKE_INSTALL_BINDIR encuentren cualquier biblioteca de la que dependan instalada en CMAKE_INSTALL_LIBDIR. Se elimina cualquier duplicado en CMAKE_INSTALL_RPATH. En la práctica, estos dos valores garantizan que los ejecutables y las bibliotecas encontrarán sus dependencias en tiempo de enlace, suponiendo que los proyectos los instalen en las ubicaciones predeterminadas que utiliza el comando install(TARGETS) cuando no se proporciona explícitamente ningún destino.

Para deshabilitar el soporte de carpetas para IDEs, establezca USE_FOLDERS a OFF antes o después de la llamada a qt_standard_project_setup.

El comando qt_standard_project_setup() puede deshabilitarse efectivamente estableciendo la variable QT_NO_STANDARD_PROJECT_SETUP a true.

Internacionalización

Desde Qt 6.7, es posible especificar los idiomas que se utilizan para la internacionalización del proyecto con el argumento I18N_TRANSLATED_LANGUAGES. Ver QT_I18N_TRANSLATED_LANGUAGES para más detalles.

Utilice I18N_SOURCE_LANGUAGE para especificar el idioma en el que se escriben las cadenas traducibles. Por defecto, se utiliza en. Ver QT_I18N_SOURCE_LANGUAGE para más detalles.

Ejemplo

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

Véase también qt_generate_deploy_app_script(), qt_policy y qt_add_translations().

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