On macOS 10.15.6 (19G2021):
% make -C depends qt
...
Project ERROR: Unknown module(s) in QT: xml
...
The same issue was reported in #14648 for macOS 10.13.6. #18536 reports about the similar issue on ARM 32bit.
<!--e57a25ab6845829454e8d69fc972939a-->
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
<!--174a7506f384e20aa4161008e828411d-->
No conflicts as of last run.
Rebased 1f168e6297c151d49d5c0244bc43493000bb73cd -> eb185da00a5ef7de5ad86f8f490e02cd5244392e (pr19785.01 -> pr19785.02) due to the conflict with #19761.
~0
% make -C depends qt Project ERROR: Unknown module(s) in QT: xml
I think the issue here is more nuanced, otherwise macOS depends builds would be completely broken. I can recreate the failure (and have seen it before), but only when using a newer version of GNU make than I normally would for building. i.e I can build depends (2562d5d23863b6ef6cbdd9c34db5e485d9dc8406) using the stock macOS GNU Make 3.81 no problem. If I switch to using a brew installed GNU Make 4.3, that's when I see the same failure in qt as you:
Info: creating stash file /Users/michael/github/fanquake-bitcoin/depends/work/build/x86_64-apple-darwin19.6.0/qt/5.9.8-cecb3adcd3c/qttranslations/.qmake.stash
Info: creating stash file /Users/michael/github/fanquake-bitcoin/depends/work/build/x86_64-apple-darwin19.6.0/qt/5.9.8-cecb3adcd3c/qttools/.qmake.stash
Project ERROR: Unknown module(s) in QT: xml
gmake: *** [funcs.mk:263: /Users/michael/github/fanquake-bitcoin/depends/work/build/x86_64-apple-darwin19.6.0/qt/5.9.8-cecb3adcd3c/qtbase/.stamp_configured] Error 3
gmake: Leaving directory '/Users/michael/github/fanquake-bitcoin/depends'
So, it seems that when you're using make 3.8, lrelease doesn't need xml, and I'd like to think it's unlikely that the tool dependencies would differ dependent on the version of make being used.
Maybe there's a make related quirk somewhere in Qt that is causing it to break when using newer versions? In any case, without investigating further I'm not convinced this is required to fix the problem. Ideally it might just be something make related, and hopefully a bit less involved. Will try and have a look soon. Might also be worth testing if this also just goes away with the 5.15 bump.
FWIW, the Qt 5.9.8 code explicitly points to xml dependency:
include(../shared/formats.pri)
include(../shared/proparser.pri
QT *= xml
For the sake of keeping the Qt build as small as possible. I would really prefer a solution that doesn't require enabling xml.
This looks like an upstream issue?
This looks like an upstream issue?
I don't think so. Actually, *.ts files that are parsed by lrelease are XML files.
For another data point here. I've tested #19716 (updated to qt 5.15.1 but not yet pushed) with make 3.81 and make 4.3 and both build fine on macOS without any additional xml related changes. So this might be something that is just going to "fix itself".
I don't think we are going to go ahead with this change. This has been "broken" for some time now, and hasn't really been much of an inconvenience. As mentioned above, this will also be fixed with seemingly no additional changes when we move to qt 5.15, so I'm going to close this PR for now. I any case if we were to merge a change like this, I'd really like to know why master currently works with one version of make, and not another.