diff options
Diffstat (limited to 'mkspecs/features/permissions.prf')
-rw-r--r-- | mkspecs/features/permissions.prf | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/mkspecs/features/permissions.prf b/mkspecs/features/permissions.prf new file mode 100644 index 0000000000..ac5f2cb108 --- /dev/null +++ b/mkspecs/features/permissions.prf @@ -0,0 +1,40 @@ + +isEmpty(QMAKE_INFO_PLIST): \ + return() + +plist_path = $$absolute_path($$QMAKE_INFO_PLIST, $$_PRO_FILE_PWD_) + +!exists($$plist_path): \ + return() + +for(plugin, QT_PLUGINS) { + !equals(QT_PLUGIN.$${plugin}.TYPE, permissions): \ + next() + + usage_descriptions = $$eval(QT_PLUGIN.$${plugin}.usage_descriptions) + + found_usage_description = false + for(usage_description_key, usage_descriptions) { + usage_description = $$system("/usr/libexec/PlistBuddy" \ + "-c 'print $$usage_description_key' $$plist_path 2>/dev/null", \ + singleLine, exit_code) + + !equals(exit_code, 0): \ + next() + + !isEmpty(usage_description) { + found_usage_description = true + break() + } + } + + !$$found_usage_description: \ + next() + + request_flag = $$eval(QT_PLUGIN.$${plugin}.request_flag) + + QTPLUGIN += $$plugin + QMAKE_LFLAGS += $$request_flag + + QMAKE_INTERNAL_INCLUDED_FILES *= $$QMAKE_INFO_PLIST +} |