diff --git a/src/corelib/Qt6CoreMacros.cmake b/src/corelib/Qt6CoreMacros.cmake index 91dedbf71f..94e3bd057e 100644 --- a/src/corelib/Qt6CoreMacros.cmake +++ b/src/corelib/Qt6CoreMacros.cmake @@ -93,24 +93,32 @@ function(_qt_internal_create_moc_command infile outfile moc_flags moc_options set(extra_output_files "${outfile}.json") set(${out_json_file} "${extra_output_files}" PARENT_SCOPE) endif() - string (REPLACE ";" "\n" _moc_parameters "${_moc_parameters}") if(moc_target) set(_moc_parameters_file ${_moc_parameters_file}$<$>:_$>) set(targetincludes "$") set(targetdefines "$") - set(targetincludes "$<$:-I$,\n-I>\n>") - set(targetdefines "$<$:-D$,\n-D>\n>") + set(targetincludes "$<$:-I$>") + set(targetdefines "$<$:-D$>") + string(REPLACE ">" "$" _moc_escaped_parameters "${_moc_parameters}") + string(REPLACE "," "$" _moc_escaped_parameters "${_moc_escaped_parameters}") + + set(concatenated "$<$:${targetincludes};>$<$:${targetdefines};>$<$:${_moc_escaped_parameters};>") + + set(concatenated "$,EXCLUDE,^-[DI]$>") + set(concatenated "$") file (GENERATE OUTPUT ${_moc_parameters_file} - CONTENT "${targetdefines}${targetincludes}${_moc_parameters}\n" + CONTENT "${concatenated}" ) + set(concatenated) set(targetincludes) set(targetdefines) else() + string (REPLACE ";" "\n" _moc_parameters "${_moc_parameters}") file(WRITE ${_moc_parameters_file} "${_moc_parameters}\n") endif()