Allow a function to be called when a target is "closed" / "finalized"
Upstream Qt issue https://bugreports.qt.io/browse/QTBUG-77377 Posting the description in here as well. Such a feature would allow providing cleaner CMake API for users of Qt and CMake. For example for pre-compiling QML files into some binary form, without this feature, you could have a hypothetical API as follows. ``` add_qml_module(Foo) qml_target_sources(Foo a.qml) if(APPLE) qml_target_sources(Foo b.qml) endif() more qml_target_source calls ..... qml_run_quick_compiler(Foo) ``` qml_run_quick_compiler needs to be called manually by a user after all qml_target_sources have been called. With the proposed feature, we could have a cleaner API where the user does not have to call qml_run_quick_compiler explicitly, it would be called automatically by CMake. ``` add_qml_module(Foo) qml_target_sources(Foo a.qml) if(APPLE) qml_target_sources(Foo b.qml) endif() more qml_target_source calls ..... ``` and inside add_qml_module you would have something like: ``` function(qml_run_quick_compiler target) ... set_property(TARGET ${target} PROPERTY CALL_ON_TARGET_FINALIZE "qml_run_quick_compiler") ... endfunction() ``` Thus the user can't accidentally forget to call qml_run_quick_compiler(), CMake would do it for them. Of course we should find a nice design on how to specify that a function needs to be called, and how are parameters passed to it.
issue