Commit Graph

114 Commits

Author SHA1 Message Date
George Kiagiadakis
b302ebd6ab 0.5.2 2024-04-22 17:19:47 +03:00
Stefan Ursella
473e463c56 meson: create the lib version like pipewire
If we use the project version as library version,
it is not possible to append something to the
project version to indicate a modified wireplumber version.
2024-04-18 09:35:23 +00:00
George Kiagiadakis
961450b2ac 0.5.1 2024-03-30 16:50:38 +02:00
George Kiagiadakis
59d190a2bd 0.5.0 2024-03-18 17:51:32 +02:00
Julian Bouzas
9caa44cfab meson: bump min pipewire version to 1.0.2
This is because of using 'api.bluez5.internal' property in bluez.lua.

See !589
2024-03-11 12:07:18 -04:00
George Kiagiadakis
e9d8eeedef log.h: define G_LOG_DOMAIN only if WP_USE_LOCAL_LOG_TOPIC_IN_G_LOG is defined
Define WP_USE_LOCAL_LOG_TOPIC_IN_G_LOG in project scope, so that we always
use this feature in our codebase without causing problems for other projects.

Fixes #571
2024-03-09 15:58:01 +02:00
George Kiagiadakis
3fa5228d22 meson: move the common CFLAGS to project-wide scope 2024-03-09 15:58:01 +02:00
George Kiagiadakis
2249d8d9df 0.4.90 (0.5.0~rc1) 2024-03-04 19:29:09 +02:00
Julian Bouzas
91b5ba5e92 meson: bump min pipewire version to 0.3.82 2024-03-04 16:13:47 +00:00
George Kiagiadakis
3d5cee55d8 meson: install configuration files back in $wireplumber_data_dir 2024-03-04 07:07:56 +00:00
George Kiagiadakis
5826a21456 0.4.82 (0.5.0 pre-release 2) 2024-02-14 18:40:30 +02:00
George Kiagiadakis
4c82e59163 0.4.81 2024-01-04 20:33:29 +02:00
George Kiagiadakis
c4a0f5317e meson: exclude rst files from being installed with the scripts
and add them nicely to the sphinx_files without referencing '..' paths
2023-12-13 16:31:50 +02:00
George Kiagiadakis
beafcf1ac3 config: install commented-out conf files as examples in /usr/share/doc/wireplumber/examples 2023-11-15 15:44:01 +02:00
Barnabás Pőcze
5e48a2afc1 meson.build: set WIREPLUMBER_CONFIG_DIR in devenv
This is needed for wireplumber to start up correctly in the meson
devenv when built as a subproject of pipewire. The reason for this
is that the value set for `PIPEWIRE_CONFIG_DIR` in the wireplumber
meson build file will be overriden when the pipewire meson files
set up another devenv with its own `PIPEWIRE_CONFIG_DIR`.
2023-11-03 03:24:23 +01:00
Pauli Virtanen
e0b09e7a76 main: try to connect preferably to the manager socket
Try to connect to the default manager remote, before trying the default
remote.

Check libpipewire version is new enough to support setting arrays.
Bump Pipewire version to have pw_check_library_version.
2023-10-30 20:00:57 +00:00
George Kiagiadakis
e738076cb0 conf: refactor component loading to use a dependency system
Each component can now list required and optional dependencies,
using the component feature names to match other components.
In addition, each component feature can be declared as required, optional
or disabled, making optional components easier to deal with.
The component flags (ifexists, nofail) have been removed.

Using virtual components, this system also allows easier customization
of which components should be loaded for a specific configuration,
without requiring the user to copy the list of components and edit it.

Also bump the required glib version to 2.68 for g_assert_cmpstrv()
2023-06-20 12:39:29 +03:00
George Kiagiadakis
5ce80a0528 meson: bump version to 0.4.80 and API version to 0.5 2023-05-19 20:20:35 +03:00
Julian Bouzas
310232b810 meson: install scripts in /usr/share/wireplumber
Since the wireplumber configuration has been moved to /usr/share/pipewire, it
does not makes sense to have a different path for the WIREPLUMBER_CONFIG_DIR
environment variable. Therefore, the WIREPLUMBER_CONFIG_DIR environment variable
has been changed to just be an alias of PIPEWIRE_CONFIG_DIR. Finally, Lua
scripts are now installed under /usr/share/wireplumber/scripts instead of
/usr/share/pipewire/scripts as they are a wireplumber feature only.
2023-04-17 07:48:18 -04:00
Julian Bouzas
5dcb4f0037 config: use the pipewire directory 2023-04-17 07:48:18 -04:00
George Kiagiadakis
6d0c7f7b7f 0.4.14 2023-03-09 16:37:42 +01:00
George Kiagiadakis
7cb1b8b92e release 0.4.13 2022-12-13 11:39:14 +02:00
Tom A. Wagner
7586d4d858 meson: Add options to configure whether to build daemon, tools and modules.
This adds three meson options to enable or disable building daemon, tools, and modules.

Building the daemon or tools depends on building the modules, and disabling modules without disabling
the other two will result in meson giving an appropriate error.

These new options will let users skip building and installing unneeded items when they are not needed,
e.g. when only using the C API in another application.
2022-11-23 10:06:11 +00:00
George Kiagiadakis
6f6e5df9c1 release 0.4.12 2022-10-04 16:25:09 +03:00
Barnabás Pőcze
d7c8bd29d4 meson.build: remove version check before setting up devenv
Since 2eed279c9d wireplumber requires at least meson 0.59.0,
and the devenv feature is available since 0.58.0, the version check
before adding the devenv is no longer needed. Remove it.
2022-07-22 21:06:38 +02:00
George Kiagiadakis
80b3559963 release 0.4.11 2022-07-05 16:22:15 +03:00
George Kiagiadakis
3400acd0db release 0.4.10 2022-05-10 17:31:57 +03:00
George Kiagiadakis
2eed279c9d i18n: remove the module and embed the gettext calls into the lua api
There is no need to have this as an optional module, since libintl
is a hard dependency of both PipeWire and GLib. This way we can keep
things a bit simpler and faster (no string copies and plugin lookups)

Bump meson dependency to 0.59 to benefit of the libintl lookup that
is now built into meson's dependency() function.
2022-05-10 15:16:09 +03:00
Pauli Virtanen
bbe9ac00f3 modules: add m-i18n
Add simple gettext i18n module.

Add Lua script API functions I18n.gettext, I18n.ngettext.
2022-04-11 19:20:43 +03:00
George Kiagiadakis
8b97b40c44 release 0.4.9 2022-03-22 13:38:58 +02:00
George Kiagiadakis
e14bb72dcc release 0.4.8 2022-02-07 18:52:10 +02:00
George Kiagiadakis
3731766a19 meson: require pipewire 0.3.45 for pw_context_conf_section_for_each() 2022-02-07 17:53:17 +02:00
George Kiagiadakis
afb177b5e0 release 0.4.7 2022-01-13 11:27:44 +02:00
George Kiagiadakis
9a733293d7 release 0.4.6 2022-01-06 18:11:51 +02:00
George Kiagiadakis
1c85139640 bump pipewire dep to 0.3.43
we now need it for spa_json_parse_stringn()
2022-01-05 18:13:10 +02:00
Barnabás Pőcze
0ff9ea9f33 meson.build: add devenv
meson devenv provides a convenient way of running the application
without installing it by overriding certain environment variables.
meson automatically overrides PATH and LD_LIBRARY_PATH, thus
there is no need to manually set those.

Running `meson devenv -C <builddir>` opens a new shell in the
build directory with the environment variables set up.
2021-12-20 10:06:36 +00:00
Julian Bouzas
664998c3de meson: set minimum pipewire version to 0.3.41 2021-12-13 08:37:07 -05:00
George Kiagiadakis
3946457a79 release 0.4.5 2021-11-11 12:35:25 +02:00
George Kiagiadakis
9e11aa5b8b release 0.4.4 2021-10-15 16:54:42 +03:00
Enrean Rean
477fc744de meson: add support for compiling module-logind with elogind
Closes #71
2021-10-15 13:36:30 +00:00
George Kiagiadakis
ca8d31141e meson: bump requirement to 0.56 to use meson.project_{source,build}_root() 2021-10-15 12:06:48 +03:00
Peter Hutterer
52aaf96179 wp-uninstalled: build this script with the meson dirs filled in
./builddir/wp-uninstalled.sh can now be called without a -b argument,
it'll automatically set the full paths. This is useful when building as
a subproject.

meson has a limitation: the configure_file() object is just a file
wrapper object. Wrap this into a custom_target() whose return value has
a full_path() method. This way, pipewire can use
wireplumber_uninstalled.full_path() without having to build the
directory structure itself.
2021-10-15 08:14:03 +00:00
George Kiagiadakis
03f14105cf si-audio-adapter: find the device format early and store format-specific flags
* find out if the node supports iec958 or dsd
* use spa_pod_fixate() to get the default format of the node, like p-m-s does
* use _enum_formats_sync() to utilize the param cache, assuming that the node
  always has all features enabled (which is always the case when coming from
  an ObjectManager that was defined in Lua)
* simplify the activation / deactivation procedure
* configure nodes with unpositioned channels early, as if they were devices
2021-10-12 20:00:10 +03:00
George Kiagiadakis
043fa7c9d6 release 0.4.3 2021-10-08 11:09:38 +03:00
George Kiagiadakis
a253aa4c49 modules: implement logind module and integrate with bluez monitor
This copies the logic of media-session's logind module and allows
the bluez monitor to be active in only one user session at a time.
This is especially useful to avoid interference between the gdm
session and the actual user session, which momentarily both have
wireplumber running when logging in/out.

Fixes #54
2021-09-27 18:30:32 +03:00
Sam James
3b24c419b4 meson: Build tests conditionally
It's useful downstream to be able to control building
tests, as there's not much use building them if we're
not going to run them.

Signed-off-by: Sam James <sam@gentoo.org>
2021-09-15 07:05:17 +00:00
George Kiagiadakis
fc7fc50c6f release 0.4.2 2021-08-19 18:05:43 +03:00
Marvin Schmidt
da8fc024f5 build: Allow to specify which system lua to use
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
2021-08-10 11:55:19 +03:00
Niklāvs Koļesņikovs
cb41ecc6c6 meson.build: adds summary() about Lua implementation used 2021-07-14 14:27:04 +00:00
Peter Hutterer
fd37c0cd2e meson.build: let meson handle the prefix + bindir concatination
For bindir, libdir and datadir, meson enforces that either
- the value is an absolute path that is a subdir of $prefix
- the value is a relative path that is then made a subdir of $prefix

Example meson error message:
ERROR: The value of the 'bindir' option is '/usr/foobar' which must be a subdir of the prefix '/usr/local'.
Note that if you pass a relative path, it is assumed to be a subdir of prefix.

And meson handles absolute paths for those directories correctly (ignoring
$prefix), so we don't need to manually compose those.

Only exception is sysconfdir which may be outside the prefix but there too
meson handles an absolute path correctly.
2021-07-06 09:40:39 +10:00