diff options
author | Alexey Edelev <alexey.edelev@qt.io> | 2022-12-28 15:10:53 +0100 |
---|---|---|
committer | Alexey Edelev <alexey.edelev@qt.io> | 2023-01-02 23:16:30 +0100 |
commit | 947dd880cc2c1fc7973c0439ff8393e0f63f96a0 (patch) | |
tree | 38fac96174ce8520fc01f9cccf16481ab6dd6818 /cmake | |
parent | 0a746a30a58f122931208047b908f21f1a070128 (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.cmake | 48 |
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 |