qt_set_finalizer_mode
Personaliza aspectos de la finalización de un objetivo.
El comando está definido en el componente Core del paquete Qt6, que puede cargarse de este modo:
find_package(Qt6 REQUIRED COMPONENTS Core)
Este comando se introdujo en Qt 6.2.
Nota: Este comando se encuentra en fase de previsualización tecnológica y puede cambiar en futuras versiones.
Sinopsis
qt_set_finalizer_mode(target
ENABLE | DISABLE
MODES modes...
)Si los comandos versionless están deshabilitados, utilice qt6_set_finalizer_mode() en su lugar. Admite el mismo conjunto de argumentos que este comando.
Descripción
Este comando se utiliza para personalizar algunos aspectos de la finalización de un target específico. Sólo tiene efecto si se llama antes de finalizar target, lo que ocurre en uno de los siguientes escenarios:
- El proyecto llama explícitamente a qt_finalize_target() para
target. Esto normalmente significa que la palabra claveMANUAL_FINALIZATIONse pasó a qt_add_executable() cuando se definiótarget. - Se está utilizando CMake 3.17 o anterior, en cuyo caso la finalización siempre se produce inmediatamente como parte de la llamada a qt_add_executable().
- Se está utilizando CMake 3.18 o posterior, la palabra clave
MANUAL_FINALIZATIONno se pasó a qt_add_executable() cuando se definiótarget, y la finalización diferida se ha completado al final del ámbito de directorio detarget.
qt_set_finalizer_mode() se utiliza para activar o desactivar una lista de modos, donde un modo corresponde a un aspecto específico de la finalización. Los modos de finalización actualmente soportados son:
| Modo | Por defecto | Comportamiento de la finalización |
|---|---|---|
static_plugins | Habilitado | Cuando Qt se construye estáticamente, crea librerías de objetos inicializadores para sus plugins estáticos. Si target es un ejecutable y este modo de finalización está habilitado, cualquier biblioteca de objetos inicializadores de plugins que necesite target se enlazará directamente a él. Esto evita ciclos entre las bibliotecas estáticas proporcionadas por Qt y puede reducir el tiempo de enlace. Cuando este modo de finalización está deshabilitado, cada inicializador de complemento se propaga a través de los requisitos de uso de su biblioteca Qt asociada, lo que puede provocar ciclos. Si Qt no se construye estáticamente, este modo de finalizador no es relevante y no se utiliza. |
Ejemplo
El siguiente ejemplo asume que se está usando CMake 3.19 o posterior (necesario para la finalización diferida):
qt_add_executable(my_app main.cpp) qt_set_finalizer_mode(my_app ENABLE MODES static_plugins)
El mismo ejemplo usando finalización manual podría verse así:
qt_add_executable(my_app MANUAL_FINALIZATION main.cpp) qt_set_finalizer_mode(my_app ENABLE MODES static_plugins) qt_finalize_target(my_app)
Ver también qt_finalize_target().
© 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.