mirror of
https://github.com/cookiengineer/audacity
synced 2025-04-30 23:59:41 +02:00
A special mode `audacity_obey_system_dependencies` is added, so the build will fail if we could not build against a system package for some reason. The following packages are marked for the local build now: * **wxWidgets**: Ubuntu lacks support for 3.1.3. We can't build against 3.0 branch. * **portaudio**: there are issues, that prevent using a system version of portaudio. * **sqlite3**: Ubuntu package is very dated; we care about the performance and stability. * **nyquist**: Ubuntu has no package available. * **vamp**: Ubuntu has no development package available. * **portmixer**: Ubuntu has no package available. * **sbsms**: Ubuntu package is very dated; we care about the performance and stability. We use docker to create a clean build environment. Currently, `pkg-config` is used to locate the system libraries. There are few issues with `pkg-config` on Ubuntu: * It does not work with `lame` and `portmidi`. * The packaged files for `id3tag` and `mad` have wrong version. We fix such cases by copying the into `/usr/local/lib`.
CMake requires that its CMakeList.txt files follow the directory structure of the projects. However, for Audacity this would cause collision with existing CMakeList.txt files that e.g. expat and libsoxr already provide. Our solution is to have this proxy directory for lib-src to hold our version of the CMakeList.txt files. We did try bundling several libraries under one CMakeList.txt without using subdirectories. However, we were then fighting CMake too much - and did not have a clean separation of information between sub projects.