diff --git a/cmake/QtPublicAppleHelpers.cmake b/cmake/QtPublicAppleHelpers.cmake index 7d9007ce63c..102110b1632 100644 --- a/cmake/QtPublicAppleHelpers.cmake +++ b/cmake/QtPublicAppleHelpers.cmake @@ -618,9 +618,12 @@ function(_qt_internal_set_apple_localizations target) return() endif() - get_target_property(supported_languages "${target}" _qt_apple_supported_languages) - if("${supported_languages}" STREQUAL "supported_languages-NOTFOUND") - return() + set(supported_languages "${QT_I18N_LANGUAGES}") + if("${QT_I18N_LANGUAGES}" STREQUAL "") + get_target_property(supported_languages "${target}" _qt_apple_supported_languages) + if("${supported_languages}" STREQUAL "supported_languages-NOTFOUND") + return() + endif() endif() get_target_property(plist_file "${target}" MACOSX_BUNDLE_INFO_PLIST) if (NOT plist_file) diff --git a/src/corelib/Qt6CoreMacros.cmake b/src/corelib/Qt6CoreMacros.cmake index 8a99e458ec2..9f8e6bb5919 100644 --- a/src/corelib/Qt6CoreMacros.cmake +++ b/src/corelib/Qt6CoreMacros.cmake @@ -2969,7 +2969,9 @@ macro(qt6_standard_project_setup) REQUIRES SUPPORTS_UP_TO ) - set(__qt_sps_args_multi) + set(__qt_sps_args_multi + I18N_LANGUAGES + ) cmake_parse_arguments(__qt_sps_arg "${__qt_sps_args_option}" "${__qt_sps_args_single}" @@ -3068,6 +3070,11 @@ macro(qt6_standard_project_setup) set_property(GLOBAL PROPERTY AUTOGEN_TARGETS_FOLDER ${__qt_qt_targets_folder}) endif() endif() + + # I18N support. + if(DEFINED __qt_sps_arg_I18N_LANGUAGES AND NOT DEFINED QT_I18N_LANGUAGES) + set(QT_I18N_LANGUAGES ${__qt_sps_arg_I18N_LANGUAGES}) + endif() endif() endmacro() diff --git a/src/corelib/doc/src/cmake/cmake-configure-variables.qdoc b/src/corelib/doc/src/cmake/cmake-configure-variables.qdoc index a777dd7da2f..a947c87a052 100644 --- a/src/corelib/doc/src/cmake/cmake-configure-variables.qdoc +++ b/src/corelib/doc/src/cmake/cmake-configure-variables.qdoc @@ -477,6 +477,35 @@ methods provided by CMake. \sa {qt6_standard_project_setup}{qt_standard_project_setup()} */ +/*! +\page cmake-variable-qt-i18n-languages.html +\ingroup cmake-variables-qtcore + +\title QT_I18N_LANGUAGES +\target cmake-variable-QT_I18N_LANGUAGES + +\summary {List of languages to be used for project internationalization} + +\cmakevariablesince 6.7 + +This variable specifies a list of languages that are used for project +internationalization. The single languages must be compatible with the +string-based \l QLocale constructor. + +The languages in \c QT_I18N_LANGUAGES are used to +\list + \li Set up executable targets for consuming \c{.qm} files. + \li Automatically construct \c{.ts} file names in + \l{qt6_add_translations}{qt_add_translations()}. +\endlist + +This variable can be conveniently set with the +{qt6_standard_project_setup}{qt_standard_project_setup()} command. + +\sa {qt6_standard_project_setup}{qt_standard_project_setup()} +\sa {qt6_add_translations}{qt_add_translations()} +*/ + /*! \page cmake-variable-qt-ios-launch-screen.html \ingroup cmake-variables-qtcore diff --git a/src/corelib/doc/src/cmake/qt_standard_project_setup.qdoc b/src/corelib/doc/src/cmake/qt_standard_project_setup.qdoc index 458b25bdc93..9dcbab6dc5c 100644 --- a/src/corelib/doc/src/cmake/qt_standard_project_setup.qdoc +++ b/src/corelib/doc/src/cmake/qt_standard_project_setup.qdoc @@ -20,6 +20,7 @@ qt_standard_project_setup( [REQUIRES ] [SUPPORTS_UP_TO ] + [I18N_LANGUAGES ] ) \endcode @@ -81,6 +82,12 @@ setting the \l{QT_NO_STANDARD_PROJECT_SETUP} variable to true. \sa {qt6_generate_deploy_app_script}{qt_generate_deploy_app_script()} \sa qt_policy +\section1 Internationalization + +Since Qt 6.7, it is possible to specify the languages that are used for project +internationalization with the \c I18N_LANGUAGES argument. See \l +QT_I18N_LANGUAGES for details. + \section1 Example \include cmake-generate-deploy-app-script.qdocinc