summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2020-06-30 15:05:23 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2020-07-01 10:03:47 +0200
commite9200ce4b06055eb85ab8c9e7a8a17e809f6bb91 (patch)
tree49449198f88d69ed204ec105d492780d9f7110f8 /cmake
parent3ac50d2f7176754bf015827442126ead2e5bc8a3 (diff)
CMake: Use non-sanitized plugin type names in .pri files
This is required for qmake to correctly pick up and use plugins that have strange characters in the types (slashes for platforms/darwin type and dashes for wayland plugin types). This fixes some issues with trying to build an iOS application using qmake due to the qiosnsphotolibrarysupport plugin. Task-number: QTBUG-85240 Task-number: QTBUG-84781 Task-number: QTBUG-82581 Change-Id: I94faf2d3dbbdeb22dbd96dfb11c7bff00645b524 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/QtBuild.cmake12
1 files changed, 10 insertions, 2 deletions
diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake
index 87c46c96e7..ec4a156d54 100644
--- a/cmake/QtBuild.cmake
+++ b/cmake/QtBuild.cmake
@@ -846,7 +846,7 @@ function(qt_generate_module_pri_file target)
if(arg_HEADER_MODULE)
set(module_plugin_types "")
else()
- get_target_property(module_plugin_types ${target} MODULE_PLUGIN_TYPES)
+ get_target_property(module_plugin_types ${target} QMAKE_MODULE_PLUGIN_TYPES)
if(module_plugin_types)
list(JOIN module_plugin_types " " module_plugin_types)
else()
@@ -1021,6 +1021,7 @@ endfunction()
function(qt_generate_plugin_pri_file target pri_file_var)
get_target_property(plugin_name ${target} OUTPUT_NAME)
get_target_property(plugin_type ${target} QT_PLUGIN_TYPE)
+ get_target_property(qmake_plugin_type ${target} QT_QMAKE_PLUGIN_TYPE)
get_target_property(default_plugin ${target} QT_DEFAULT_PLUGIN)
get_target_property(plugin_class_name ${target} QT_PLUGIN_CLASS_NAME)
@@ -1041,7 +1042,8 @@ function(qt_generate_plugin_pri_file target pri_file_var)
qt_path_join(pri_target_path ${QT_BUILD_DIR} ${INSTALL_MKSPECSDIR}/modules)
qt_path_join(pri_file "${pri_target_path}" "qt_plugin_${plugin_name}.pri")
- qt_configure_file(OUTPUT "${pri_file}" CONTENT "QT_PLUGIN.${plugin_name}.TYPE = ${plugin_type}
+ qt_configure_file(OUTPUT "${pri_file}"
+ CONTENT "QT_PLUGIN.${plugin_name}.TYPE = ${qmake_plugin_type}
QT_PLUGIN.${plugin_name}.EXTENDS = ${plugin_extends}
QT_PLUGIN.${plugin_name}.DEPENDS = ${plugin_deps}
QT_PLUGIN.${plugin_name}.CLASS_NAME = ${plugin_class_name}
@@ -2735,6 +2737,10 @@ function(qt_add_module target)
set_property(TARGET "${target}" APPEND PROPERTY MODULE_PLUGIN_TYPES "${plugin_type}")
qt_internal_add_qt_repo_known_plugin_types("${plugin_type}")
endforeach()
+
+ # Save the non-sanitized plugin type values for qmake consumption via .pri files.
+ set_property(TARGET "${target}"
+ PROPERTY QMAKE_MODULE_PLUGIN_TYPES "${arg_PLUGIN_TYPES}")
endif()
endif()
@@ -3605,6 +3611,8 @@ function(qt_internal_add_plugin target)
RUNTIME_OUTPUT_DIRECTORY "${output_directory}"
ARCHIVE_OUTPUT_DIRECTORY "${output_directory}"
QT_PLUGIN_TYPE "${plugin_type_escaped}"
+ # Save the non-sanitized plugin type values for qmake consumption via .pri files.
+ QT_QMAKE_PLUGIN_TYPE "${arg_TYPE}"
QT_PLUGIN_CLASS_NAME "${plugin_class_name}")
qt_handle_multi_config_output_dirs("${target}")