diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2020-10-06 10:42:46 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2020-10-06 11:10:01 +0200 |
commit | 3e47823cd1534f9167c8704d4b1c970105eca861 (patch) | |
tree | 65578ca884599883373f458e0485a50226220e25 /src/qml/Qt6QmlMacros.cmake | |
parent | 09b6ac481cc8027c79170706b329f028f33fb9f1 (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.cmake | 22 |
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) |