Autogen: Refactor cmQtAutoGenerators
The refactoring of cmQtAutoGenerators
serializes the program flow and
makes it less jumpy in terms of function calling.
Instead of keeping and passing multiple std::vectors
and std::maps
in
function arguments, single lists with job descriptions are used,
one job list for MOC, UIC, RCC respectively.
Several utility functions and methods were replaced with scoped lambdas
and the remaining methods were sorted by their scope (MOC, UIC, RCC).
Error and warning messages were refactored to be more verbose about the problem at hand.
The source parsing algorithms were rewritten in large parts.
In the process a lack of functionality of CMAKE_AUTOMOC_DEPEND_FILTERS
was discovered and fixed. CMAKE_AUTOMOC_DEPEND_FILTERS
did not extract
dependency file names from headers that were not in the target sources
but were registered to AUTOMOC
by a #include "moc_<NAME>.cpp"
statement.
QtAutogen test scripts were reformatted to be more readable and extended to cover more use cases.