The key idea of the proposal linked below was to introduce a CMake function called
itk_configure_factory allowing to associate relevant properties to CMake targets.
Ultimately, for each target, this function will configure the header
and will set the following target properties:
COMPILE_DEFINITIONS with value
target_include_directories(<target> BEFORE PUBLIC <current_dir>/<target_name>)
While reviewing ITK PR-2836 discussing the addition of a new type of factory related to
FFT, I recalled about a proposal we put together to improve how factories are registered in ITK.
The original document was created in June 2016 and is publicly available as 2016.06.24_ITK_Improve_IO_Factory.