On Thu, 25 Nov 2021, Thiago Macieira wrote:

macdeployqt is less of an issue because there's no good toolchain for cross-
compiling to a Mac. Apple does not provide the sources for their ld64 linker, for example.

They do provide sources for it, see e.g. https://opensource.apple.com/source/ld64/.

It is possible (although not very common) to do cross compilation to macOS - I maintain such a setup at https://github.com/mstorsjo/xcode-cross (based on repos where Thomas Pöchtrager maintain patched versions of cctools and ld64).

Cross compiling still requires a SDK root from Xcode (which afaik isn't redistributable), so my setup requires copying and stripping it down from a real Xcode install. (There are repos on github that provide the bare sysroots though, although I'm wouldn't bet on whether one can consider them redistributable like that - I haven't integrated scripts for making use of that.)

With this setup, I've successfully cross compiled at least Qt 5.x (I haven't tried with 6.x though). But I haven't used the qttools repo or the macdeployqt tool.

I don't know if lld is a good replacement.

These days (last 6-12 months roughly) lld has become pretty mature for targeting macOS for x86_64 and aarch64 (AFAIK current release versions of Chrome are built with it), but I haven't tried hooking it up in my setups.

Besides, they fork LLVM at an arbitrary point in the branch and may patch it.

Yup. Apple's opensource releases usually lag 6-12 months behind their latest versions of Xcode, but it's not usually very important to have an exact match of the tools. (My cross compilation setup even uses vanilla llvm.org Clang instead of Apple'e version, and that works fine for the cases I've built so far.)

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

Reply via email to