BUG: Fix FindQt4.cmake QT4_CREATE_MOC_COMMAND macro to work with spaces in the path while using the @ syntax on MSYS builds.

This commit is contained in:
Brad King 2008-02-13 14:35:10 -05:00
parent c327b569f0
commit 9439cbd4ba
1 changed files with 12 additions and 1 deletions

View File

@ -930,6 +930,16 @@ IF (QT4_QMAKE_FOUND)
MACRO (QT4_CREATE_MOC_COMMAND infile outfile moc_includes moc_options) MACRO (QT4_CREATE_MOC_COMMAND infile outfile moc_includes moc_options)
# For Windows, create a parameters file to work around command line length limit # For Windows, create a parameters file to work around command line length limit
IF (WIN32) IF (WIN32)
# Pass the parameters in a file. Set the working directory to
# be that containing the parameters file and reference it by
# just the file name. This is necessary because the moc tool on
# MinGW builds does not seem to handle spaces in the path to the
# file given with the @ syntax.
GET_FILENAME_COMPONENT(_moc_outfile_name "${outfile}" NAME)
GET_FILENAME_COMPONENT(_moc_outfile_dir "${outfile}" PATH)
IF(_moc_outfile_dir)
SET(_moc_working_dir WORKING_DIRECTORY ${_moc_outfile_dir})
ENDIF(_moc_outfile_dir)
SET (_moc_parameters_file ${outfile}_parameters) SET (_moc_parameters_file ${outfile}_parameters)
SET (_moc_parameters ${moc_includes} ${moc_options} -o "${outfile}" "${infile}") SET (_moc_parameters ${moc_includes} ${moc_options} -o "${outfile}" "${infile}")
FILE (REMOVE ${_moc_parameters_file}) FILE (REMOVE ${_moc_parameters_file})
@ -937,8 +947,9 @@ IF (QT4_QMAKE_FOUND)
FILE (APPEND ${_moc_parameters_file} "${arg}\n") FILE (APPEND ${_moc_parameters_file} "${arg}\n")
ENDFOREACH(arg) ENDFOREACH(arg)
ADD_CUSTOM_COMMAND(OUTPUT ${outfile} ADD_CUSTOM_COMMAND(OUTPUT ${outfile}
COMMAND ${QT_MOC_EXECUTABLE} @${_moc_parameters_file} COMMAND ${QT_MOC_EXECUTABLE} @${_moc_outfile_name}_parameters
DEPENDS ${infile} DEPENDS ${infile}
${_moc_working_dir}
VERBATIM) VERBATIM)
ELSE (WIN32) ELSE (WIN32)
ADD_CUSTOM_COMMAND(OUTPUT ${outfile} ADD_CUSTOM_COMMAND(OUTPUT ${outfile}