Update ninja to 1.10.2
The 1.10.2 release is the first one which contains a universal binary (x86_64 and arm64) and is executed as an arm64 process on ARM macs. With the previous binary, ninja did run as a x86_64 process on ARM macs and as a result all tasks executed by ninja did run as x86_64 processes too. This lead to the following error when compiling the shared-mime-info package in an arm64 build (which is fixed after applying this patch):
[8/8] Generating freedesktop.org.xml with a custom command FAILED: data/freedesktop.org.xml /Users/jhbuild/gtk/source/shared-mime-info-2.1/data/freedesktop_generate.sh /Users/jhbuild/gtk/source/shared-mime-info-2.1 /Users/jhbuild/.cache/jhbuild/build/shared-mime-info-2.1 ninja: Entering directory `/Users/jhbuild/.cache/jhbuild/build/shared-mime-info-2.1' [0/1] Running external command shared-mime-info-gmo (wrapped by meson to set env) Traceback (most recent call last): File "/Users/jhbuild/gtk/inst/bin/itstool", line 27, in <module> import libxml2 File "/Users/jhbuild/gtk/inst/lib/python3.8/site-packages/libxml2.py", line 1, in <module> import libxml2mod ImportError: dlopen(/Users/jhbuild/gtk/inst/lib/python3.8/site-packages/libxml2mod.so, 0x0002): tried: '/Users/jhbuild/gtk/inst/lib/python3.8/site-packages/libxml2mod.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/usr/local/lib/libxml2mod.so' (no such file), '/usr/lib/libxml2mod.so' (no such file)
Apart from that, I was able to compile Geany for arm64, I just had to manually cap the rust version to 1.52.2 because of this problem
and also meson to 0.59.2 because of this:
Apart from these issues, the arm64 build went just fine. I was also surprised I was able to cross-compile x86_64 Geany on a M1 mac from within a x86_64 shell
env /usr/bin/arch -x86_64 /bin/zsh --login
and the binary works on an Intel-based mac without any problems too.