summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorDoris Verria <doris.verria@qt.io>2021-10-26 15:51:21 +0200
committerDoris Verria <doris.verria@qt.io>2021-10-28 10:25:00 +0200
commit67fe9e4106616383ede02741cfceaec12ee1b648 (patch)
treebc7f8c035872d82b7381899a296ac925a9ea4440 /examples
parentf98d01cdfc968396816f1c42121f5f449ee17256 (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.pri44
-rw-r--r--examples/multimediawidgets/camera/CMakeLists.txt14
-rw-r--r--examples/multimediawidgets/camera/ios/Info.plist.in50
-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/>