Skip to content

build: Allow to specify which system lua to use

Marvin Schmidt requested to merge marv/wireplumber:lua-system-version into master

On Exherbo we allow to install different Lua ABIs in parallel and users can choose per-package which Lua ABI to use, e.g.

media/wireplumber LUA_ABIS: -* 5.3

However, wireplumber's build system doesn't provide a way of explicitly requesting a specific version, which makes the build non-deterministic, since you get a different result if you install today with Lua 5.3 installed and reinstall tomorrow after installing Lua 5.4.

To fix this, I introduced a system-lua-version option that allows to specify an explicit Lua version to check for and build against:

$ meson .. -Dsystem-lua=true -Dsystem-lua-version=5.4 The Meson build system Version: 0.58.0 Source dir: /mnt/development/scm/freedesktop/wireplumber Build dir: /mnt/development/scm/freedesktop/wireplumber/build/reconfigure Build type: native build Project name: wireplumber Project version: 0.4.1 [...] Run-time dependency lua-5.4 found: YES 5.4.3 [...] Build targets in project: 56

wireplumber 0.4.1

Lua version                    : 5.4.3 (system)
systemd conf data              : YES

If the specified version isn't found, the build will fail loudly:

$ meson .. -Dsystem-lua=true -Dsystem-lua-version=5.5 [...] Found CMake: /usr/host/bin/cmake (3.20.5) Run-time dependency lua-5.5 found: NO (tried pkgconfig and cmake) Run-time dependency lua5.5 found: NO (tried pkgconfig and cmake)

../meson.build:50:6: ERROR: Problem encountered: Specified Lua version "5.5" not found

Merge request reports