Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
6.7, 6.8
-
None
-
-
8
-
35b1ec606 (dev), 0260ea192 (dev), b520c6692 (dev)
Description
When we moved away from using sync.profile perl fragments to record the public headers, I wrote a quick and dirty parser, qtqa/scripts/api-review/cmakescan.py, to extract that information from our CMake config. It assumed, simplistically, that each Qt module was created by a (unique) qt_internal_add_*_module() call that contained all the information we need.
It turns out that qtgraphs has more sophisticated CMake config: src/CMakeLists.txt has various features to take into account, that switch it between different places that it calls qt_internal_add_qml_module(Graphs …), after which it goes on to some add_subdirectory() calls and those subdirectories' CMakeLists.txt may qt_internal_extend_target(Graphs …) which may extend the list of relevant sources. Of course, there may be other modules that do similar, especially the subdirectories.
The parser thus needs to be a bit more sophisticated: in particular, it needs to notice add_subdirectory() and actually scan the CMakeLists.txt files of those, recursively, for additions to the module.
Where there are several qt_internal_add_*_module() for the same Qt module, the list of sources should, of course, be the union of those from all calls.
Attachments
For Gerrit Dashboard: QTQAINFRA-6317 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
561143,4 | Recurse into subdirecties from CMakeLists.txt on add_subdirectory(...) | dev | qt/qtqa | Status: MERGED | +2 | 0 |
561404,2 | Ensure newline after each header in cmakescan.py | dev | qt/qtqa | Status: MERGED | +2 | 0 |
561405,2 | Recursive traversal needs to yield from its recursion | dev | qt/qtqa | Status: MERGED | +2 | 0 |