Skip to content

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.

Merge request reports