CMake:Android: add property QT_ANDROID_APP_NAME to set app name
With this property, a user can set the app's name directly from CMake without having to manaully manage a custom AndroidManifest.xml file. Fixes: QTBUG-87982 Fixes: QTBUG-121825 Fixes: QTCREATORBUG-17863 Change-Id: Ic12e13b58efbc4fb2f18be6fc854b585988485bf Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
This commit is contained in:
parent
41b72465d8
commit
c768ec64bb
@ -77,6 +77,7 @@ Qt sets the following manifest configuration by default:
|
|||||||
\row
|
\row
|
||||||
\li android:label
|
\li android:label
|
||||||
\li The application name label. Default value is the Qt project's target name.
|
\li The application name label. Default value is the Qt project's target name.
|
||||||
|
This can be set using \l {QT_ANDROID_APP_NAME}.
|
||||||
\row
|
\row
|
||||||
\li android:hardwareAccelerated
|
\li android:hardwareAccelerated
|
||||||
\li Sets hardware acceleration preference. The default value is \c true.
|
\li Sets hardware acceleration preference. The default value is \c true.
|
||||||
|
@ -217,10 +217,14 @@ function(qt6_android_generate_deployment_settings target)
|
|||||||
_qt_internal_add_android_deployment_property(file_contents "android-package-source-directory"
|
_qt_internal_add_android_deployment_property(file_contents "android-package-source-directory"
|
||||||
${target} "_qt_android_native_package_source_dir")
|
${target} "_qt_android_native_package_source_dir")
|
||||||
|
|
||||||
# version code
|
# package name
|
||||||
_qt_internal_add_android_deployment_property(file_contents "android-package-name"
|
_qt_internal_add_android_deployment_property(file_contents "android-package-name"
|
||||||
${target} "QT_ANDROID_PACKAGE_NAME")
|
${target} "QT_ANDROID_PACKAGE_NAME")
|
||||||
|
|
||||||
|
# app name
|
||||||
|
_qt_internal_add_android_deployment_property(file_contents "android-app-name"
|
||||||
|
${target} "QT_ANDROID_APP_NAME")
|
||||||
|
|
||||||
# version code
|
# version code
|
||||||
_qt_internal_add_android_deployment_property(file_contents "android-version-code"
|
_qt_internal_add_android_deployment_property(file_contents "android-version-code"
|
||||||
${target} "QT_ANDROID_VERSION_CODE")
|
${target} "QT_ANDROID_VERSION_CODE")
|
||||||
|
@ -299,6 +299,35 @@ For more information, see Android's
|
|||||||
\sa{qt6_android_generate_deployment_settings}{qt_android_generate_deployment_settings()}
|
\sa{qt6_android_generate_deployment_settings}{qt_android_generate_deployment_settings()}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page cmake-target-property-qt-android-app-name.html
|
||||||
|
\ingroup cmake-properties-qtcore
|
||||||
|
\ingroup cmake-target-properties-qtcore
|
||||||
|
|
||||||
|
\title QT_ANDROID_APP_NAME
|
||||||
|
\target cmake-target-property-QT_ANDROID_APP_NAME
|
||||||
|
\ingroup cmake-android-manifest-properties
|
||||||
|
|
||||||
|
\summary {The Android app's name.}
|
||||||
|
|
||||||
|
\cmakepropertysince 6.9
|
||||||
|
\cmakepropertyandroidonly
|
||||||
|
|
||||||
|
Specifies the app's name that's shown in the launcher. This is human readable name
|
||||||
|
of the app, and it is different from the \l {QT_ANDROID_PACKAGE_NAME}{package name}
|
||||||
|
of the app. This doesn't do anything if the name is set explicitly in the
|
||||||
|
\c {AndroidManifest.xml}.
|
||||||
|
|
||||||
|
\badcode
|
||||||
|
set_target_properties(${target} PROPERTIES
|
||||||
|
QT_ANDROID_APP_NAME "Gallery"
|
||||||
|
)
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
\sa{qt6_android_generate_deployment_settings}{qt_android_generate_deployment_settings()}
|
||||||
|
\sa {QT_ANDROID_PACKAGE_NAME}
|
||||||
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\page cmake-target-property-qt-android-version-code.html
|
\page cmake-target-property-qt-android-version-code.html
|
||||||
\ingroup cmake-properties-qtcore
|
\ingroup cmake-properties-qtcore
|
||||||
|
@ -64,6 +64,7 @@ how to accomplish this.
|
|||||||
\li \l{cmake-target-property-QT_ANDROID_PACKAGE_SOURCE_DIR}{QT_ANDROID_PACKAGE_SOURCE_DIR}
|
\li \l{cmake-target-property-QT_ANDROID_PACKAGE_SOURCE_DIR}{QT_ANDROID_PACKAGE_SOURCE_DIR}
|
||||||
\li \l{cmake-target-property-QT_ANDROID_TARGET_SDK_VERSION}{QT_ANDROID_TARGET_SDK_VERSION}
|
\li \l{cmake-target-property-QT_ANDROID_TARGET_SDK_VERSION}{QT_ANDROID_TARGET_SDK_VERSION}
|
||||||
\li \l{cmake-target-property-QT_ANDROID_PACKAGE_NAME}{QT_ANDROID_PACKAGE_NAME}
|
\li \l{cmake-target-property-QT_ANDROID_PACKAGE_NAME}{QT_ANDROID_PACKAGE_NAME}
|
||||||
|
\li \l{cmake-target-property-QT_ANDROID_APP_NAME}{QT_ANDROID_APP_NAME}
|
||||||
\li \l{cmake-target-property-QT_ANDROID_VERSION_NAME}{QT_ANDROID_VERSION_NAME}
|
\li \l{cmake-target-property-QT_ANDROID_VERSION_NAME}{QT_ANDROID_VERSION_NAME}
|
||||||
\li \l{cmake-target-property-QT_ANDROID_VERSION_CODE}{QT_ANDROID_VERSION_CODE}
|
\li \l{cmake-target-property-QT_ANDROID_VERSION_CODE}{QT_ANDROID_VERSION_CODE}
|
||||||
\li \l{cmake-target-property-QT_QML_IMPORT_PATH}{QT_QML_IMPORT_PATH}
|
\li \l{cmake-target-property-QT_QML_IMPORT_PATH}{QT_QML_IMPORT_PATH}
|
||||||
|
@ -191,6 +191,7 @@ struct Options
|
|||||||
DeploymentMechanism deploymentMechanism;
|
DeploymentMechanism deploymentMechanism;
|
||||||
QString systemLibsPath;
|
QString systemLibsPath;
|
||||||
QString packageName;
|
QString packageName;
|
||||||
|
QString appName;
|
||||||
QStringList extraLibs;
|
QStringList extraLibs;
|
||||||
QHash<QString, QStringList> archExtraLibs;
|
QHash<QString, QStringList> archExtraLibs;
|
||||||
QStringList extraPlugins;
|
QStringList extraPlugins;
|
||||||
@ -1371,6 +1372,14 @@ bool readInputFile(Options *options)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const QJsonValue androidAppName = jsonObject.value("android-app-name"_L1);
|
||||||
|
if (!androidAppName.isUndefined())
|
||||||
|
options->appName = androidAppName.toString();
|
||||||
|
else
|
||||||
|
options->appName = options->applicationBinary;
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
using ItFlag = QDirListing::IteratorFlag;
|
using ItFlag = QDirListing::IteratorFlag;
|
||||||
const QJsonValue deploymentDependencies = jsonObject.value("deployment-dependencies"_L1);
|
const QJsonValue deploymentDependencies = jsonObject.value("deployment-dependencies"_L1);
|
||||||
@ -1843,7 +1852,7 @@ bool updateAndroidManifest(Options &options)
|
|||||||
fprintf(stdout, " -- AndroidManifest.xml \n");
|
fprintf(stdout, " -- AndroidManifest.xml \n");
|
||||||
|
|
||||||
QHash<QString, QString> replacements;
|
QHash<QString, QString> replacements;
|
||||||
replacements[QStringLiteral("-- %%INSERT_APP_NAME%% --")] = options.applicationBinary;
|
replacements[QStringLiteral("-- %%INSERT_APP_NAME%% --")] = options.appName;
|
||||||
replacements[QStringLiteral("-- %%INSERT_APP_ARGUMENTS%% --")] = options.applicationArguments;
|
replacements[QStringLiteral("-- %%INSERT_APP_ARGUMENTS%% --")] = options.applicationArguments;
|
||||||
replacements[QStringLiteral("-- %%INSERT_APP_LIB_NAME%% --")] = options.applicationBinary;
|
replacements[QStringLiteral("-- %%INSERT_APP_LIB_NAME%% --")] = options.applicationBinary;
|
||||||
replacements[QStringLiteral("-- %%INSERT_VERSION_NAME%% --")] = options.versionName;
|
replacements[QStringLiteral("-- %%INSERT_VERSION_NAME%% --")] = options.versionName;
|
||||||
|
@ -30,6 +30,7 @@ set_target_properties(${target} PROPERTIES
|
|||||||
QT_ANDROID_SDK_BUILD_TOOLS_REVISION "23.0.2"
|
QT_ANDROID_SDK_BUILD_TOOLS_REVISION "23.0.2"
|
||||||
QT_ANDROID_MIN_SDK_VERSION "1"
|
QT_ANDROID_MIN_SDK_VERSION "1"
|
||||||
QT_ANDROID_TARGET_SDK_VERSION "2"
|
QT_ANDROID_TARGET_SDK_VERSION "2"
|
||||||
|
QT_ANDROID_APP_NAME "Android Deployment Settings Test"
|
||||||
QT_ANDROID_PACKAGE_NAME "org.qtproject.android_deployment_settings_test"
|
QT_ANDROID_PACKAGE_NAME "org.qtproject.android_deployment_settings_test"
|
||||||
QT_ANDROID_DEPLOYMENT_DEPENDENCIES "dep1.so;dep2.so;dep3.so"
|
QT_ANDROID_DEPLOYMENT_DEPENDENCIES "dep1.so;dep2.so;dep3.so"
|
||||||
QT_ANDROID_DEPLOYMENT_SETTINGS_FILE "attempt_to_rewrite.json"
|
QT_ANDROID_DEPLOYMENT_SETTINGS_FILE "attempt_to_rewrite.json"
|
||||||
@ -54,6 +55,7 @@ set_target_properties(${target} PROPERTIES
|
|||||||
QT_ANDROID_SDK_BUILD_TOOLS_REVISION "23.0.2"
|
QT_ANDROID_SDK_BUILD_TOOLS_REVISION "23.0.2"
|
||||||
QT_ANDROID_MIN_SDK_VERSION "1"
|
QT_ANDROID_MIN_SDK_VERSION "1"
|
||||||
QT_ANDROID_TARGET_SDK_VERSION "2"
|
QT_ANDROID_TARGET_SDK_VERSION "2"
|
||||||
|
QT_ANDROID_APP_NAME "Android Deployment Settings Test"
|
||||||
QT_ANDROID_PACKAGE_NAME "org.qtproject.android_deployment_settings_test"
|
QT_ANDROID_PACKAGE_NAME "org.qtproject.android_deployment_settings_test"
|
||||||
QT_ANDROID_DEPLOYMENT_DEPENDENCIES "dep1.so;dep2.so;dep3.so"
|
QT_ANDROID_DEPLOYMENT_DEPENDENCIES "dep1.so;dep2.so;dep3.so"
|
||||||
QT_ANDROID_EXTRA_LIBS
|
QT_ANDROID_EXTRA_LIBS
|
||||||
|
@ -78,6 +78,8 @@ void tst_android_deployment_settings::DeploymentSettings_data()
|
|||||||
<< "2";
|
<< "2";
|
||||||
QTest::newRow("android-package-name") << "android-package-name"
|
QTest::newRow("android-package-name") << "android-package-name"
|
||||||
<< "org.qtproject.android_deployment_settings_test";
|
<< "org.qtproject.android_deployment_settings_test";
|
||||||
|
QTest::newRow("android-app-name") << "android-app-name"
|
||||||
|
<< "Android Deployment Settings Test";
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_android_deployment_settings::DeploymentSettings()
|
void tst_android_deployment_settings::DeploymentSettings()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user