muon
Package
Section titled “Package”- Check
meson.crossand ensure its contents are valid formuon
Prepare
Section titled “Prepare”- Depends on itself or
mesonto cross compile on aglibchost muonfrommuon-bootstrapis binary identical tomuonfrommuonfrommuon-bootstrapso prefer 2 stage bootstrap instead of 3- Rename
build-bootstrap/muon-bootstraptobuild-bootstrap/muonto leverageglaucus-muonwhich callsmuonnotmuon-bootstrap
Configure
Section titled “Configure”- Prefer
builtin(default) tobestline(linenoisefork) asreadlineimplementation to prevent an additional dependency muonenables their builtinsamuraiby default removing the need to maintain a separate version or useCFLAGS=-DBOOTSTRAP_NO_SAMU)
-
muondefaults todefault_library=staticunlikemeson -
muon,mesonandcmakedo not supportexec-prefix -
muonnow supports--cross-fileusingmuon setup -p cross:<file> -
muondefaults to$prefix/comforsharedstatedir, whilemesondefaults to/var/libifprefix=/usr -
Alpine uses the following for
abuild-muon:
exec muon meson setup \ -Db_staticpic=true \ -Dpython.bytecompile=0 \ -Dwerror=false \- Check if we should set
$SAMUFLAGSformuon samu:- if
SAMUFLAGS=$MAKEFLAGSthen$MAKEFLAGSshould only contain-j X - glaucus adds an additional
-Oso this won’t work - still glaucus provides a
samuwrapper which passes-j Xtomuon samumaking this unnecessary?
- if
- Run
muon -C buildbefore configure options instead of providingbuildas the last argument? -Dcpp_std=c++17vsc++23formuon?
b_ndebug=truedisables assertionsbuildtype=releasesetsdebug=falsedefault_library=sharedprevents static libraries from being built (waylandandlibxkbcommon)default_both_libraries=sharedcontrols what is used internally for linking (defaults tosharedonmesonandautoonmuon)- Explicitly set both
default_libraryanddefault_both_librariestosharedas projects can override them otherwise (this is needed even whenmesondefaults todefault_library=shared) prefer_static=falseis the default on bothmuonandmesonabuild-mesonuses custom cross files on Alpine- When the prefix is
/usr:sysconfdirdefaults to/etc,localstatedirdefaults to/var, andsharedstatedirdefaults to/var/lib mesononly understandscpu_familyand notcpu
References
Section titled “References”- https://codeberg.org/kiss-community/repo/pulls/126
- https://codeberg.org/kiss-community/repo/pulls/148
- https://codeberg.org/kiss-community/repo/pulls/51
- https://codeberg.org/sewn/repo/src/branch/muon
- https://docs.muon.build/differences.html
- https://docs.muon.build/intro.html
- https://docs.muon.build/reference
- https://git.sr.ht/~lattis/muon/tree/master/item/src/meson_opts.c
- https://git.sr.ht/~lattis/muon/tree/master/item/src/script/options/global.meson
- https://github.com/mesonbuild/meson/issues/7037
- https://gitlab.alpinelinux.org/alpine/aports/-/issues/16133
- https://mesonbuild.com/Builtin-options.html
- https://mesonbuild.com/Commands.html
- https://mesonbuild.com/Cross-compilation.html
- https://mesonbuild.com/Reference-tables.html
- https://todo.sr.ht/~lattis/muon/107