<div dir="ltr"><div><div><div>Hi Steve,<br><br>I just published a review request:<br><br><div style="margin-left:40px"><a href="https://git.reviewboard.kde.org/r/129900/">https://git.reviewboard.kde.org/r/129900/</a><br></div><br>You
 see from the notes that there is a set of unit tests included that I 
believe cover ~all the changes I made. You can also view the changes on 
github here:<br><br><div style="margin-left:40px"><a href="https://github.com/ShaheedHaque/extra-cmake-modules/tree/KDE_merge">https://github.com/ShaheedHaque/extra-cmake-modules/tree/KDE_merge</a><br></div><br></div><div>All told, and with the judicious use of slash'n'burn rules to trim uninteresting problems away, this can process all ~2300 .sip files for my /usr/include/KF5: the results can be read by the SIP compiler except in a handful of cases which are all to do with the semantics of the modules concerned (i.e. I believe they are not bugs in the sip_generator itself).<br><br>All
 the code is squashed into the single commit. Feedback welcome here or via reviewboard or via github.<br></div><br></div><div>Thanks, Shaheed<br></div><div><br>P.S. Not included in this 
request is the bulk tools (now renamed the module_generator and 
module_compiler): if you want, you can look at them in the second commit
 in this branch:<br><br><div style="margin-left:40px"><a href="https://github.com/ShaheedHaque/extra-cmake-modules/tree/KDE_master_unit_tests">https://github.com/ShaheedHaque/extra-cmake-modules/tree/KDE_master_unit_tests</a><br></div><br></div>The
 reason why that might be interesting is that the second commit has 
rules/support (not related to the module_xxx stuff) for automatically generating %MappedTypes for dicts (QMap 
and QHash), lists (QVector and QList) and sets (QSet) and also 1-D 
arrays as in "char [8]foo;". Though these all produce cleanly-compilable
 code, neither has been actually run in anger since I have not yet 
cracked the mystery of getting the right symbols exported (something to 
do with moc, I think). However, I feel the generated output demonstrates
 an approach which is VERY clean and arguably nicer than some of 
hand-written code out there. See <span class="gmail-css-truncate gmail-css-truncate-target"><a href="https://github.com/ShaheedHaque/extra-cmake-modules/blob/KDE_master_unit_tests/find-modules/module_generation/PyQt_template_typecode.py" class="gmail-js-navigation-open" id="gmail-83dc6b86fb63165f818fd8d76f8b3b69-c5d1aa7487bccec9bf11adfd395395ad2d7b1795" title="PyQt_template_typecode.py">https://github.com/ShaheedHaque/extra-cmake-modules/blob/KDE_master_unit_tests/find-modules/module_generation/PyQt_template_typecode.py</a></span><span class="gmail-css-truncate gmail-css-truncate-target">
 and 
<a href="https://github.com/ShaheedHaque/extra-cmake-modules/blob/KDE_master_unit_tests/find-modules/module_generation/PyKF5_rules/kio.py">https://github.com/ShaheedHaque/extra-cmake-modules/blob/KDE_master_unit_tests/find-modules/module_generation/PyKF5_rules/kio.py</a>.<br><br></span></div><div><span class="gmail-css-truncate gmail-css-truncate-target">I'll come back with these when the symbol problem is solved as I believe they are needed to properly unblock large chunks of KF5.<br></span></div></div>