1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-12-27 15:08:39 +01:00

PortAudio devendored

Closes  #1413
Closes #1414

This commit addresses issues with building PortMixer
using the upstream version of PortAudio.

The resulting solution allows:
* To build Linux with the vanilla PortAudio.
* To build Windows with the vanilla PortAudio, but the notable exceptions:
  * for PortMixer to work on MME - PA 19.7.0 is required; only static linking     is supported. A patch is available to allow dynamic linking;
  * for PortMixer to work on DirectSound - the patch is always required.
Remove nyquist autotools
This commit is contained in:
Dmitry Vedenko
2021-08-12 15:48:15 +03:00
committed by Dmitry Vedenko
parent 394ddd2e35
commit e6fb573001
61 changed files with 737 additions and 54583 deletions

View File

@@ -106,6 +106,18 @@ add_conan_lib(
PKG_CONFIG "mad >= 0.15.0b" # Ubuntu has broken PC file
)
add_conan_lib(
PortAudio
portaudio/19.7.0
OPTION_NAME portaudio
ALLOW_FIND_PACKAGE
INTERFACE_NAME PortAudio::PortAudio
CONAN_OPTIONS
portaudio:shared=True
# Audacity doesn't support WDM/KS (yet)
portaudio:with_wdmks=False
)
if( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
set( curl_ssl "darwinssl" )
elseif( CMAKE_SYSTEM_NAME MATCHES "Windows" )
@@ -163,14 +175,12 @@ set_conan_vars_to_parent()
#
# directory option symbol req chk version
addlib( libsndfile sndfile SNDFILE YES YES "sndfile >= 1.0.28" )
addlib( portaudio-v19 portaudio PORTAUDIO YES YES "" )
addlib( sqlite sqlite SQLITE YES YES "sqlite3 >= 3.31.1" )
# Optional libraries
#
# directory option symbol req chk version
addlib( ffmpeg ffmpeg FFMPEG NO NO "libavcodec >= 51.53" "libavformat >= 52.12" "libavutil >= 52.66" )
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" )
@@ -184,14 +194,6 @@ if (NOT USE_MIDI AND
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" )

View File

@@ -0,0 +1,65 @@
#[[
A module to look for OSS
]]
if( NOT OSS_FOUND )
find_path(LINUX_OSS_INCLUDE_DIR "linux/soundcard.h"
HINTS "/usr/include" "/usr/local/include"
)
find_path(SYS_OSS_INCLUDE_DIR "sys/soundcard.h"
HINTS "/usr/include" "/usr/local/include"
)
find_path(MACHINE_OSS_INCLUDE_DIR "machine/soundcard.h"
HINTS "/usr/include" "/usr/local/include"
)
set( HAVE_SYS_SOUNDCARD_H No CACHE BOOL "sys/soundcard.h is available" FORCE )
set( HAVE_LINUX_SOUNDCARD_H No CACHE BOOL "linux/soundcard.h is available" FORCE )
set( HAVE_MACHINE_SOUNDCARD_H No CACHE BOOL "machine/soundcard.h is available" FORCE )
if( LINUX_OSS_INCLUDE_DIR )
set( OSS_FOUND True )
set( OSS_INCLUDE_DIR ${LINUX_OSS_INCLUDE_DIR} )
set( HAVE_LINUX_SOUNDCARD_H Yes CACHE BOOL "sys/soundcard.h is available" FORCE )
list( APPEND OSS_DEFINITIONS HAVE_LINUX_SOUNDCARD_H=1 )
elseif( SYS_OSS_INCLUDE_DIR )
set( OSS_FOUND True )
set( OSS_INCLUDE_DIR ${SYS_OSS_INCLUDE_DIR} )
set( HAVE_SYS_SOUNDCARD_H Yes CACHE BOOL "sys/soundcard.h is available" FORCE )
list( APPEND OSS_DEFINITIONS HAVE_SYS_SOUNDCARD_H=1 )
elseif( MACHINE_OSS_INCLUDE_DIR )
set( OSS_FOUND True )
set( OSS_INCLUDE_DIR ${MACHINE_OSS_INCLUDE_DIR} )
set( HAVE_MACHINE_SOUNDCARD_H Yes CACHE BOOL "sys/soundcard.h is available" FORCE )
list( APPEND OSS_DEFINITIONS HAVE_MACHINE_SOUNDCARD_H=1 )
endif()
if( OSS_FOUND )
if( NOT OSS_FIND_QUIETLY )
message( STATUS "Found OSS: \n\tOSS_INCLUDE_DIR: ${OSS_INCLUDE_DIR}" )
endif()
if( NOT TARGET OSS::OSS )
add_library( OSS::OSS INTERFACE IMPORTED GLOBAL)
target_include_directories( OSS::OSS INTERFACE ${OSS_INCLUDE_DIR} )
target_compile_definitions( OSS::OSS INTERFACE ${OSS_DEFINITIONS} )
endif()
else()
if( OSS_FIND_REQUIRED )
message( FATAL_ERROR "Could not find OSS")
endif()
endif()
mark_as_advanced(
OSS_FOUND
OSS_INCLUDE_DIR
OSS_DEFINITIONS
HAVE_LINUX_SOUNDCARD_H
HAVE_SYS_SOUNDCARD_H
HAVE_MACHINE_SOUNDCARD_H
)
endif()

View File

@@ -0,0 +1,31 @@
#[[
A module to look for PortAudio
]]
if( NOT PortAudio_FOUND )
find_path( PortAudio_INCLUDE_DIR portaudio.h )
find_library( PortAudio_LIBRARIES NAMES portaudio )
if( PortAudio_INCLUDE_DIR AND PortAudio_LIBRARIES )
set( PortAudio_FOUND Yes )
endif()
if( PortAudio_FOUND )
if( NOT PortAudio_FIND_QUIETLY )
message( STATUS "Found PortAudio: \n\tPortAudio_INCLUDE_DIR: ${PortAudio_INCLUDE_DIR}\n\tPortAudio_LIBRARIES: ${PortAudio_LIBRARIES}" )
endif()
if( NOT TARGET PortAudio::PortAudio )
add_library( PortAudio::PortAudio INTERFACE IMPORTED GLOBAL)
target_include_directories( PortAudio::PortAudio INTERFACE ${PortAudio_INCLUDE_DIR} )
target_link_libraries( PortAudio::PortAudio INTERFACE ${PortAudio_LIBRARIES} )
add_library(portaudio ALIAS PortAudio::PortAudio)
endif()
else()
if( PortAudio_FIND_REQUIRED )
message( FATAL_ERROR "Could not find PortAudio")
endif()
endif()
endif()

View File

@@ -1,305 +0,0 @@
add_library( ${TARGET} STATIC )
def_vars()
list( APPEND SOURCES
PRIVATE
# libnyquist
${TARGET_ROOT}/nyx.c
# libnyquist/nyquist/cmt
${TARGET_ROOT}/nyquist/cmt/cext.c
${TARGET_ROOT}/nyquist/cmt/cleanup.c
${TARGET_ROOT}/nyquist/cmt/cmdline.c
${TARGET_ROOT}/nyquist/cmt/cmtcmd.c
${TARGET_ROOT}/nyquist/cmt/mem.c
${TARGET_ROOT}/nyquist/cmt/midifile.c
${TARGET_ROOT}/nyquist/cmt/midifns.c
${TARGET_ROOT}/nyquist/cmt/moxc.c
${TARGET_ROOT}/nyquist/cmt/record.c
${TARGET_ROOT}/nyquist/cmt/seq.c
${TARGET_ROOT}/nyquist/cmt/seqmread.c
${TARGET_ROOT}/nyquist/cmt/seqmwrite.c
${TARGET_ROOT}/nyquist/cmt/seqread.c
${TARGET_ROOT}/nyquist/cmt/seqwrite.c
${TARGET_ROOT}/nyquist/cmt/tempomap.c
${TARGET_ROOT}/nyquist/cmt/timebase.c
${TARGET_ROOT}/nyquist/cmt/userio.c
# libnyquist/nyquist/cmupv
${TARGET_ROOT}/nyquist/cmupv/src/cmupv.c
${TARGET_ROOT}/nyquist/cmupv/src/cmupvdbg.c
${TARGET_ROOT}/nyquist/cmupv/src/internal.c
# libnyquist/nyquist/ffts
${TARGET_ROOT}/nyquist/ffts/src/fftext.c
${TARGET_ROOT}/nyquist/ffts/src/fftlib.c
${TARGET_ROOT}/nyquist/ffts/src/matlib.c
# libnyquist/nyquist/nyqsrc
${TARGET_ROOT}/nyquist/nyqsrc/add.c
${TARGET_ROOT}/nyquist/nyqsrc/avg.c
${TARGET_ROOT}/nyquist/nyqsrc/compose.c
${TARGET_ROOT}/nyquist/nyqsrc/convolve.c
${TARGET_ROOT}/nyquist/nyqsrc/debug.c
${TARGET_ROOT}/nyquist/nyqsrc/downsample.c
${TARGET_ROOT}/nyquist/nyqsrc/f0.cpp
${TARGET_ROOT}/nyquist/nyqsrc/falloc.c
${TARGET_ROOT}/nyquist/nyqsrc/ffilterkit.c
${TARGET_ROOT}/nyquist/nyqsrc/fft.c
${TARGET_ROOT}/nyquist/nyqsrc/handlers.c
${TARGET_ROOT}/nyquist/nyqsrc/inverse.c
${TARGET_ROOT}/nyquist/nyqsrc/local.c
${TARGET_ROOT}/nyquist/nyqsrc/lpanal.c
${TARGET_ROOT}/nyquist/nyqsrc/multiread.c
${TARGET_ROOT}/nyquist/nyqsrc/multiseq.c
${TARGET_ROOT}/nyquist/nyqsrc/phasevocoder.c
${TARGET_ROOT}/nyquist/nyqsrc/probe.c
${TARGET_ROOT}/nyquist/nyqsrc/pvshell.c
${TARGET_ROOT}/nyquist/nyqsrc/resamp.c
${TARGET_ROOT}/nyquist/nyqsrc/resampv.c
${TARGET_ROOT}/nyquist/nyqsrc/samples.c
${TARGET_ROOT}/nyquist/nyqsrc/seqext.c
${TARGET_ROOT}/nyquist/nyqsrc/seqfnint.c
${TARGET_ROOT}/nyquist/nyqsrc/seqinterf.c
${TARGET_ROOT}/nyquist/nyqsrc/sliderdata.c
${TARGET_ROOT}/nyquist/nyqsrc/sndfnint.c
${TARGET_ROOT}/nyquist/nyqsrc/sndmax.c
${TARGET_ROOT}/nyquist/nyqsrc/sndread.c
${TARGET_ROOT}/nyquist/nyqsrc/sndseq.c
${TARGET_ROOT}/nyquist/nyqsrc/sndsliders.c
${TARGET_ROOT}/nyquist/nyqsrc/sndwritepa.c
${TARGET_ROOT}/nyquist/nyqsrc/sound.c
${TARGET_ROOT}/nyquist/nyqsrc/stats.c
${TARGET_ROOT}/nyquist/nyqsrc/stoponzero.c
${TARGET_ROOT}/nyquist/nyqsrc/trigger.c
${TARGET_ROOT}/nyquist/nyqsrc/yin.c
# libnyquist/nyquist/nyqstk
${TARGET_ROOT}/nyquist/nyqstk/instr.cpp
${TARGET_ROOT}/nyquist/nyqstk/stkinit.cpp
${TARGET_ROOT}/nyquist/nyqstk/stkint.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/ADSR.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/BandedWG.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/BiQuad.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/Bowed.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/BowTable.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/Chorus.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/Clarinet.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/Delay.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/DelayA.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/DelayL.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/Effect.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/Envelope.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/FileRead.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/FileWvIn.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/Filter.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/Flute.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/Function.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/Generator.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/Instrmnt.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/JCRev.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/JetTable.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/Mandolin.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/Modal.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/ModalBar.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/Noise.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/NRev.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/OnePole.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/OneZero.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/PitShift.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/PluckTwo.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/PoleZero.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/PRCRev.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/ReedTable.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/Saxofony.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/SineWave.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/Sitar.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/Stk.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/WaveLoop.cpp
${TARGET_ROOT}/nyquist/nyqstk/src/WvIn.cpp
# libnyquist/nyquist/sys
#${TARGET_ROOT}/nyquist/sys/mac/macaboutbox.c
#${TARGET_ROOT}/nyquist/sys/mac/MacAE.c
#${TARGET_ROOT}/nyquist/sys/mac/MacCommandWin.c
#${TARGET_ROOT}/nyquist/sys/mac/macdrag.c
#${TARGET_ROOT}/nyquist/sys/mac/MacFileUtils.c
#${TARGET_ROOT}/nyquist/sys/mac/macfun.c
#${TARGET_ROOT}/nyquist/sys/mac/MacHandleEv.c
#${TARGET_ROOT}/nyquist/sys/mac/macint.c
#${TARGET_ROOT}/nyquist/sys/mac/macstuff.c
#${TARGET_ROOT}/nyquist/sys/mac/xlextstart.c
#${TARGET_ROOT}/nyquist/sys/unix/io.c
#${TARGET_ROOT}/nyquist/sys/unix/osstuff.c
#${TARGET_ROOT}/nyquist/sys/unix/term.c
#${TARGET_ROOT}/nyquist/sys/unix/termtest.c
#${TARGET_ROOT}/nyquist/sys/win/msvc/winfun.c
#${TARGET_ROOT}/nyquist/sys/win/msvc/winstuff.c
#${TARGET_ROOT}/nyquist/sys/win/wingui/winguistuff.c
#${TARGET_ROOT}/nyquist/sys/win/wingui/xlextstart.c
#${TARGET_ROOT}/nyquist/sys/win/wingui/xlispfns.c
# libnyquist/nyquist/tran
${TARGET_ROOT}/nyquist/tran/abs.c
${TARGET_ROOT}/nyquist/tran/allpoles.c
${TARGET_ROOT}/nyquist/tran/alpass.c
${TARGET_ROOT}/nyquist/tran/alpasscv.c
${TARGET_ROOT}/nyquist/tran/alpassvc.c
${TARGET_ROOT}/nyquist/tran/alpassvv.c
${TARGET_ROOT}/nyquist/tran/amosc.c
${TARGET_ROOT}/nyquist/tran/areson.c
${TARGET_ROOT}/nyquist/tran/aresoncv.c
${TARGET_ROOT}/nyquist/tran/aresonvc.c
${TARGET_ROOT}/nyquist/tran/aresonvv.c
${TARGET_ROOT}/nyquist/tran/atone.c
${TARGET_ROOT}/nyquist/tran/atonev.c
${TARGET_ROOT}/nyquist/tran/biquadfilt.c
${TARGET_ROOT}/nyquist/tran/buzz.c
${TARGET_ROOT}/nyquist/tran/chase.c
${TARGET_ROOT}/nyquist/tran/clip.c
${TARGET_ROOT}/nyquist/tran/congen.c
${TARGET_ROOT}/nyquist/tran/const.c
${TARGET_ROOT}/nyquist/tran/coterm.c
${TARGET_ROOT}/nyquist/tran/delaycc.c
${TARGET_ROOT}/nyquist/tran/delaycv.c
${TARGET_ROOT}/nyquist/tran/eqbandvvv.c
${TARGET_ROOT}/nyquist/tran/exp.c
${TARGET_ROOT}/nyquist/tran/fmfb.c
${TARGET_ROOT}/nyquist/tran/fmfbv.c
${TARGET_ROOT}/nyquist/tran/fmosc.c
${TARGET_ROOT}/nyquist/tran/follow.c
${TARGET_ROOT}/nyquist/tran/fromarraystream.c
${TARGET_ROOT}/nyquist/tran/fromobject.c
${TARGET_ROOT}/nyquist/tran/gate.c
${TARGET_ROOT}/nyquist/tran/ifft.c
${TARGET_ROOT}/nyquist/tran/instrbanded.c
${TARGET_ROOT}/nyquist/tran/instrbow.c
${TARGET_ROOT}/nyquist/tran/instrbowedfreq.c
${TARGET_ROOT}/nyquist/tran/instrclar.c
${TARGET_ROOT}/nyquist/tran/instrclarall.c
${TARGET_ROOT}/nyquist/tran/instrclarfreq.c
${TARGET_ROOT}/nyquist/tran/instrflute.c
${TARGET_ROOT}/nyquist/tran/instrfluteall.c
${TARGET_ROOT}/nyquist/tran/instrflutefreq.c
${TARGET_ROOT}/nyquist/tran/instrmandolin.c
${TARGET_ROOT}/nyquist/tran/instrmodalbar.c
${TARGET_ROOT}/nyquist/tran/instrsax.c
${TARGET_ROOT}/nyquist/tran/instrsaxall.c
${TARGET_ROOT}/nyquist/tran/instrsaxfreq.c
${TARGET_ROOT}/nyquist/tran/instrsitar.c
${TARGET_ROOT}/nyquist/tran/integrate.c
${TARGET_ROOT}/nyquist/tran/log.c
${TARGET_ROOT}/nyquist/tran/lpreson.c
${TARGET_ROOT}/nyquist/tran/maxv.c
${TARGET_ROOT}/nyquist/tran/offset.c
${TARGET_ROOT}/nyquist/tran/oneshot.c
${TARGET_ROOT}/nyquist/tran/osc.c
${TARGET_ROOT}/nyquist/tran/partial.c
${TARGET_ROOT}/nyquist/tran/pluck.c
${TARGET_ROOT}/nyquist/tran/prod.c
${TARGET_ROOT}/nyquist/tran/pwl.c
${TARGET_ROOT}/nyquist/tran/quantize.c
${TARGET_ROOT}/nyquist/tran/recip.c
${TARGET_ROOT}/nyquist/tran/reson.c
${TARGET_ROOT}/nyquist/tran/resoncv.c
${TARGET_ROOT}/nyquist/tran/resonvc.c
${TARGET_ROOT}/nyquist/tran/resonvv.c
${TARGET_ROOT}/nyquist/tran/sampler.c
${TARGET_ROOT}/nyquist/tran/scale.c
${TARGET_ROOT}/nyquist/tran/shape.c
${TARGET_ROOT}/nyquist/tran/sine.c
${TARGET_ROOT}/nyquist/tran/siosc.c
${TARGET_ROOT}/nyquist/tran/slope.c
${TARGET_ROOT}/nyquist/tran/sqrt.c
${TARGET_ROOT}/nyquist/tran/stkchorus.c
${TARGET_ROOT}/nyquist/tran/stkpitshift.c
${TARGET_ROOT}/nyquist/tran/stkrev.c
${TARGET_ROOT}/nyquist/tran/tapf.c
${TARGET_ROOT}/nyquist/tran/tapv.c
${TARGET_ROOT}/nyquist/tran/tone.c
${TARGET_ROOT}/nyquist/tran/tonev.c
${TARGET_ROOT}/nyquist/tran/upsample.c
${TARGET_ROOT}/nyquist/tran/white.c
# libnyquist/nyquist/xlisp
${TARGET_ROOT}/nyquist/xlisp/extern.c
${TARGET_ROOT}/nyquist/xlisp/path.c
${TARGET_ROOT}/nyquist/xlisp/security.c
${TARGET_ROOT}/nyquist/xlisp/xlbfun.c
${TARGET_ROOT}/nyquist/xlisp/xlcont.c
${TARGET_ROOT}/nyquist/xlisp/xldbug.c
${TARGET_ROOT}/nyquist/xlisp/xldmem.c
${TARGET_ROOT}/nyquist/xlisp/xleval.c
${TARGET_ROOT}/nyquist/xlisp/xlfio.c
${TARGET_ROOT}/nyquist/xlisp/xlftab.c
${TARGET_ROOT}/nyquist/xlisp/xlglob.c
${TARGET_ROOT}/nyquist/xlisp/xlimage.c
${TARGET_ROOT}/nyquist/xlisp/xlinit.c
${TARGET_ROOT}/nyquist/xlisp/xlio.c
${TARGET_ROOT}/nyquist/xlisp/xlisp.c
${TARGET_ROOT}/nyquist/xlisp/xljump.c
${TARGET_ROOT}/nyquist/xlisp/xllist.c
${TARGET_ROOT}/nyquist/xlisp/xlmath.c
${TARGET_ROOT}/nyquist/xlisp/xlobj.c
${TARGET_ROOT}/nyquist/xlisp/xlpp.c
${TARGET_ROOT}/nyquist/xlisp/xlprin.c
${TARGET_ROOT}/nyquist/xlisp/xlread.c
${TARGET_ROOT}/nyquist/xlisp/xlstr.c
${TARGET_ROOT}/nyquist/xlisp/xlsubr.c
${TARGET_ROOT}/nyquist/xlisp/xlsym.c
${TARGET_ROOT}/nyquist/xlisp/xlsys.c
)
list( APPEND INCLUDES
PRIVATE
${TARGET_ROOT}/nyquist/cmt
${TARGET_ROOT}/nyquist/cmupv/src
${TARGET_ROOT}/nyquist/ffts/src
${TARGET_ROOT}/nyquist/nyqsrc
${TARGET_ROOT}/nyquist/nyqstk
${TARGET_ROOT}/nyquist/nyqstk/include
${TARGET_ROOT}/nyquist/tran
${TARGET_ROOT}/nyquist/xlisp
$<$<BOOL:${UNIX}>:${TARGET_ROOT}/nyquist/sys/unix>
$<$<NOT:$<BOOL:${UNIX}>>:${TARGET_ROOT}/nyquist/sys/win/msvc>
PUBLIC
${TARGET_ROOT}
)
list( APPEND DEFINES
PRIVATE
CMTSTUFF
EXT
$<$<PLATFORM_ID:Windows>:WIN32>
)
list( APPEND OPTIONS
PRIVATE
$<$<PLATFORM_ID:Darwin>:-fno-common>
)
list( APPEND LIBRARIES
PRIVATE
portaudio-v19
libsndfile
)
organize_source( "${TARGET_ROOT}" "" "${SOURCES}" )
target_sources( ${TARGET} PRIVATE ${SOURCES} )
target_compile_definitions( ${TARGET} PRIVATE ${DEFINES} )
target_compile_options( ${TARGET} PRIVATE ${OPTIONS} )
target_include_directories( ${TARGET} PRIVATE ${INCLUDES} )
target_link_libraries( ${TARGET} PRIVATE ${LIBRARIES} )

View File

@@ -1,278 +0,0 @@
add_library( ${TARGET} STATIC )
def_vars()
set( CMAKE_MODULE_PATH ${TARGET_ROOT}/cmake_support )
# Define the platform specific interface options
if( CMAKE_SYSTEM_NAME MATCHES "Windows" )
if(DEFINED ENV{ASIOSDK_DIR} )
cmd_option(
${_OPT}use_pa_asio
"Use the portaudio ASIO interface if available"
YES
)
endif()
cmd_option(
${_OPT}use_pa_ds
"Use the portaudio DirectSound interface if available"
YES
)
cmd_option(
${_OPT}use_pa_wasapi
"Use the portaudio WASAPI interface if available"
YES
)
cmd_option(
${_OPT}use_pa_wmme
"Use the portaudio WMME interface if available"
YES
)
else()
# Look for OSS if the user wants it
cmd_option(
${_OPT}use_pa_oss
"Use the OSS audio interface if available"
YES
)
if( ${_OPT}use_pa_oss )
find_path( OSS_INCLUDE NAMES sys/soundcard.h )
mark_as_advanced( FORCE OSS_INCLUDE )
if( OSS_INCLUDE )
set( OSS_INCLUDE_DIRS ${OSS_INCLUDE} )
endif()
find_library( OSS_LIBRARY NAMES ossaudio )
mark_as_advanced( FORCE OSS_LIBRARY )
if( OSS_LIBRARY )
set( OSS_LIBRARIES ${OSS_LIBRARY} )
endif()
if( NOT OSS_INCLUDE_DIRS )
set_cache_value( ${_OPT}use_pa_oss NO )
endif()
endif()
if( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
cmd_option(
${_OPT}use_pa_coreaudio
"Use the portaudio CoreAudio interface if available"
YES
)
elseif( CMAKE_SYSTEM_NAME MATCHES "Linux|FreeBSD" )
cmd_option(
${_OPT}use_pa_alsa
"Use the portaudio ALSA interface if available"
YES
)
if( ${_OPT}use_pa_alsa )
find_package( ALSA )
if( NOT ALSA_FOUND )
set_cache_value( ${_OPT}use_pa_alsa NO )
endif()
endif()
endif()
endif()
# JACK can be dynamically loaded, linked to, or off
cmd_option( ${_OPT}use_pa_jack
"Use the JACK audio interface if available [loaded, linked, off]"
"linked"
STRINGS "loaded" "linked" "off"
)
if( NOT ${_OPT}use_pa_jack STREQUAL "off" )
# Find it
find_package( Jack )
if( NOT JACK_FOUND)
set_cache_value( ${_OPT}use_pa_jack "off" )
endif()
endif()
list( APPEND SOURCES
PRIVATE
${TARGET_ROOT}/src/common/pa_allocation.c
${TARGET_ROOT}/src/common/pa_converters.c
${TARGET_ROOT}/src/common/pa_cpuload.c
${TARGET_ROOT}/src/common/pa_debugprint.c
${TARGET_ROOT}/src/common/pa_dither.c
${TARGET_ROOT}/src/common/pa_dynload.c
${TARGET_ROOT}/src/common/pa_front.c
${TARGET_ROOT}/src/common/pa_process.c
${TARGET_ROOT}/src/common/pa_ringbuffer.c
${TARGET_ROOT}/src/common/pa_stream.c
${TARGET_ROOT}/src/common/pa_trace.c
$<$<PLATFORM_ID:Windows>:
${TARGET_ROOT}/src/os/win/pa_win_coinitialize.c
${TARGET_ROOT}/src/os/win/pa_win_hostapis.c
${TARGET_ROOT}/src/os/win/pa_win_util.c
${TARGET_ROOT}/src/os/win/pa_win_waveformat.c
${TARGET_ROOT}/src/os/win/pa_win_wdmks_utils.c
$<$<C_COMPILER_ID:MSVC>:
${TARGET_ROOT}/src/os/win/pa_x86_plain_converters.c
>
>
$<$<PLATFORM_ID:Darwin>:
${TARGET_ROOT}/src/hostapi/coreaudio/pa_mac_core.c
${TARGET_ROOT}/src/hostapi/coreaudio/pa_mac_core_blocking.c
${TARGET_ROOT}/src/hostapi/coreaudio/pa_mac_core_utilities.c
>
$<$<PLATFORM_ID:Darwin,Linux,FreeBSD,CYGWIN>:
${TARGET_ROOT}/src/os/unix/pa_unix_hostapis.c
${TARGET_ROOT}/src/os/unix/pa_unix_util.c
>
$<$<BOOL:${${_OPT}use_pa_asio}>:
${TARGET_ROOT}/src/hostapi/asio/iasiothiscallresolver.cpp
${TARGET_ROOT}/src/hostapi/asio/pa_asio.cpp
>
$<$<BOOL:${${_OPT}use_pa_ds}>:
${TARGET_ROOT}/src/hostapi/dsound/pa_win_ds.c
${TARGET_ROOT}/src/hostapi/dsound/pa_win_ds_dynlink.c
>
$<$<BOOL:${${_OPT}use_pa_wasapi}>:
${TARGET_ROOT}/src/hostapi/wasapi/pa_win_wasapi.c
>
$<$<BOOL:${${_OPT}use_pa_wmme}>:
${TARGET_ROOT}/src/hostapi/wmme/pa_win_wmme.c
>
$<$<BOOL:${${_OPT}use_pa_alsa}>:
${TARGET_ROOT}/src/hostapi/alsa/pa_linux_alsa.c
>
$<$<BOOL:${${_OPT}use_pa_oss}>:
${TARGET_ROOT}/src/hostapi/oss/pa_unix_oss.c
>
$<$<NOT:$<STREQUAL:${${_OPT}use_pa_jack},off>>:
${TARGET_ROOT}/src/hostapi/jack/pa_jack.c
${TARGET_ROOT}/src/hostapi/jack/pa_jack_dynload.c
>
)
list( APPEND EXTRASRC
PRIVATE
$<$<BOOL:${${_OPT}use_pa_asio}>:
$ENV{ASIOSDK_DIR}/common/asio.cpp
$ENV{ASIOSDK_DIR}/host/asiodrivers.cpp
$ENV{ASIOSDK_DIR}/host/pc/asiolist.cpp
>
)
list( APPEND INCLUDES
PRIVATE
${TARGET_ROOT}/src/common
$<$<PLATFORM_ID:Windows>:
${TARGET_ROOT}/src/os/win
>
$<$<PLATFORM_ID:Darwin,Linux,FreeBSD,CYGWIN>:
${TARGET_ROOT}/src/os/unix
>
$<$<BOOL:${${_OPT}use_pa_asio}>:
${TARGET_ROOT}/src/hostapi/asio
$ENV{ASIOSDK_DIR}/common
$ENV{ASIOSDK_DIR}/host
$ENV{ASIOSDK_DIR}/host/pc
>
$<$<BOOL:${${_OPT}use_pa_ds}>:
${TARGET_ROOT}/src/hostapi/dsound
>
$<$<BOOL:${${_OPT}use_pa_coreaudio}>:
${TARGET_ROOT}/src/hostapi/coreaudio
>
$<$<BOOL:${${_OPT}use_pa_alsa}>:
${ALSA_INCLUDE_DIRS}
>
$<$<BOOL:${${_OPT}use_pa_oss}>:
${OSS_INCLUDE_DIRS}
>
$<$<NOT:$<STREQUAL:${${_OPT}use_pa_jack},off>>:
${TARGET_ROOT}/src/hostapi/jack
${JACK_INCLUDE_DIRS}
>
PUBLIC
${TARGET_ROOT}/include
)
list( APPEND DEFINES
PUBLIC
$<$<BOOL:${${_OPT}use_pa_asio}>:
PA_USE_ASIO=1
>
$<$<BOOL:${${_OPT}use_pa_ds}>:
PA_USE_DS=1
>
$<$<BOOL:${${_OPT}use_pa_wasapi}>:
PA_USE_WASAPI=1
>
$<$<BOOL:${${_OPT}use_pa_wmme}>:
PA_USE_WMME=1
>
$<$<BOOL:${${_OPT}use_pa_coreaudio}>:
PA_USE_COREAUDIO=1
>
$<$<BOOL:${${_OPT}use_pa_alsa}>:
PA_USE_ALSA=1
>
$<$<BOOL:${${_OPT}use_pa_oss}>:
PA_USE_OSS=1
HAVE_SYS_SOUNDCARD_H=1
>
$<$<NOT:$<STREQUAL:${${_OPT}use_pa_jack},off>>:
PA_USE_JACK=1
>
$<$<STREQUAL:${${_OPT}use_pa_jack},dynamic>:
PA_DYNAMIC_JACK=1
>
)
list( APPEND LIBRARIES
INTERFACE
$<$<BOOL:${${_OPT}use_pa_alsa}>:
${ALSA_LIBRARIES}
>
$<$<BOOL:${${_OPT}use_pa_oss}>:
${OSS_LIBRARIES}
>
$<$<NOT:$<STREQUAL:${${_OPT}use_pa_jack},off>>:
${JACK_LIBRARIES}
>
)
organize_source( "${TARGET_ROOT}" "" "${SOURCES}" )
target_sources( ${TARGET} PRIVATE ${SOURCES} ${EXTRASRC} )
target_compile_definitions( ${TARGET} PRIVATE ${DEFINES} )
target_include_directories( ${TARGET} PRIVATE ${INCLUDES} )
target_link_libraries( ${TARGET} PRIVATE ${LIBRARIES} )

View File

@@ -1,83 +0,0 @@
add_library( ${TARGET} STATIC )
def_vars()
list( APPEND SOURCES
PRIVATE
${TARGET_ROOT}/src/px_mixer.c
$<$<PLATFORM_ID:Windows>:
${TARGET_ROOT}/src/px_win_common.c
>
$<$<BOOL:${${_OPT}use_pa_ds}>:
${TARGET_ROOT}/src/px_win_ds.c
>
$<$<BOOL:${${_OPT}use_pa_wasapi}>:
${TARGET_ROOT}/src/px_win_wasapi.c
${TARGET_ROOT}/src/px_win_endpoint.c
>
$<$<BOOL:${${_OPT}use_pa_wmme}>:
${TARGET_ROOT}/src/px_win_wmme.c
>
$<$<BOOL:${${_OPT}use_pa_coreaudio}>:
${TARGET_ROOT}/src/px_mac_coreaudio.c
>
$<$<BOOL:${${_OPT}use_pa_alsa}>:
${TARGET_ROOT}/src/px_linux_alsa.c
>
$<$<BOOL:${${_OPT}use_pa_oss}>:
${TARGET_ROOT}/src/px_unix_oss.c
>
)
list( APPEND INCLUDES
PRIVATE
${TARGET_ROOT}/src
PUBLIC
${TARGET_ROOT}/include
)
list( APPEND DEFINES
PRIVATE
$<$<BOOL:${${_OPT}use_pa_ds}>:
PX_USE_WIN_DSOUND=1
>
$<$<BOOL:${${_OPT}use_pa_wasapi}>:
PX_USE_WIN_WASAPI=1
>
$<$<BOOL:${${_OPT}use_pa_wmme}>:
PX_USE_WIN_MME=1
>
$<$<BOOL:${${_OPT}use_pa_coreaudio}>:
PX_USE_MAC_COREAUDIO=1
>
$<$<BOOL:${${_OPT}use_pa_alsa}>:
PX_USE_LINUX_ALSA=1
>
$<$<BOOL:${${_OPT}use_pa_oss}>:
PX_USE_UNIX_OSS=1
>
)
list( APPEND LIBRARIES
PRIVATE
portaudio-v19
)
organize_source( "${TARGET_ROOT}" "" "${SOURCES}" )
target_sources( ${TARGET} PRIVATE ${SOURCES} )
target_compile_definitions( ${TARGET} PRIVATE ${DEFINES} )
target_include_directories( ${TARGET} PRIVATE ${INCLUDES} )
target_link_libraries( ${TARGET} PRIVATE ${LIBRARIES} )