• Robert Maynard's avatar
    Qt4Macros: Make QT4_CREATE_MOC_COMMAND a function · 7beba986
    Robert Maynard authored and Brad King's avatar Brad King committed
    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.
    7beba986