Some Qt modules rely on being able to extract metatypes from a CMake target. 
That logic, implemented in the qt6_extract_metatypes() command from 
Qt6CoreMacros.cmake, requires CMake behavior that was added in CMake 3.16. The 
implementation of that command checks this and halts with an error if CMake 
3.15 or earlier is detected. That check has been there since Qt 6.0.0-alpha1. 
To our knowledge, there have been no bug reports related to this constraint.

Until now, we’ve been aiming to make CMake 3.14 the minimum version for user 
projects (it is higher for building Qt itself). The above demonstrates that we 
actually require 3.16 and have done so since the beginning of Qt6. Right now, 
this might only have affected projects that were using or depended on 
qtdeclarative, although my understanding is that users of qtremoteobjects might 
also be affected.

Given that we haven’t received any reports about this from user projects in the 
year since the code added this constraint, and that we expect to rely more on 
the metatypes going forward rather than less, the CMake Ports team proposes to 
raise the minimum CMake version for user projects to CMake 3.16. From what we 
can tell, the original target of 3.14 was likely based on the CMake versions 
available in major Linux distributions at the time, but 3.16 or later now seems 
to be widely enough available (Ubuntu 20.04 is the main blocker for being able 
to go any higher than 3.16).


Craig Scott



_______________________________________________
Development mailing list
[email protected]
https://lists.qt-project.org/listinfo/development

Reply via email to