1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-01 16:19:43 +02:00
audacity/cmake-proxies
Carlo Bramini 3a91981c86
[CMAKE] LV2: Fix conflict with main() (#468)
After compiling Audacity with MinGW, a strange message appeared on the console after the executable was launched:

# ./Audacity.exe
Usage: C:\msys64\home\Carlo\a\bin\Audacity.exe [OPTION]... INPUT...
Validate RDF data

  -h  Display this help and exit
  -l  Print errors on a single line.
  -v  Display version information and exit
Validate RDF data.  This is a simple validator which checks
that all used properties are actually defined.  It does not do
any fancy file retrieval, the files passed on the command line
are the only data that is read.  In other words, you must pass
the definition of all vocabularies used on the command line.

The problem happens because the file lv2/sord/src/sord_validate.c contains a main() function that was called by crt startup code instead of the one in the main sources of Audacity. The solution is to not include this unneeded file.
2020-03-24 22:58:28 -05:00
..
2020-02-12 01:05:51 -06:00
2020-02-19 10:53:50 -06:00
2020-02-23 03:57:31 -06:00
2020-02-23 03:57:31 -06:00
2018-04-01 09:23:11 +01:00
2020-02-19 10:53:50 -06:00
2018-04-01 09:23:11 +01:00

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.