iOS: Add a variable to customize where the launch image is taken from

For those who are providing their own launch images for their iOS
projects then QMAKE_IOS_LAUNCH_SCREEN can be set to point to the
location where the launch image to be used over the default.

[ChangeLog][Platform Specific Changes][iOS] Added support for
specifying a launch image to be used for an iOS project. This can be
achieved by using QMAKE_IOS_LAUNCH_SCREEN.

Change-Id: Ibb236655b282132ab5eee747986a93abb9802200
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit is contained in:
Andy Shaw 2019-04-16 08:32:33 +02:00
parent d25589e052
commit 64491c9b72
5 changed files with 33 additions and 7 deletions

View File

@ -29,12 +29,15 @@ macx-xcode {
QMAKE_MAC_XCODE_SETTINGS += device_family
ios {
# Set up default LaunchScreen
qmake_launch_screen = LaunchScreen.storyboard
qmake_copy_launch_screen.input = $$QMAKESPEC/$$qmake_launch_screen
qmake_copy_launch_screen.output = $$OUT_PWD/$${TARGET}.xcodeproj/$$qmake_launch_screen
QMAKE_SUBSTITUTES += qmake_copy_launch_screen
qmake_launch_screens.files = $$qmake_copy_launch_screen.output
isEmpty(QMAKE_IOS_LAUNCH_SCREEN) {
qmake_launch_screen = LaunchScreen.storyboard
qmake_copy_launch_screen.input = $$QMAKESPEC/$$qmake_launch_screen
qmake_copy_launch_screen.output = $$OUT_PWD/$${TARGET}.xcodeproj/$$qmake_launch_screen
QMAKE_SUBSTITUTES += qmake_copy_launch_screen
qmake_launch_screens.files = $$qmake_copy_launch_screen.output
} else {
qmake_launch_screens.files = $$QMAKE_IOS_LAUNCH_SCREEN
}
QMAKE_BUNDLE_DATA += qmake_launch_screens
}
}

View File

@ -27,7 +27,7 @@
<key>NOTE</key>
<string>This file was generated by Qt/QMake.</string>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<string>${IOS_LAUNCH_SCREEN}</string>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>

View File

@ -2260,6 +2260,9 @@
\row
\li \c ${WATCHOS_DEPLOYMENT_TARGET}
\li Expands to the value of QMAKE_WATCHOS_DEPLOYMENT_TARGET.
\row
\li \c ${IOS_LAUNCH_SCREEN}
\li Expands to the value of QMAKE_IOS_LAUNCH_SCREEN.
\endtable
\note When using the Xcode generator, the above \c{${var}}-style
@ -2283,6 +2286,13 @@
For more information, see \l {Expressing Supported iOS Versions}.
\section1 QMAKE_IOS_LAUNCH_SCREEN
\note This variable is used on the iOS platform only.
Specifies the launch screen that is used by the application. If this is not set
then a default launch screen is used.
\section1 QMAKE_LFLAGS
Specifies a general set of flags that are passed to

View File

@ -1615,6 +1615,12 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
plist_in_text.replace(QLatin1String("@TYPEINFO@"),
(project->isEmpty("QMAKE_PKGINFO_TYPEINFO")
? QString::fromLatin1("????") : project->first("QMAKE_PKGINFO_TYPEINFO").left(4).toQString()));
QString launchScreen = var("QMAKE_IOS_LAUNCH_SCREEN");
if (launchScreen.isEmpty())
launchScreen = QLatin1String("LaunchScreen");
else
launchScreen = QFileInfo(launchScreen).baseName();
plist_in_text.replace(QLatin1String("${IOS_LAUNCH_SCREEN}"), launchScreen);
QFile plist_out_file(Option::output_dir + "/Info.plist");
if (plist_out_file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QTextStream plist_out(&plist_out_file);

View File

@ -798,6 +798,13 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
commonSedArgs << "-e \"s,\\$${WATCHOS_DEPLOYMENT_TARGET},"
<< project->first("QMAKE_WATCHOS_DEPLOYMENT_TARGET").toQString() << ",g\" ";
QString launchScreen = var("QMAKE_IOS_LAUNCH_SCREEN");
if (launchScreen.isEmpty())
launchScreen = QLatin1String("LaunchScreen");
else
launchScreen = QFileInfo(launchScreen).baseName();
commonSedArgs << "-e \"s,\\$${IOS_LAUNCH_SCREEN}," << launchScreen << ",g\" ";
if (!isFramework) {
ProString app_bundle_name = var("QMAKE_APPLICATION_BUNDLE_NAME");
if (app_bundle_name.isEmpty())