aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/Qt6QmlMacros.cmake
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2020-10-06 10:42:46 +0200
committerUlf Hermann <ulf.hermann@qt.io>2020-10-06 11:10:01 +0200
commit3e47823cd1534f9167c8704d4b1c970105eca861 (patch)
tree65578ca884599883373f458e0485a50226220e25 /src/qml/Qt6QmlMacros.cmake
parent09b6ac481cc8027c79170706b329f028f33fb9f1 (diff)
CMake: Allow the same syntax for depends and import entries in qmldir
Our qmldir parser does the same now and we need it in order to declare auto dependencies. Task-number: QTBUG-87164 Change-Id: Ie70474e238283c2ba936aeff49fb35acfd843da6 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'src/qml/Qt6QmlMacros.cmake')
-rw-r--r--src/qml/Qt6QmlMacros.cmake22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/qml/Qt6QmlMacros.cmake b/src/qml/Qt6QmlMacros.cmake
index 6b24f34a2a..c155bac7d4 100644
--- a/src/qml/Qt6QmlMacros.cmake
+++ b/src/qml/Qt6QmlMacros.cmake
@@ -303,15 +303,19 @@ function(qt6_add_qml_module target)
foreach(dependency IN LISTS arg_DEPENDENCIES)
string(FIND ${dependency} "/" slash_position REVERSE)
if (slash_position EQUAL -1)
- message(FATAL_ERROR "Dependencies should follow the format 'ModuleName/VersionMajor.VersionMinor'")
- endif()
- string(SUBSTRING ${dependency} 0 ${slash_position} dep_module)
- math(EXPR slash_position "${slash_position} + 1")
- string(SUBSTRING ${dependency} ${slash_position} -1 dep_version)
- if (NOT dep_version MATCHES "[0-9]+\\.[0-9]+")
- message(FATAL_ERROR "Invalid module dependency version number. Expected VersionMajor.VersionMinor.")
+ string(APPEND qmldir_file_contents "depends ${dependency}\n")
+ else()
+ string(SUBSTRING ${dependency} 0 ${slash_position} dep_module)
+ math(EXPR slash_position "${slash_position} + 1")
+ string(SUBSTRING ${dependency} ${slash_position} -1 dep_version)
+ if (dep_version MATCHES "[0-9]+\\.[0-9]+" OR dep_version MATCHES "[0-9]+")
+ string(APPEND qmldir_file_contents "depends ${dep_module} ${dep_version}\n")
+ elseif (dep_version MATCHES "auto")
+ string(APPEND qmldir_file_contents "depends ${dep_module} auto\n")
+ else()
+ message(FATAL_ERROR "Invalid module dependency version number. Expected 'VersionMajor', 'VersionMajor.VersionMinor' or 'auto'.")
+ endif()
endif()
- string(APPEND qmldir_file_contents "depends ${dep_module} ${dep_version}\n")
endforeach()
file(WRITE ${qmldir_file} ${qmldir_file_contents})
@@ -575,7 +579,7 @@ function(qt6_qml_type_registration target)
# Extract major and minor version
if (NOT import_version MATCHES "[0-9]+\\.[0-9]+")
- message(FATAL_ERROR "Invalid module dependency version number. Expected VersionMajor.VersionMinor.")
+ message(FATAL_ERROR "Invalid module version number. Expected VersionMajor.VersionMinor.")
endif()
#string(FIND "${import_version}" "." dot_location)
#string(SUBSTRING ${import_version} 0 ${dot_location} major_version)