forked from qt/qtbase
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactor iOS builds to facilitate tvOS port
- moved prf files to shared location (uikit, added to QMAKE_PLATFORM) - prepare some formatting (unconditional blocks mostly) to add conditions later - make device detection script more generic, passing filter strings as a parameter and returning non-os specific variables Change-Id: I61f2b77093304ff985bec9da04fda57ff296b16b Reviewed-by: Oswald Buddenhagen <[email protected]> Reviewed-by: Tor Arne Vestbø <[email protected]>
- Loading branch information
1 parent
6fb56a7
commit 7c7d8f8
Showing
15 changed files
with
139 additions
and
125 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
equals(TEMPLATE, app):qt { | ||
# If the application uses Qt, it needs to be an application bundle | ||
# to be able to deploy and run on iOS. The only exception to this | ||
# is if you're working with a jailbroken device and can run the | ||
# resulting binary from the console/over SSH, but that's not a | ||
# use-case we care about, so no need to complicate the logic. | ||
CONFIG *= app_bundle | ||
|
||
# For Qt applications we want Xcode project files as the generated output, | ||
# but since qmake doesn't handle the transition between makefiles and Xcode | ||
# project files (which happens when using subdirs), we can't just override | ||
# MAKEFILE_GENERATOR. Instead, we generate the Xcode project by spawning a | ||
# child qmake process with -spec macx-xcode and let the top level qmake | ||
# process generate a wrapper makefile that forwards everything to xcodebuild. | ||
equals(MAKEFILE_GENERATOR, UNIX): \ | ||
CONFIG = xcodebuild $$CONFIG | ||
} | ||
|
||
load(default_post) | ||
|
||
macx-xcode { | ||
device_family.name = TARGETED_DEVICE_FAMILY | ||
device_family.value = $$QMAKE_IOS_TARGETED_DEVICE_FAMILY | ||
QMAKE_MAC_XCODE_SETTINGS += device_family | ||
|
||
{ | ||
# If QMAKE_BUNDLE_DATA contains an asset catalog that includes an | ||
# AppIcon.appiconset, we configure Xcode to use it for app icons. | ||
for(bundle_data, QMAKE_BUNDLE_DATA) { | ||
for(bundle_file, $${bundle_data}.files) { | ||
!contains(bundle_file, .*\.xcassets$): next() | ||
!exists($$absolute_path($$bundle_file/AppIcon.appiconset, $$_PRO_FILE_PWD_)): next() | ||
|
||
asset_catalog_appicon.name = "ASSETCATALOG_COMPILER_APPICON_NAME" | ||
asset_catalog_appicon.value = "AppIcon" | ||
QMAKE_MAC_XCODE_SETTINGS += asset_catalog_appicon | ||
break() | ||
} | ||
!isEmpty(asset_catalog_appicon.name): break() | ||
} | ||
|
||
# Set up default 4-inch iPhone/iPod launch image so that our apps | ||
# support the full screen resolution of those devices. | ||
qmake_launch_image = [email protected] | ||
qmake_copy_image.input = $$QMAKESPEC/$$qmake_launch_image | ||
qmake_copy_image.output = $$OUT_PWD/$${TARGET}.xcodeproj/$$qmake_launch_image | ||
qmake_copy_image.CONFIG = verbatim | ||
QMAKE_SUBSTITUTES += qmake_copy_image | ||
qmake_launch_images.files = $$qmake_copy_image.output | ||
QMAKE_BUNDLE_DATA += qmake_launch_images | ||
|
||
lessThan(QMAKE_XCODE_VERSION, "6.0") { | ||
warning("You need to update Xcode to version 6 or newer to fully support iPhone6/6+") | ||
} else { | ||
# Set up default LaunchScreen to support iPhone6/6+ | ||
qmake_launch_screen = LaunchScreen.xib | ||
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 | ||
QMAKE_BUNDLE_DATA += qmake_launch_screens | ||
} | ||
} | ||
} | ||
|
||
macx-xcode { | ||
arch_device.name = "ARCHS[sdk=$${device.sdk}*]" | ||
arch_simulator.name = "ARCHS[sdk=$${simulator.sdk}*]" | ||
{ | ||
arch_device.value = $$QMAKE_IOS_DEVICE_ARCHS | ||
arch_simulator.value = $$QMAKE_IOS_SIMULATOR_ARCHS | ||
QMAKE_XCODE_ARCHS = $$QMAKE_IOS_DEVICE_ARCHS $$QMAKE_IOS_SIMULATOR_ARCHS | ||
} | ||
|
||
QMAKE_MAC_XCODE_SETTINGS += arch_device arch_simulator | ||
|
||
only_active_arch.name = ONLY_ACTIVE_ARCH | ||
only_active_arch.value = YES | ||
only_active_arch.build = debug | ||
QMAKE_MAC_XCODE_SETTINGS += only_active_arch | ||
} else { | ||
# Be more specific about which architecture we're targeting | ||
contains(QT_ARCH, arm.*) { | ||
VALID_ARCHS = $$QMAKE_IOS_DEVICE_ARCHS | ||
} else { | ||
VALID_ARCHS = $$QMAKE_IOS_SIMULATOR_ARCHS | ||
} | ||
|
||
single_arch: VALID_ARCHS = $$first(VALID_ARCHS) | ||
|
||
ACTIVE_ARCHS = $(filter $(EXPORT_VALID_ARCHS), $(ARCHS)) | ||
ARCH_ARGS = $(foreach arch, $(if $(EXPORT_ACTIVE_ARCHS), $(EXPORT_ACTIVE_ARCHS), $(EXPORT_VALID_ARCHS)), -arch $(arch)) | ||
|
||
QMAKE_EXTRA_VARIABLES += VALID_ARCHS ACTIVE_ARCHS ARCH_ARGS | ||
|
||
arch_flags = $(EXPORT_ARCH_ARGS) | ||
|
||
QMAKE_CFLAGS += $$arch_flags | ||
QMAKE_CXXFLAGS += $$arch_flags | ||
QMAKE_LFLAGS += $$arch_flags | ||
} |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.