diff options
author | Doris Verria <doris.verria@qt.io> | 2021-10-26 15:51:21 +0200 |
---|---|---|
committer | Doris Verria <doris.verria@qt.io> | 2021-10-28 10:25:00 +0200 |
commit | 67fe9e4106616383ede02741cfceaec12ee1b648 (patch) | |
tree | bc7f8c035872d82b7381899a296ac925a9ea4440 /examples | |
parent | f98d01cdfc968396816f1c42121f5f449ee17256 (diff) |
Camera example: Fix .plist file to build in iOS/macOS with qmake and cmake
- Fix format error in .plist.in file which was causing the permission
dialog to not show up.
- Provide separate .plist.in files for iOS and macOS so we can set
needed keys specific to the platforms.
- For qmake builds, fix the shared.pri to provide an INFOPLIST
dictionary for macOS. The provided one has iOS specific keys.
Fixes: QTBUG-97408
Pick-to: 6.2
Change-Id: Idd8e00c91b935328352cc513f419205303d9356d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/multimedia/shared/shared.pri | 44 | ||||
-rw-r--r-- | examples/multimediawidgets/camera/CMakeLists.txt | 14 | ||||
-rw-r--r-- | examples/multimediawidgets/camera/ios/Info.plist.in | 50 | ||||
-rw-r--r-- | examples/multimediawidgets/camera/macos/Info.plist.in (renamed from examples/multimediawidgets/camera/Info.plist.in) | 11 |
4 files changed, 110 insertions, 9 deletions
diff --git a/examples/multimedia/shared/shared.pri b/examples/multimedia/shared/shared.pri index cb70f2b49..61fbc79f1 100644 --- a/examples/multimedia/shared/shared.pri +++ b/examples/multimedia/shared/shared.pri @@ -1,4 +1,4 @@ -darwin { +ios { PRODUCT_NAME = $$TARGET macx-xcode: PRODUCT_NAME = $${LITERAL_DOLLAR}{PRODUCT_NAME} INFOPLIST = \ @@ -48,3 +48,45 @@ darwin { write_file($$OUT_PWD/Info.plist, INFOPLIST)|error() QMAKE_INFO_PLIST = $$OUT_PWD/Info.plist } + +macos { + PRODUCT_NAME = $$TARGET + macx-xcode: PRODUCT_NAME = $${LITERAL_DOLLAR}{PRODUCT_NAME} + INFOPLIST = \ + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" \ + "<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">" \ + "<plist version=\"1.0\">" \ + "<dict>" \ + " <key>CFBundleIconFile</key>" \ + " <string></string>" \ + " <key>CFBundlePackageType</key>" \ + " <string>APPL</string>" \ + " <key>CFBundleGetInfoString</key>" \ + " <string>Created by Qt/QMake</string>" \ + " <key>CFBundleSignature</key>" \ + " <string>????</string>" \ + " <key>CFBundleExecutable</key>" \ + " <string>$$TARGET</string>" \ + " <key>CFBundleIdentifier</key>" \ + " <string>com.digia.$${LITERAL_DOLLAR}{PRODUCT_NAME:rfc1034identifier}</string>" \ + " <key>CFBundleDisplayName</key>" \ + " <string>$$PRODUCT_NAME</string>" \ + " <key>CFBundleName</key>" \ + " <string>$$PRODUCT_NAME</string>" \ + " <key>CFBundleShortVersionString</key>" \ + " <string>1.0</string>" \ + " <key>CFBundleVersion</key>" \ + " <string>1.0</string>" \ + " <key>NSPrincipalClass</key>" \ + " <string>NSApplication</string>" \ + " <key>NSCameraUsageDescription</key>" \ + " <string>Qt Multimedia Example</string>" \ + " <key>NSMicrophoneUsageDescription</key>" \ + " <string>Qt Multimedia Example</string>" \ + " <key>NOTE</key>" \ + " <string>This file was generated by Qt/QMake.</string>" \ + "</dict>" \ + "</plist>" + write_file($$OUT_PWD/Info.plist, INFOPLIST)|error() + QMAKE_INFO_PLIST = $$OUT_PWD/Info.plist +} diff --git a/examples/multimediawidgets/camera/CMakeLists.txt b/examples/multimediawidgets/camera/CMakeLists.txt index 45e06d82f..9d0f6eb7e 100644 --- a/examples/multimediawidgets/camera/CMakeLists.txt +++ b/examples/multimediawidgets/camera/CMakeLists.txt @@ -42,15 +42,21 @@ qt_add_executable(camera set_target_properties(camera PROPERTIES WIN32_EXECUTABLE TRUE MACOSX_BUNDLE TRUE - MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in ) +if(APPLE AND NOT IOS) + set_target_properties(camera PROPERTIES + MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/macos/Info.plist.in" + ) +elseif(IOS) + set_target_properties(camera PROPERTIES + MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/ios/Info.plist.in" + ) +endif() + set_property(TARGET camera APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android) -target_include_directories(camera PUBLIC - ../../multimedia/shared -) target_link_libraries(camera PUBLIC Qt::Core Qt::Gui diff --git a/examples/multimediawidgets/camera/ios/Info.plist.in b/examples/multimediawidgets/camera/ios/Info.plist.in new file mode 100644 index 000000000..6a6b8db11 --- /dev/null +++ b/examples/multimediawidgets/camera/ios/Info.plist.in @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + + <key>CFBundleName</key> + <string>${MACOSX_BUNDLE_BUNDLE_NAME}</string> + <key>CFBundleIdentifier</key> + <string>${MACOSX_BUNDLE_GUI_IDENTIFIER}</string> + <key>CFBundleExecutable</key> + <string>${MACOSX_BUNDLE_EXECUTABLE_NAME}</string> + + <key>CFBundleVersion</key> + <string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string> + <key>CFBundleShortVersionString</key> + <string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string> + + <key>CFBundleGetInfoString</key> + <string>${MACOSX_BUNDLE_INFO_STRING}</string> + <key>NSHumanReadableCopyright</key> + <string>${MACOSX_BUNDLE_COPYRIGHT}</string> + + <key>CFBundleIconFile</key> + <string>${MACOSX_BUNDLE_ICON_FILE}</string> + + <key>CFBundleDevelopmentRegion</key> + <string>English</string> + + <key>LSRequiresIPhoneOS</key> + <true/> + + <key>UISupportedInterfaceOrientations</key> + <array> + <string>UIInterfaceOrientationPortrait</string> + <string>UIInterfaceOrientationPortraitUpsideDown</string> + <string>UIInterfaceOrientationLandscapeLeft</string> + <string>UIInterfaceOrientationLandscapeRight</string> + </array> + + <key>NSCameraUsageDescription</key> + <string>Qt Multimedia Example</string> + <key>NSMicrophoneUsageDescription</key> + <string>Qt Multimedia Example</string> +</dict> +</plist> + diff --git a/examples/multimediawidgets/camera/Info.plist.in b/examples/multimediawidgets/camera/macos/Info.plist.in index 46a9ecf2d..ae2d945f1 100644 --- a/examples/multimediawidgets/camera/Info.plist.in +++ b/examples/multimediawidgets/camera/macos/Info.plist.in @@ -35,10 +35,13 @@ <key>CFBundleDevelopmentRegion</key> <string>English</string> - <key>NSCameraUsageDescription</key> - <string>Qt Multimedia Example</string> - <key>NSMicrophoneUsageDescription</key> - <string>Qt Multimedia Example</string> + <key>NSPrincipalClass</key> + <string>NSApplication</string> + + <key>NSCameraUsageDescription</key> + <string>Qt Multimedia Example</string> + <key>NSMicrophoneUsageDescription</key> + <string>Qt Multimedia Example</string> <key>NSSupportsAutomaticGraphicsSwitching</key> <true/> |