Commit 7beba986 authored by Robert Maynard's avatar Robert Maynard Committed by Brad King
Browse files

Qt4Macros: Make QT4_CREATE_MOC_COMMAND a function

QT4_CREATE_MOC_COMMAND is given a moc_flags argument that contains the
COMPILE_DEFINITIONS and a potentially large list of include directories.
Since it is a macro, the ${moc_flags} reference is replaced with this
content and sent through cmMakefile::ExpandVariablesInString (EVIS).
Since commit v3.0.0-rc1~138^2 (Qt4: Use generator expression in
COMPILE_DEFINITIONS, 2014-01-13) the COMPILE_DEFINITIONS value contains
a '$' so the EVIS fast-path is no longer used.  Instead the full
cmCommandArgumentParserHelper is now used on the large input, which is
very slow (since it was originally created for hand-written code).

Change QT4_CREATE_MOC_COMMAND to a function instead of a macro to avoid
passing large content through EVIS.  This makes it significantly faster.
parent a48de7d8
...@@ -103,7 +103,7 @@ endmacro() ...@@ -103,7 +103,7 @@ endmacro()
# helper macro to set up a moc rule # helper macro to set up a moc rule
macro (QT4_CREATE_MOC_COMMAND infile outfile moc_flags moc_options moc_target) function (QT4_CREATE_MOC_COMMAND infile outfile moc_flags moc_options moc_target)
# 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
# Pass the parameters in a file. Set the working directory to # Pass the parameters in a file. Set the working directory to
# be that containing the parameters file and reference it by # be that containing the parameters file and reference it by
...@@ -144,7 +144,7 @@ macro (QT4_CREATE_MOC_COMMAND infile outfile moc_flags moc_options moc_target) ...@@ -144,7 +144,7 @@ macro (QT4_CREATE_MOC_COMMAND infile outfile moc_flags moc_options moc_target)
DEPENDS ${infile} DEPENDS ${infile}
${_moc_working_dir} ${_moc_working_dir}
VERBATIM) VERBATIM)
endmacro () endfunction ()
macro (QT4_GENERATE_MOC infile outfile ) macro (QT4_GENERATE_MOC infile outfile )
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment