diff --git a/.github/scripts/build-and-test.sh b/.github/scripts/build-and-test.sh index fcf9cc1..f90da07 100755 --- a/.github/scripts/build-and-test.sh +++ b/.github/scripts/build-and-test.sh @@ -4,8 +4,8 @@ set -e meson setup -Dprefix=/usr -Dsysconfdir=/etc -Dlocalstatedir=/var -Dnls=enabled build cd build -ninja -ninja test +meson compile +meson test meson dist # Print bugreport output diff --git a/INSTALL.md b/INSTALL.md index 999d0f8..3f810d0 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -5,22 +5,18 @@ Build has been tested on the following operating systems (x86-64 only): * Ubuntu 22.04 LTS * Ubuntu 24.04 LTS -* macOS Big Sur 11 -* macOS Monterey 12 +* macOS (latest tag on Github, ARM) # Prerequisites ## Required Packages -* automake -* autoconf -* autopoint +* meson +* ninja * gettext * hidapi + headers * inih -* libtool * libusb-1.0 + headers -* libevdev + headers (on Linux) * pkg-config * python3 (3.6 or greater) * git (not required for builds, but necessary to clone the repository) @@ -29,15 +25,16 @@ Build has been tested on the following operating systems (x86-64 only): | Platform | Install instructions | | -------- | -------------------- | -| Ubuntu | `sudo apt-get install automake autoconf gettext autopoint libhidapi-dev libevdev-dev libtool libusb-1.0-0-dev libinih-dev pkg-config python3 git` | -| MacOS + Homebrew | `brew install automake autoconf gettext hidapi libtool libusb pkg-config python3 git` | -| Arch Linux | `pacman -S base-devel libusb hidapi libevdev libinih python git` | -| Fedora | `sudo dnf install autoconf automake gettext-devel findutils libtool hidapi-devel libusb-devel libevdev-devel inih-devel pkg-config python3 git` | +| Ubuntu | `sudo apt-get install meson gettext libhidapi-dev libevdev-dev libusb-1.0-0-dev libinih-dev pkg-config python3 git` | +| MacOS + Homebrew | `brew install meson gettext hidapi libtool libusb pkg-config python3 git` | +| Arch Linux | `pacman -S base-devel meson libusb hidapi libevdev libinih python git` | +| Fedora | `sudo dnf install meson gettext-devel findutils hidapi-devel libusb-devel libevdev-devel inih-devel pkg-config python3 git` | ## Optional Packages * doxygen - to generate HTML documentation and man pages * libcmocka (1.1 or greater) + headers - to run unit tests +* libevdev + headers (on Linux) - to add virtual keyboard/mouse support # Installation Instructions @@ -49,37 +46,36 @@ git clone https://github.com/nirenjan/libx52.git 2. Run autogen.sh ``` cd ./libx52 -./autogen.sh +meson setup build -Dprefix=/usr ``` 3. Run the following commands: ``` -./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc -make && sudo make install +meson compile -C build && meson install -C build ``` -You may want to remove or edit the `--prefix=/usr` option, most users prefer -non-distro binaries in `/usr/local` (default without `--prefix`) or `/opt`. +You may want to remove or edit the `-Dprefix=/usr` option, most users prefer +non-distro binaries in `/usr/local` (default without `-Dprefix`) or `/opt`. ## Configuration options ### udev The configuration system should automatically detect the udev rules directory, -but you can override it by using the following argument to `configure`: +but you can override it by using the following argument to `meson setup`: ``` ---with-udevrulesdir=/path/to/udev/rules.d +-Dudev-rules-dir=/path/to/udev/rules.d ``` ### Input group The udev rules that are installed provide read/write access to members of the input devices group. This defaults to `plugdev`, but can be modified using -the following argument to `configure`: +the following argument to `meson setup`: ``` ---with-input-group=group +-Dinput-group=group ``` ### Systemd support @@ -89,13 +85,13 @@ itself to run in the background. Typical deployments with systemd will have it run in the foreground, and disable timestamps in the logs, since those are inserted automatically by journald. -Systemd support is enabled by default, but can be disabled with the -`--disable-systemd` argument to `configure` +Systemd support is enabled by default, which disables timestamps in the program +logs, but you can re-enable timestamps by passing `-Dsystemd-logs=disabled` +argument to `meson setup` It is also possible to configure the directory in which the service file is -installed with the following option. This is ignored if you have specified -`--disable-systemd`. +installed with the following option. This is ignored if systemd is not found. ``` ---with-systemdsystemunitdir=/path/to/systemd/system +-Dsystemd-unit-dir=/path/to/systemd/system ```