summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2019-08-09 11:42:37 +0200
committerSimon Hausmann <simon.hausmann@qt.io>2019-08-09 11:47:25 +0000
commit73ba2ba2def56b9eba852b1f7e884925e713535d (patch)
tree1115a36332d094c2f56fec918f291efa376dfce9 /cmake
parentf55c6a4cb082a6dbd6e65a0696a998478febde27 (diff)
Simplify resource embedding for qml modules
* Add support for a QT_RESOURCE_PREFIX target property, that add_qt_resource respects. This makes it convenient to add files to the resource system for a project without the need to repeat prefixes. In qmake land with multiple resources they're repeated in the foo.prefix variables or in the prefix attribute in .qrc files. * Since /qt-project.org/imports is in the default QML import search path and the hierarchy under the import search paths is "regulated", we might as well make add_qml_module set QT_RESOURCE_PREFIX on the target. We can compute the correct value for that. This allows removing the redundant prefix from the add_qt_resource() calls for the qml files. Change-Id: Ic15130dc9e432340fc3edf93e35f2a803b4b40eb Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CMake Build Bot
Diffstat (limited to 'cmake')
-rw-r--r--cmake/QtBuild.cmake13
-rw-r--r--cmake/QtProperties.cmake7
2 files changed, 8 insertions, 12 deletions
diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake
index e39d8788f8..8ef77d6726 100644
--- a/cmake/QtBuild.cmake
+++ b/cmake/QtBuild.cmake
@@ -1905,8 +1905,6 @@ endfunction()
# to the module's URI where '.' is replaced with '/'. Use this to override the
# default substitution pattern.
# VERSION: Version of the qml module
-# RESOURCE_PREFIX: Resource import prefix to be prepended to the module's
-# target path.
# QML_PLUGINDUMP_DEPENDENCIES: Path to a dependencies.json file to be consumed
# with the ${target}_qmltypes target (optional)
#
@@ -1920,7 +1918,6 @@ function(add_qml_module target)
URI
TARGET_PATH
VERSION
- RESOURCE_PREFIX
QML_PLUGINDUMP_DEPENDENCIES
)
@@ -1939,10 +1936,6 @@ function(add_qml_module target)
message(FATAL_ERROR "add_qml_module called without specifying the module's import version. Please specify one using the VERSION parameter.")
endif()
- if (NOT arg_RESOURCE_PREFIX)
- message(FATAL_ERROR "add_qml_module called without specifying the module's import prefix. Prease specify one using the RESOURCE_PREFIX parameter.")
- endif()
-
if (NOT arg_TARGET_PATH)
string(REPLACE "." "/" arg_TARGET_PATH ${arg_URI})
endif()
@@ -1983,7 +1976,7 @@ function(add_qml_module target)
PROPERTIES
QT_QML_MODULE_TARGET_PATH ${arg_TARGET_PATH}
QT_QML_MODULE_URI ${arg_URI}
- QT_QML_MODULE_RESOURCE_PREFIX ${arg_RESOURCE_PREFIX}
+ QT_RESOURCE_PREFIX "/qt-project.org/imports/${arg_TARGET_PATH}"
QT_QML_MODULE_VERSION ${arg_VERSION}
)
@@ -2017,7 +2010,6 @@ function(add_qml_module target)
set(qmldir_resource_name "${qmldir_resource_name}_qmldir")
add_qt_resource(${target} ${uri_target}
FILES "${CMAKE_CURRENT_SOURCE_DIR}/qmldir"
- PREFIX "${arg_RESOURCE_PREFIX}/${arg_TARGET_PATH}"
)
endif()
@@ -2547,6 +2539,9 @@ function(add_qt_resource target resourceName)
set(resource_files ${rcc_FILES})
endif()
+ if(NOT rcc_PREFIX)
+ get_target_property(rcc_PREFIX ${target} QT_RESOURCE_PREFIX)
+ endif()
# Apply quick compiler pass
qt_quick_compiler_process_resources(${target} ${resourceName}
diff --git a/cmake/QtProperties.cmake b/cmake/QtProperties.cmake
index 5cc8ca7b11..43a7393cdf 100644
--- a/cmake/QtProperties.cmake
+++ b/cmake/QtProperties.cmake
@@ -79,11 +79,12 @@ define_property(TARGET
define_property(TARGET
PROPERTY
- QT_QML_MODULE_RESOURCE_PREFIX
+ QT_RESOURCE_PREFIX
BRIEF_DOCS
- "Specifies the qml module's resource prefix."
+ "Specifies the default Qt resource prefix."
FULL_DOCS
- "Specifies the qml module's resource prefix."
+ "When using add_qt_resource() without a PREFIX, then prefix of this target property
+ will be used."
)
define_property(TARGET