mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-16 08:09:32 +02:00
This corrects linking of the wxWidgets libraries when there's multiple copies and the desired one is later in the search path. This can affect any non-Windows system that doesn't have it's wxWidgets in "standard" libraries (like our wxWidgets builds on the Mac). The wrong wxWidgets libraries can be picked up by the linker if other "-L" arguments appear before the wxWidgets specific on. This can happen if you have something like Homebrew installed and CMake finds one of the libraries (like libogg) installed. It will put a "-L/usr/local/lib" in the linker arguments before the "-L/usr/local/x86_64" wxWidgets flag, and if there happens to be wxWidgets libs in /usr/local/lib, the linker will pull the wxWidgets libs from /usr/local/lib...not what was wanted.
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. We don't need the proxies for our own 'lib_src' such as mod-script-pipe and FileDialog, where we 'own' the CMakeList.txt file.