mirror of
https://github.com/cookiengineer/audacity
synced 2025-08-07 23:51:14 +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`.
57 lines
3.0 KiB
CMake
57 lines
3.0 KiB
CMake
# Allow user to globally set the library preference
|
|
cmd_option( ${_OPT}lib_preference
|
|
"Library preference [system (if available), local]"
|
|
"system"
|
|
STRINGS "system" "local"
|
|
)
|
|
|
|
# Special mode, that will force dependencies to the packages provided by system unless they were set to local explicitly.
|
|
cmd_option( ${_OPT}obey_system_dependencies
|
|
"Use system packages to satisfy dependencies"
|
|
Off
|
|
)
|
|
|
|
# Required libraries
|
|
#
|
|
# directory option symbol req chk version
|
|
addlib( wxWidgets wxwidgets WX YES NO "" ) # must be first
|
|
addlib( expat expat EXPAT YES YES "expat >= 2.1.0" )
|
|
addlib( lame lame LAME YES YES "lame >= 3.100" )
|
|
addlib( libsndfile sndfile SNDFILE YES YES "sndfile >= 1.0.28" )
|
|
addlib( libsoxr soxr SOXR YES YES "soxr >= 0.1.1" )
|
|
addlib( portaudio-v19 portaudio PORTAUDIO YES YES "" )
|
|
addlib( sqlite sqlite SQLITE YES YES "sqlite3 >= 3.32.0" )
|
|
|
|
# Optional libraries
|
|
#
|
|
# directory option symbol req chk version
|
|
addlib( ffmpeg ffmpeg FFMPEG NO NO "libavcodec >= 51.53" "libavformat >= 52.12" "libavutil >= 52.66" )
|
|
addlib( libid3tag id3tag LIBID3TAG NO YES "id3tag >= 0.15.1b" )
|
|
addlib( libmad mad LIBMAD NO YES "mad >= 0.15.1b" )
|
|
addlib( libnyquist nyquist NYQUIST NO YES "" )
|
|
addlib( libvamp vamp VAMP NO YES "vamp >= 2.5" "vamp-hostsdk >= 2.5" )
|
|
addlib( libogg ogg LIBOGG NO YES "ogg >= 1.3.1" )
|
|
addlib( libvorbis vorbis LIBVORBIS NO YES "vorbis >= 1.3.3" "vorbisenc >= 1.3.3" "vorbisfile >= 1.3.3" )
|
|
addlib( libflac flac LIBFLAC NO YES "flac >= 1.3.1" "flac++ >= 1.3.1" )
|
|
addlib( lv2 lv2 LV2 NO YES "lilv-0 >= 0.24.6" "lv2 >= 1.16.0" "serd-0 >= 0.30.2" "sord-0 >= 0.16.4" "sratom-0 >= 0.6.4" "suil-0 >= 0.10.6" )
|
|
|
|
addlib( portmidi midi MIDI NO YES "portmidi >= 0.1" )
|
|
if (NOT USE_MIDI AND
|
|
"EXPERIMENTAL_MIDI_OUT" IN_LIST EXPERIMENTAL_OPTIONS_LIST )
|
|
message(FATAL_ERROR "EXPERIMENTAL_MIDI_OUT requires USE_MIDI")
|
|
endif ()
|
|
|
|
|
|
addlib( portmixer portmixer PORTMIXER NO YES "" )
|
|
if (NOT USE_PORTMIXER AND
|
|
"EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT" IN_LIST
|
|
EXPERIMENTAL_OPTIONS_LIST )
|
|
message(FATAL_ERROR "EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT requires USE_PORTMIXER")
|
|
endif ()
|
|
|
|
addlib( portsmf portsmf PORTSMF NO YES "portSMF >= 0.1" )
|
|
addlib( libsbsms sbsms SBSMS NO YES "sbsms >= 2.2.0" )
|
|
addlib( soundtouch soundtouch SOUNDTOUCH NO YES "soundtouch >= 1.7.1" )
|
|
addlib( twolame twolame LIBTWOLAME NO YES "twolame >= 0.3.13" )
|
|
|