This is a follow-up to issues first discovered and raised in https://codereview.qt-project.org/c/qt/qtbase/+/329068
In qtbase/cmake/QtFlagHandlingHelpers.cmake, there are a range of internal functions that manipulate compiler and linker flags. Specifically, they set flags related to optimisation and debugging settings. The following observations were made:
- qt_internal_get_enabled_languages_for_flag_manipulation() only adds C, CXX, OBJC and OBJCXX languages. This means flags for ASM are not updated and end up being inconsistent with the specified languages.
- In qt_internal_set_up_config_optimizations_like_in_qmake(), for MSVC the linker flags are adjusted to remove any /INCREMENTAL* flags for all target link types, but when adding back the relevant flag for debug builds, they are only added for EXE and SHARED. The intention was to skip STATIC, but it also inadvertently skips MODULE.