aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qml/Qt6QmlBuildInternals.cmake22
-rw-r--r--src/qml/Qt6QmlMacros.cmake11
2 files changed, 19 insertions, 14 deletions
diff --git a/src/qml/Qt6QmlBuildInternals.cmake b/src/qml/Qt6QmlBuildInternals.cmake
index 2532d31cb9..6f44eceab1 100644
--- a/src/qml/Qt6QmlBuildInternals.cmake
+++ b/src/qml/Qt6QmlBuildInternals.cmake
@@ -271,11 +271,23 @@ function(qt_internal_add_qml_module target)
)
endif()
- # Empty list will not cause an installation error.
- qt_install(
- FILES $<TARGET_PROPERTY:${target},QT_QML_MODULE_FILES>
- DESTINATION "${arg_INSTALL_DIRECTORY}"
- )
+ if(DEFINED arg_QML_FILES)
+ foreach(qml_file IN LISTS arg_QML_FILES)
+ __qt_get_relative_resource_path_for_file(file_resource_path ${qml_file})
+ get_filename_component(resource_dir ${file_resource_path} DIRECTORY)
+ get_filename_component(resource_name ${file_resource_path} NAME)
+ if(resource_dir)
+ set(dest "${arg_INSTALL_DIRECTORY}/${resource_dir}")
+ else()
+ set(dest "${arg_INSTALL_DIRECTORY}")
+ endif()
+ qt_install(
+ FILES ${qml_file}
+ DESTINATION ${dest}
+ RENAME ${resource_name}
+ )
+ endforeach()
+ endif()
if(NOT arg_NO_GENERATE_QMLTYPES)
qt_install(
diff --git a/src/qml/Qt6QmlMacros.cmake b/src/qml/Qt6QmlMacros.cmake
index 66a47fcf87..b7cc657e68 100644
--- a/src/qml/Qt6QmlMacros.cmake
+++ b/src/qml/Qt6QmlMacros.cmake
@@ -1231,15 +1231,7 @@ function(qt6_target_qml_sources target)
# build-time rule. This avoids having to re-run CMake just to re-copy
# the file.
get_filename_component(file_absolute ${qml_file_src} ABSOLUTE)
- file(RELATIVE_PATH file_relative ${CMAKE_CURRENT_SOURCE_DIR} ${file_absolute})
-
- get_property(alias SOURCE ${qml_file_src} PROPERTY QT_RESOURCE_ALIAS)
- if(alias)
- set(file_resource_path ${alias})
- else()
- set(file_resource_path ${file_relative})
- endif()
-
+ __qt_get_relative_resource_path_for_file(file_resource_path ${qml_file_src})
set(qml_file_out ${output_dir}/${file_resource_path})
# Don't generate or copy the file in an in-source build if the source
@@ -1353,6 +1345,7 @@ function(qt6_target_qml_sources target)
QT_QML_MODULE_RESOURCE_PATHS ${file_resource_path}
)
+ file(RELATIVE_PATH file_relative ${CMAKE_CURRENT_SOURCE_DIR} ${file_absolute})
string(REGEX REPLACE "\\.(js|mjs|qml)$" "_\\1" compiled_file ${file_relative})
string(REGEX REPLACE "[$#?]+" "_" compiled_file ${compiled_file})
set(compiled_file "${CMAKE_CURRENT_BINARY_DIR}/.rcc/qmlcache/${target}/${compiled_file}.cpp")