summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorAlexey Edelev <alexey.edelev@qt.io>2022-12-28 15:10:53 +0100
committerAlexey Edelev <alexey.edelev@qt.io>2023-01-02 23:16:30 +0100
commit947dd880cc2c1fc7973c0439ff8393e0f63f96a0 (patch)
tree38fac96174ce8520fc01f9cccf16481ab6dd6818 /cmake
parent0a746a30a58f122931208047b908f21f1a070128 (diff)
Replace syncqt arguments with rsp file
syncqt arguments contain full paths and may exceed the supported command line size on some platforms. Use a single rsp file to pass all arguments to syncqt. Added the missing end-of-line terminators for error messages. Pick-to: 6.5 Change-Id: I60ad0f6770458d5256e67f042a63a3c16cd5ecb5 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/QtSyncQtHelpers.cmake48
1 files changed, 23 insertions, 25 deletions
diff --git a/cmake/QtSyncQtHelpers.cmake b/cmake/QtSyncQtHelpers.cmake
index 47e21ac6b8..1190b023d7 100644
--- a/cmake/QtSyncQtHelpers.cmake
+++ b/cmake/QtSyncQtHelpers.cmake
@@ -134,34 +134,33 @@ function(qt_internal_target_sync_headers target module_headers module_headers_ge
list(FILTER module_headers EXCLUDE REGEX
"(.+/(ui_)[^/]+\\.h|${CMAKE_CURRENT_SOURCE_DIR}(/.+)?/doc/+\\.h)")
- set(module_headers_rsp "${binary_dir_real}/${target}_module_headers")
- list(JOIN module_headers "\n" module_headers_string)
- qt_configure_file_v2(OUTPUT "${module_headers_rsp}" CONTENT "${module_headers_string}")
+ set(syncqt_staging_dir "${module_build_interface_include_dir}/.syncqt_staging")
- set(module_headers_generated_rsp "${binary_dir_real}/${target}_module_headers_generated")
- list(JOIN module_headers_generated "\n" module_headers_generated_string)
- qt_configure_file_v2(OUTPUT "${module_headers_generated_rsp}" CONTENT
- "${module_headers_generated_string}")
+ set(syncqt_args "${common_syncqt_arguments}")
+ list(APPEND syncqt_args
+ ${common_syncqt_arguments}
+ -headers ${module_headers}
+ -generatedHeaders ${module_headers_generated}
+ -stagingDir "${syncqt_staging_dir}"
+ -knownModules ${known_modules}
+ ${framework_args}
+ ${version_script_args}
+ )
+ list(JOIN syncqt_args "\n" syncqt_args_string)
+ set(syncqt_args_rsp "${binary_dir_real}/${target}_syncqt_args")
+ qt_configure_file_v2(OUTPUT "${syncqt_args_rsp}" CONTENT "${syncqt_args_string}")
- set(syncqt_staging_dir "${module_build_interface_include_dir}/.syncqt_staging")
add_custom_command(
OUTPUT
${syncqt_outputs}
COMMAND
${QT_CMAKE_EXPORT_NAMESPACE}::syncqt
- ${common_syncqt_arguments}
+ "@${syncqt_args_rsp}"
${build_time_syncqt_arguments}
- -headers "@${module_headers_rsp}"
- -generatedHeaders "@${module_headers_generated_rsp}"
- -stagingDir "${syncqt_staging_dir}"
- -knownModules ${known_modules}
- ${framework_args}
- ${version_script_args}
COMMAND
${CMAKE_COMMAND} -E touch "${syncqt_timestamp}"
DEPENDS
- ${module_headers_rsp}
- ${module_headers_generated_rsp}
+ ${syncqt_args_rsp}
${module_headers}
${QT_CMAKE_EXPORT_NAMESPACE}::syncqt
COMMENT
@@ -178,13 +177,17 @@ function(qt_internal_target_sync_headers target module_headers module_headers_ge
# available for qdoc.
# ${target}_sync_headers is added as dependency to make sure that
# ${target}_sync_all_public_headers is running after ${target}_sync_headers, when building docs.
+ set(syncqt_all_args "${common_syncqt_arguments};-all")
+ list(JOIN syncqt_all_args "\n" syncqt_all_args_string)
+ set(syncqt_all_args_rsp "${binary_dir_real}/${target}_syncqt_all_args")
+ qt_configure_file_v2(OUTPUT "${syncqt_all_args_rsp}" CONTENT "${syncqt_all_args_string}")
add_custom_target(${target}_sync_all_public_headers
COMMAND
${QT_CMAKE_EXPORT_NAMESPACE}::syncqt
- ${common_syncqt_arguments}
- -all
+ "@${syncqt_all_args_rsp}"
DEPENDS
${module_headers}
+ ${syncqt_all_args_rsp}
${QT_CMAKE_EXPORT_NAMESPACE}::syncqt
${target}_sync_headers
VERBATIM
@@ -223,12 +226,7 @@ function(qt_internal_target_sync_headers target module_headers module_headers_ge
execute_process(
COMMAND
${syncqt_location}
- ${common_syncqt_arguments}
- -headers "@${module_headers_rsp}"
- -generatedHeaders "@${module_headers_generated_rsp}"
- -stagingDir "${syncqt_staging_dir}"
- -knownModules ${known_modules}
- ${framework_args}
+ "@${syncqt_args_rsp}"
RESULT_VARIABLE syncqt_result
OUTPUT_VARIABLE syncqt_output
ERROR_VARIABLE syncqt_output