pipedal_kconfig links against libftxui-component.so, libftxui-dom.so,
and libftxui-screen.so built via FetchContent. Without explicit install
rules, these are missing after installation on distros that don't
provide ftxui as a system package (e.g. Arch), causing
'cannot open shared object file' at runtime.
Also update the comment to reflect all three dependency groups:
SQLiteCpp, libzip, and ftxui.
- Wrap notices.txt install in if(NOT PIPEDAL_DISABLE_COPYRIGHT_BUILD)
so the install doesn't fail when copyright generation is skipped.
- Add explicit install rules for libSQLiteCpp.so.0, libsqlite3.so,
and libzip.so.5. These are built from submodules but their own
install targets are suppressed (SQLITECPP_INSTALL=OFF,
LIBZIP_DO_INSTALL=OFF), so they were never copied to /usr/lib,
causing 'cannot open shared object file' errors on distros
without these as system packages (e.g. Arch vs Ubuntu).
Replace dpkg-deb -x (Debian-specific) with ar + tar for portable
.deb extraction. The script now handles .deb archives using standard
tools available on all Linux distributions.
GCC 16 on Arch Linux no longer implicitly includes certain standard
headers. This causes 'not declared' errors for POSIX functions.
- PiPedalCommon/src/CMakeLists.txt: Link asound library for ALSA sequencer
- DBusDispatcher.cpp: Add <unistd.h> for read()/write()/close()
- AuxInTest.cpp: Add <unistd.h> for sleep()
- kconfigMain.cpp: Add <unistd.h> for getuid()
- ModFileTypes.cpp: Add <mutex> for std::mutex/std::lock_guard
SQLiteCpp's option(BUILD_SHARED_LIBS OFF) sets the variable in cache,
which then leaks into libzip's build. libzip defaults to ON but sees
the cached OFF value, causing it to attempt linking against
zstd::libzstd_static which doesn't exist when only the shared library
is installed (e.g., on Arch Linux).
Fix by explicitly setting BUILD_SHARED_LIBS=ON before add_subdirectory(libzip).
Replace dpkg --print-architecture (Debian-specific) with a portable
cmake-based approach using CMAKE_SYSTEM_PROCESSOR mapped to Debian
architecture names (x86_64→amd64, aarch64→arm64, armv7l→armhf, i686→i386).
Updated the README.md to reflect changes in PiPedal v2.0, including new features and installation instructions.
Signed-off-by: Robin Davies <rerdavies@gmail.com>
This time taking into account logarithmic scale. Refactored range conversion
functions across the codebase too, as there were similar functions
in different files.