aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2022-09-12 15:47:04 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2022-10-31 20:34:01 +0100
commitb8a329883d679f60daa1a353962f9f1ca5285783 (patch)
treeb146099313a4a2c55fee999382ae8527d84c98bf
parent1a55fe5440b7a96d5d79349b816f25c44b99da87 (diff)
CMake: Use _qt_internal_get_tool_wrapper_script_path
Instead of relying on the variable QT_TOOL_COMMAND_WRAPPER_PATH to be set, use the new _qt_internal_get_tool_wrapper_script_path function to get the path to the tool script wrapper. This allows an indirection layer to ensure the script wrapper is first created, regardless of whether we are building Qt, a user project or an example via ExternalProject in a prefix build. Task-number: QTBUG-90820 Task-number: QTBUG-96232 Change-Id: I87763fdcb3dbb337546b38ad8a1a6bd7f45cec21 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> (cherry picked from commit bc861f6121534e5681618a53b94604357cc24065)
-rw-r--r--src/qml/Qt6QmlMacros.cmake25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/qml/Qt6QmlMacros.cmake b/src/qml/Qt6QmlMacros.cmake
index 9e66b069fe..29798c2292 100644
--- a/src/qml/Qt6QmlMacros.cmake
+++ b/src/qml/Qt6QmlMacros.cmake
@@ -782,9 +782,10 @@ function(_qt_internal_target_enable_qmllint target)
_qt_internal_extend_qml_import_paths(import_args)
+ _qt_internal_get_tool_wrapper_script_path(tool_wrapper)
set(cmd
- ${QT_TOOL_COMMAND_WRAPPER_PATH}
- ${QT_CMAKE_EXPORT_NAMESPACE}::qmllint
+ ${tool_wrapper}
+ $<TARGET_FILE:${QT_CMAKE_EXPORT_NAMESPACE}::qmllint>
--bare
${import_args}
${qrc_args}
@@ -921,8 +922,10 @@ function(_qt_internal_target_enable_qmlcachegen target output_targets_var qmlcac
if(CMAKE_GENERATOR STREQUAL "Ninja Multi-Config" AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.20")
set(qmlcachegen "$<COMMAND_CONFIG:${qmlcachegen}>")
endif()
+
+ _qt_internal_get_tool_wrapper_script_path(tool_wrapper)
set(cmd
- ${QT_TOOL_COMMAND_WRAPPER_PATH}
+ ${tool_wrapper}
${qmlcachegen}
--resource-name "${qmlcache_resource_name}"
${qrc_resource_args}
@@ -1345,11 +1348,12 @@ function(_qt_internal_target_enable_qmltc target)
set(compiled_cpp "${target_binary_dir}/.qmltc/${target}/${file_name}.cpp")
get_filename_component(out_dir ${compiled_header} DIRECTORY)
+ _qt_internal_get_tool_wrapper_script_path(tool_wrapper)
add_custom_command(
OUTPUT ${compiled_header} ${compiled_cpp}
COMMAND ${CMAKE_COMMAND} -E make_directory ${out_dir}
COMMAND
- ${QT_TOOL_COMMAND_WRAPPER_PATH}
+ ${tool_wrapper}
${qmltc_executable}
--bare
--header "${compiled_header}"
@@ -2099,11 +2103,13 @@ function(qt6_target_qml_sources target)
else()
set(qmlcachegen_cmd "${qmlcachegen}")
endif()
+
+ _qt_internal_get_tool_wrapper_script_path(tool_wrapper)
add_custom_command(
OUTPUT ${compiled_file}
COMMAND ${CMAKE_COMMAND} -E make_directory ${out_dir}
COMMAND
- ${QT_TOOL_COMMAND_WRAPPER_PATH}
+ ${tool_wrapper}
${qmlcachegen_cmd}
--bare
--resource-path "${file_resource_path}"
@@ -2234,6 +2240,7 @@ function(qt6_generate_foreign_qml_types source_target destination_qml_target)
set(registration_files_base ${source_target}_${destination_qml_target})
set(additional_sources ${registration_files_base}.cpp ${registration_files_base}.h)
+ _qt_internal_get_tool_wrapper_script_path(tool_wrapper)
add_custom_command(
OUTPUT
${additional_sources}
@@ -2242,7 +2249,7 @@ function(qt6_generate_foreign_qml_types source_target destination_qml_target)
${target_metatypes_json_file}
${QT_CMAKE_EXPORT_NAMESPACE}::qmltyperegistrar
COMMAND
- ${QT_TOOL_COMMAND_WRAPPER_PATH}
+ ${tool_wrapper}
$<TARGET_FILE:${QT_CMAKE_EXPORT_NAMESPACE}::qmltyperegistrar>
"--extract"
-o ${registration_files_base}
@@ -2438,6 +2445,7 @@ function(_qt_internal_qml_type_registration target)
)
endif()
+ _qt_internal_get_tool_wrapper_script_path(tool_wrapper)
add_custom_command(
OUTPUT
${type_registration_cpp_file}
@@ -2448,7 +2456,7 @@ function(_qt_internal_qml_type_registration target)
${QT_CMAKE_EXPORT_NAMESPACE}::qmltyperegistrar
"$<$<BOOL:${genex_list}>:${genex_list}>"
COMMAND
- ${QT_TOOL_COMMAND_WRAPPER_PATH}
+ ${tool_wrapper}
$<TARGET_FILE:${QT_CMAKE_EXPORT_NAMESPACE}::qmltyperegistrar>
${cmd_args}
-o ${type_registration_cpp_file}
@@ -2695,7 +2703,8 @@ but this file does not exist. Possible reasons include:
set(cmd_args "@${rsp_file}")
endif()
- set(import_scanner_args ${QT_TOOL_COMMAND_WRAPPER_PATH} ${tool_path} ${cmd_args})
+ _qt_internal_get_tool_wrapper_script_path(tool_wrapper)
+ set(import_scanner_args ${tool_wrapper} ${tool_path} ${cmd_args})
# Run qmlimportscanner to generate the cmake file that records the import entries
if(scan_at_build_time)