1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-15 15:49:36 +02:00

CMake: replace Conan with find_package and add find modules

Also, necessarily coupled with this:
* add CMakeLists.txt for vendored libnyquist
* fix SoundTouch header include paths
* move nyq_reformat_aud_do_response function
* handle portSMF headers installed to portsmf or portSMF

Signed-off-by: Be <be@mixxx.org>
This commit is contained in:
Be 2021-08-09 09:59:39 -05:00
parent 4777d04cf2
commit b1549dd13e
No known key found for this signature in database
GPG Key ID: F4D83691462F656E
36 changed files with 2642 additions and 99 deletions

View File

@ -91,6 +91,7 @@ set( CMAKE_MODULE_PATH
${AUDACITY_MODULE_PATH}
${CMAKE_BINARY_DIR}
${CMAKE_MODULE_PATH}
"${CMAKE_SOURCE_DIR}/cmake-modules"
)
set( CMAKE_PREFIX_PATH
@ -128,11 +129,6 @@ endif()
include( CMakeDependentOption )
# Test if conan is installed
find_program(CONAN_CMD_TEST conan NO_CACHE)
cmake_dependent_option(USE_CONAN "Build without conan" ON "NOT CONAN_CMD_TEST STREQUAL CONAN_CMD_TEST-NOTFOUND" OFF)
message("Using conan: ${USE_CONAN}")
# Our very own project
project( Tenacity )
@ -141,21 +137,6 @@ include( AudacityFunctions )
set_from_env(AUDACITY_ARCH_LABEL) # e.g. x86_64
# Allow user to globally set the library preference
cmd_option( ${_OPT}lib_preference
"Library preference [system (if available), local]"
"local"
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
)
include( AudacityDependencies )
# Pull all the modules we'll need
include( CheckCXXCompilerFlag )
include( CheckIncludeFile )
@ -511,11 +492,165 @@ endif()
# Do this before consistency checks for added third-party libraries
include( "src/Experimental.cmake" )
# Add our children
add_subdirectory( "cmake-proxies" )
find_package(Threads REQUIRED)
find_package(ZLIB REQUIRED)
find_package(EXPAT REQUIRED)
find_package(mp3lame REQUIRED)
find_package(SndFile REQUIRED)
find_package(Soxr REQUIRED)
find_package(SQLite3 REQUIRED)
find_package(PortAudio REQUIRED)
# Conan uses find_package and does not set GLOBAL flag
resolve_conan_dependencies()
find_package(PortMidi)
find_package(PortSMF)
cmake_dependent_option(MIDI "MIDI support requires PortMidi and PortSMF." ON "PortMidi_FOUND;PortSMF_FOUND" OFF)
if(MIDI)
set(USE_MIDI ON)
message(STATUS "MIDI support enabled.")
else()
message(STATUS "MIDI support disabled. Requires both PortMidi and PortSMF.")
endif()
find_package(id3tag)
cmake_dependent_option(ID3TAG "ID3 Tag support for MP3s." ON "id3tag_FOUND" OFF)
if(ID3TAG)
set(USE_LIBID3TAG ON)
message(STATUS "ID3 tag support for MP3s enabled.")
else()
message(STATUS "ID3 tag support for MP3s disabled. Requires libid3tag.")
endif()
find_package(MAD)
cmake_dependent_option(MP3_DECODING "MP3 decoding support with libmad" ON "MAD_FOUND" OFF)
if(MP3_DECODING)
set(USE_LIBMAD ON)
message(STATUS "MP3 decoding support enabled.")
else()
message(STATUS "MP3 decoding support disabled. Requires libmad.")
endif()
find_package(libtwolame)
cmake_dependent_option(MP2 "MP2 support with Twolame" ON "libtwolame_FOUND" OFF)
if(MP2)
set(USE_LIBTWOLAME ON)
message(STATUS "MP2 encoding support enabled.")
else()
message(STATUS "MP2 encoding support disabled. Requires Twolame library.")
endif()
find_package(Ogg)
cmake_dependent_option(OGG "OGG container format support" ON "Ogg_FOUND" OFF)
if(OGG)
set(USE_LIBOGG ON)
message(STATUS "OGG container format support enabled.")
else()
message(STATUS "OGG container format support disabled. Requires libogg.")
endif()
find_package(Vorbis)
cmake_dependent_option(VORBIS "Vorbis codec support" ON "Vorbis_FOUND" OFF)
if(VORBIS)
set(USE_LIBVORBIS ON)
message(STATUS "Vorbis codec support enabled.")
else()
message(STATUS "Voribs codec support disabled. Requires libvorbis.")
endif()
find_package(FLAC++)
cmake_dependent_option(FLAC "FLAC codec support" ON "FLAC++_FOUND" OFF)
if(FLAC)
set(USE_LIBFLAC ON)
message(STATUS "FLAC codec support enabled.")
else()
message(STATUS "FLAC codec support disabled. Requires libflac and libflac++ C++ bindings.")
endif()
# FIXME: requires vendored fork of PortMixer which requires vendored fork of PortAudio
# https://github.com/audacity/audacity/issues/840#issuecomment-837795388
#find_package(PortMixer)
#cmake_dependent_option(PORTMIXER "PortMixer support" ON "PortMixer_FOUND" OFF)
#if(PORTMIXER)
#set(USE_PORTMIXER ON)
#message(STATUS "PortMixer support enabled.")
#else()
#message(STATUS "PortMixer support disabled.")
#endif()
find_package(sbsms)
cmake_dependent_option(SBSMS "SBSMS timestretching" ON "sbsms_FOUND" OFF)
if(SBSMS)
set(USE_SBSMS ON)
message(STATUS "SBSMS timestretching support enabled.")
else()
message(STATUS "SBSMS timestretching support disabled. Requires libsbsms.")
endif()
find_package(SoundTouch)
cmake_dependent_option(SOUNDTOUCH "SoundTouch timestretching" ON "SoundTouch_FOUND" OFF)
if(SOUNDTOUCH)
set(USE_SOUNDTOUCH ON)
message(STATUS "SoundTouch timestretching support enabled.")
else()
message(STATUS "SoundTouch timestretching support disabled. Requires SoundTouch library.")
endif()
find_package(FFMPEG)
cmake_dependent_option(FFMPEG "FFMPEG codecs support." ON "FFMPEG_FOUND" OFF)
if(FFMPEG)
set(USE_FFMPEG ON)
message(STATUS "FFMPEG codecs support enabled.")
else()
message(STATUS "FFMPEG codecs support disabled. Requires FFMPEG libraries.")
endif()
find_package(VampHostSDK)
cmake_dependent_option(VAMP "VAMP plugin hosting." ON "VampHostSDK_FOUND" OFF)
if(VAMP)
set(USE_VAMP ON)
message(STATUS "VAMP plugin hosting enabled.")
else()
message(STATUS "VAMP plugin hosting disabled. Requires VAMP host SDK.")
endif()
find_package(LV2)
find_package(lilv)
find_package(suil)
cmake_dependent_option(LV2 "LV2 plugin host support" ON "LV2_FOUND;lilv_FOUND;suil_FOUND" OFF)
if(LV2)
message(STATUS "LV2 plugin hosting enabled.")
set(USE_LV2 ON)
else()
message(STATUS "LV2 plugin hosting disabled. Requires LV2, lilv, and suil libraries.")
endif()
option(VST2 "VST2 plugin host support" ON)
if(VST2)
message(STATUS "VST2 plugin host support enabled.")
else()
message(STATUS "VST2 plugin host support disabled.")
endif()
if(NOT CMAKE_SYSTEM_NAME MATCHES "Darwin|Windows")
find_package(GLIB REQUIRED)
find_package(GTK 3.0 REQUIRED)
endif()
set(wxWidgets_CONFIG_OPTIONS --version=3.1)
find_package(wxWidgets 3.1 REQUIRED COMPONENTS adv base core html qa xml net)
include(${wxWidgets_USE_FILE})
# The FindwxWidgets.cmake module does not create an IMPORT target, so hack one together.
# This makes it easy to add the compile definitions to the lib-strings and lib-strings-utils targets.
if(NOT TARGET wxWidgets::wxWidgets)
add_library(wxWidgets::wxWidgets INTERFACE IMPORTED)
target_link_libraries(wxWidgets::wxWidgets INTERFACE ${wxWidgets_LIBRARIES})
target_compile_definitions(wxWidgets::wxWidgets INTERFACE ${wxWidgets_DEFINITIONS} ${wxWidgets_DEFINITIONS_DEBUG})
if(WIN32)
target_compile_definitions(wxWidgets::wxWidgets INTERFACE WXUSINGDLL)
endif()
endif()
add_subdirectory(lib-src/libnyquist)
set(USE_NYQUIST ON)
add_subdirectory( "help" )
add_subdirectory( "images" )

View File

@ -0,0 +1,183 @@
#.rst:
# FindFFMPEG
# ----------
#
# Try to find the required ffmpeg components (default: libavformat, libavutil, libavcodec)
#
# Next variables can be used to hint FFMPEG libs search:
#
# ::
#
# PC_<component>_LIBRARY_DIRS
# PC_FFMPEG_LIBRARY_DIRS
# PC_<component>_INCLUDE_DIRS
# PC_FFMPEG_INCLUDE_DIRS
#
# Once done this will define
#
# ::
#
# FFMPEG_FOUND - System has the all required components.
# FFMPEG_INCLUDE_DIRS - Include directory necessary for using the required components headers.
# FFMPEG_LIBRARIES - Link these to use the required ffmpeg components.
# FFMPEG_DEFINITIONS - Compiler switches required for using the required ffmpeg components.
#
# For each of the components it will additionally set.
#
# ::
#
# libavcodec
# libavdevice
# libavformat
# libavfilter
# libavutil
# libpostproc
# libswscale
# libswresample
#
# the following variables will be defined
#
# ::
#
# <component>_FOUND - System has <component>
# <component>_INCLUDE_DIRS - Include directory necessary for using the <component> headers
# <component>_LIBRARIES - Link these to use <component>
# <component>_DEFINITIONS - Compiler switches required for using <component>
# <component>_VERSION - The components version
#
# the following import targets is created
#
# ::
#
# FFMPEG::FFMPEG - for all components
# FFMPEG::<component> - where <component> in lower case (FFMPEG::avcodec) for each components
#
# Copyright (c) 2006, Matthias Kretz, <kretz@kde.org>
# Copyright (c) 2008, Alexander Neundorf, <neundorf@kde.org>
# Copyright (c) 2011, Michael Jansen, <kde@michael-jansen.biz>
# Copyright (c) 2017, Alexander Drozdov, <adrozdoff@gmail.com>
# Copyright (c) 2019, Jan Holthuis, <holthuis.jan@googlemail.com>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
include(FindPackageHandleStandardArgs)
# The default components were taken from a survey over other FindFFMPEG.cmake files
if (NOT FFMPEG_FIND_COMPONENTS)
set(FFMPEG_FIND_COMPONENTS libavcodec libavformat libavutil)
endif ()
#
### Macro: find_component
#
# Checks for the given component by invoking pkgconfig and then looking up the libraries and
# include directories.
#
macro(find_component _component _pkgconfig _library _header)
# use pkg-config to get the directories and then use these values
# in the FIND_PATH() and FIND_LIBRARY() calls
find_package(PkgConfig QUIET)
if (PkgConfig_FOUND)
pkg_check_modules(PC_FFMPEG_${_component} QUIET ${_pkgconfig})
endif ()
find_path(FFMPEG_${_component}_INCLUDE_DIRS ${_header}
HINTS
${PC_FFMPEG_${_component}_INCLUDEDIR}
${PC_FFMPEG_${_component}_INCLUDE_DIRS}
${PC_FFMPEG_INCLUDE_DIRS}
PATH_SUFFIXES
ffmpeg
)
find_library(FFMPEG_${_component}_LIBRARIES NAMES ${PC_FFMPEG_${_component}_LIBRARIES} ${_library}
HINTS
${PC_FFMPEG_${_component}_LIBDIR}
${PC_FFMPEG_${_component}_LIBRARY_DIRS}
${PC_FFMPEG_LIBRARY_DIRS}
)
message(STATUS ${FFMPEG_${_component}_LIBRARIES})
message(STATUS ${PC_FFMPEG_${_component}_LIBRARIES})
set(FFMPEG_${_component}_DEFINITIONS ${PC_FFMPEG_${_component}_CFLAGS_OTHER} CACHE STRING "The ${_component} CFLAGS.")
set(FFMPEG_${_component}_VERSION ${PC_FFMPEG_${_component}_VERSION} CACHE STRING "The ${_component} version number.")
if (FFMPEG_${_component}_LIBRARIES AND FFMPEG_${_component}_INCLUDE_DIRS)
message(STATUS " - ${_component} ${FFMPEG_${_component}_VERSION} found.")
set(FFMPEG_${_component}_FOUND TRUE)
else ()
message(STATUS " - ${_component} not found.")
endif ()
mark_as_advanced(
FFMPEG_${_component}_INCLUDE_DIRS
FFMPEG_${_component}_LIBRARIES
FFMPEG_${_component}_DEFINITIONS
FFMPEG_${_component}_VERSION)
endmacro()
message(STATUS "Searching for FFMPEG components")
# Check for all possible component.
find_component(libavcodec libavcodec avcodec libavcodec/avcodec.h)
find_component(libavformat libavformat avformat libavformat/avformat.h)
find_component(libavdevice libavdevice avdevice libavdevice/avdevice.h)
find_component(libavutil libavutil avutil libavutil/avutil.h)
find_component(libavfilter libavfilter avfilter libavfilter/avfilter.h)
find_component(libswscale libswscale swscale libswscale/swscale.h)
find_component(libpostproc libpostproc postproc libpostproc/postprocess.h)
find_component(libswresample libswresample swresample libswresample/swresample.h)
set(FFMPEG_LIBRARIES "")
set(FFMPEG_DEFINITIONS "")
# Check if the required components were found and add their stuff to the FFMPEG_* vars.
foreach (_component ${FFMPEG_FIND_COMPONENTS})
if (FFMPEG_${_component}_FOUND)
#message(STATUS "Required component ${_component} present.")
set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} ${FFMPEG_${_component}_LIBRARIES})
set(FFMPEG_DEFINITIONS ${FFMPEG_DEFINITIONS} ${FFMPEG_${_component}_DEFINITIONS})
list(APPEND FFMPEG_INCLUDE_DIRS ${FFMPEG_${_component}_INCLUDE_DIRS})
string(TOLOWER ${_component} _lowerComponent)
if (NOT TARGET FFMPEG::${_lowerComponent})
add_library(FFMPEG::${_lowerComponent} INTERFACE IMPORTED)
set_target_properties(FFMPEG::${_lowerComponent} PROPERTIES
INTERFACE_COMPILE_OPTIONS "${${_component}_DEFINITIONS}"
INTERFACE_INCLUDE_DIRECTORIES "${${_component}_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${${_component}_LIBRARIES}")
endif()
endif()
endforeach ()
# Build the include path with duplicates removed.
if (FFMPEG_INCLUDE_DIRS)
list(REMOVE_DUPLICATES FFMPEG_INCLUDE_DIRS)
endif ()
# cache the vars.
set(FFMPEG_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIRS} CACHE STRING "The FFMPEG include directories." FORCE)
set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} CACHE STRING "The FFMPEG libraries." FORCE)
set(FFMPEG_DEFINITIONS ${FFMPEG_DEFINITIONS} CACHE STRING "The FFMPEG cflags." FORCE)
mark_as_advanced(FFMPEG_INCLUDE_DIRS
FFMPEG_LIBRARIES
FFMPEG_DEFINITIONS)
if (NOT TARGET FFMPEG::FFMPEG)
add_library(FFMPEG::FFMPEG INTERFACE IMPORTED)
set_target_properties(FFMPEG::FFMPEG PROPERTIES
INTERFACE_COMPILE_OPTIONS "${FFMPEG_DEFINITIONS}"
INTERFACE_INCLUDE_DIRECTORIES "${FFMPEG_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${FFMPEG_LIBRARIES}")
endif()
# Compile the list of required vars
set(_FFMPEG_REQUIRED_VARS FFMPEG_LIBRARIES FFMPEG_INCLUDE_DIRS)
foreach (_component ${FFMPEG_FIND_COMPONENTS})
list(APPEND _FFMPEG_REQUIRED_VARS FFMPEG_${_component}_LIBRARIES FFMPEG_${_component}_INCLUDE_DIRS)
endforeach ()
# Give a nice error message if some of the required vars are missing.
find_package_handle_standard_args(FFMPEG DEFAULT_MSG ${_FFMPEG_REQUIRED_VARS})

View File

@ -0,0 +1,88 @@
# Copyright (C) 2001-2020 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE.txt file for details.
#[=======================================================================[.rst:
FindFLAC++
--------
Finds the FLAC++ library.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``FLAC++::FLAC++``
The FLAC++ library
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``FLAC++_FOUND``
True if the system has the FLAC++ library.
``FLAC++_INCLUDE_DIRS``
Include directories needed to use FLAC++.
``FLAC++_LIBRARIES``
Libraries needed to link to FLAC++.
``FLAC++_DEFINITIONS``
Compile definitions needed to use FLAC++.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``FLAC++_INCLUDE_DIR``
The directory containing ``FLAC++/all.h``.
``FLAC++_LIBRARY``
The path to the FLAC++ library.
#]=======================================================================]
find_package(FLAC REQUIRED)
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PC_FLAC++ QUIET flac++)
endif()
find_path(FLAC++_INCLUDE_DIR
NAMES FLAC++/all.h
PATHS ${PC_FLAC++_INCLUDE_DIRS}
DOC "FLAC++ include directory")
mark_as_advanced(FLAC++_INCLUDE_DIR)
find_library(FLAC++_LIBRARY
NAMES FLAC++
PATHS ${PC_FLAC++_LIBRARY_DIRS}
DOC "FLAC++ library"
)
mark_as_advanced(FLAC++_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
FLAC++
DEFAULT_MSG
FLAC++_LIBRARY
FLAC++_INCLUDE_DIR
)
if(FLAC++_FOUND)
set(FLAC++_LIBRARIES "${FLAC++_LIBRARY}")
set(FLAC++_INCLUDE_DIRS "${FLAC++_INCLUDE_DIR}")
set(FLAC++_DEFINITIONS ${PC_FLAC++_CFLAGS_OTHER})
if(NOT TARGET FLAC++::FLAC++)
add_library(FLAC++::FLAC++ UNKNOWN IMPORTED)
set_target_properties(FLAC++::FLAC++
PROPERTIES
IMPORTED_LOCATION "${FLAC++_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_FLAC++_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${FLAC++_INCLUDE_DIR}"
INTERFACE_LINK_LIBRARIES FLAC::FLAC
)
endif()
endif()

View File

@ -0,0 +1,85 @@
# Copyright (C) 2001-2020 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE file for details.
#[=======================================================================[.rst:
FindFLAC
--------
Finds the FLAC library.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``FLAC::FLAC``
The FLAC library
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``FLAC_FOUND``
True if the system has the FLAC library.
``FLAC_INCLUDE_DIRS``
Include directories needed to use FLAC.
``FLAC_LIBRARIES``
Libraries needed to link to FLAC.
``FLAC_DEFINITIONS``
Compile definitions needed to use FLAC.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``FLAC_INCLUDE_DIR``
The directory containing ``FLAC/all.h``.
``FLAC_LIBRARY``
The path to the FLAC library.
#]=======================================================================]
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PC_FLAC QUIET flac)
endif()
find_path(FLAC_INCLUDE_DIR
NAMES FLAC/all.h
PATHS ${PC_FLAC_INCLUDE_DIRS}
DOC "FLAC include directory")
mark_as_advanced(FLAC_INCLUDE_DIR)
find_library(FLAC_LIBRARY
NAMES FLAC
PATHS ${PC_FLAC_LIBRARY_DIRS}
DOC "FLAC library"
)
mark_as_advanced(FLAC_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
FLAC
DEFAULT_MSG
FLAC_LIBRARY
FLAC_INCLUDE_DIR
)
if(FLAC_FOUND)
set(FLAC_LIBRARIES "${FLAC_LIBRARY}")
set(FLAC_INCLUDE_DIRS "${FLAC_INCLUDE_DIR}")
set(FLAC_DEFINITIONS ${PC_FLAC_CFLAGS_OTHER})
if(NOT TARGET FLAC::FLAC)
add_library(FLAC::FLAC UNKNOWN IMPORTED)
set_target_properties(FLAC::FLAC
PROPERTIES
IMPORTED_LOCATION "${FLAC_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_FLAC_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${FLAC_INCLUDE_DIR}"
)
endif()
endif()

View File

@ -0,0 +1,124 @@
# - Try to find Glib and its components (gio, gobject etc)
# Once done, this will define
#
# GLIB_FOUND - system has Glib
# GLIB_INCLUDE_DIRS - the Glib include directories
# GLIB_LIBRARIES - link these to use Glib
#
# Optionally, the COMPONENTS keyword can be passed to find_package()
# and Glib components can be looked for. Currently, the following
# components can be used, and they define the following variables if
# found:
#
# gio: GLIB_GIO_LIBRARIES
# gobject: GLIB_GOBJECT_LIBRARIES
# gmodule: GLIB_GMODULE_LIBRARIES
# gthread: GLIB_GTHREAD_LIBRARIES
#
# Note that the respective _INCLUDE_DIR variables are not set, since
# all headers are in the same directory as GLIB_INCLUDE_DIRS.
#
# Copyright (C) 2012 Raphael Kubo da Costa <rakuco@webkit.org>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``AS
# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ITS
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PC_GLIB QUIET glib-2.0)
endif()
find_library(GLIB_LIBRARIES
NAMES glib-2.0
HINTS ${PC_GLIB_LIBDIR}
${PC_GLIB_LIBRARY_DIRS}
)
# Files in glib's main include path may include glibconfig.h, which,
# for some odd reason, is normally in $LIBDIR/glib-2.0/include.
get_filename_component(_GLIB_LIBRARY_DIR ${GLIB_LIBRARIES} PATH)
find_path(GLIBCONFIG_INCLUDE_DIR
NAMES glibconfig.h
HINTS ${PC_LIBDIR} ${PC_LIBRARY_DIRS} ${_GLIB_LIBRARY_DIR}
${PC_GLIB_INCLUDEDIR} ${PC_GLIB_INCLUDE_DIRS}
PATH_SUFFIXES glib-2.0/include
)
find_path(GLIB_INCLUDE_DIR
NAMES glib.h
HINTS ${PC_GLIB_INCLUDEDIR}
${PC_GLIB_INCLUDE_DIRS}
PATH_SUFFIXES glib-2.0
)
set(GLIB_INCLUDE_DIRS ${GLIB_INCLUDE_DIR} ${GLIBCONFIG_INCLUDE_DIR})
# Version detection
if (EXISTS "${GLIBCONFIG_INCLUDE_DIR}/glibconfig.h")
file(READ "${GLIBCONFIG_INCLUDE_DIR}/glibconfig.h" GLIBCONFIG_H_CONTENTS)
string(REGEX MATCH "#define GLIB_MAJOR_VERSION ([0-9]+)" _dummy "${GLIBCONFIG_H_CONTENTS}")
set(GLIB_VERSION_MAJOR "${CMAKE_MATCH_1}")
string(REGEX MATCH "#define GLIB_MINOR_VERSION ([0-9]+)" _dummy "${GLIBCONFIG_H_CONTENTS}")
set(GLIB_VERSION_MINOR "${CMAKE_MATCH_1}")
string(REGEX MATCH "#define GLIB_MICRO_VERSION ([0-9]+)" _dummy "${GLIBCONFIG_H_CONTENTS}")
set(GLIB_VERSION_MICRO "${CMAKE_MATCH_1}")
set(GLIB_VERSION "${GLIB_VERSION_MAJOR}.${GLIB_VERSION_MINOR}.${GLIB_VERSION_MICRO}")
endif ()
# Additional Glib components. We only look for libraries, as not all of them
# have corresponding headers and all headers are installed alongside the main
# glib ones.
foreach (_component ${GLIB_FIND_COMPONENTS})
if (${_component} STREQUAL "gio")
find_library(GLIB_GIO_LIBRARIES NAMES gio-2.0 HINTS ${_GLIB_LIBRARY_DIR})
set(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GIO_LIBRARIES)
elseif (${_component} STREQUAL "gobject")
find_library(GLIB_GOBJECT_LIBRARIES NAMES gobject-2.0 HINTS ${_GLIB_LIBRARY_DIR})
set(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GOBJECT_LIBRARIES)
elseif (${_component} STREQUAL "gmodule")
find_library(GLIB_GMODULE_LIBRARIES NAMES gmodule-2.0 HINTS ${_GLIB_LIBRARY_DIR})
set(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GMODULE_LIBRARIES)
elseif (${_component} STREQUAL "gthread")
find_library(GLIB_GTHREAD_LIBRARIES NAMES gthread-2.0 HINTS ${_GLIB_LIBRARY_DIR})
set(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GTHREAD_LIBRARIES)
elseif (${_component} STREQUAL "gio-unix")
# gio-unix is compiled as part of the gio library, but the include paths
# are separate from the shared glib ones. Since this is currently only used
# by WebKitGTK we don't go to extraordinary measures beyond pkg-config.
pkg_check_modules(GIO_UNIX QUIET gio-unix-2.0)
endif ()
endforeach ()
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLIB REQUIRED_VARS GLIB_INCLUDE_DIRS GLIB_LIBRARIES ${ADDITIONAL_REQUIRED_VARS}
VERSION_VAR GLIB_VERSION)
mark_as_advanced(
GLIBCONFIG_INCLUDE_DIR
GLIB_GIO_LIBRARIES
GLIB_GIO_UNIX_LIBRARIES
GLIB_GMODULE_LIBRARIES
GLIB_GOBJECT_LIBRARIES
GLIB_GTHREAD_LIBRARIES
GLIB_INCLUDE_DIR
GLIB_INCLUDE_DIRS
GLIB_LIBRARIES
)

150
cmake-modules/FindGTK.cmake Normal file
View File

@ -0,0 +1,150 @@
# - Try to find GTK+ 3.x or 4.x
#
# Copyright (C) 2012 Raphael Kubo da Costa <rakuco@webkit.org>
# Copyright (C) 2013, 2015, 2020 Igalia S.L.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``AS
# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ITS
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#[=======================================================================[.rst:
FindGTK
-------
Find GTK headers and libraries.
Optional Components
^^^^^^^^^^^^^^^^^^^
The ``COMPONENTS`` (or ``OPTIONAL_COMPONENTS``) keyword can be passed to
``find_package()``, the following GTK components can be searched for:
- ``unix-print``
Imported Targets
^^^^^^^^^^^^^^^^
``GTK::GTK``
The GTK library, if found.
``GTK::UnixPrint``
The GTK unix-print library, if found.
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables in your project:
``GTK_FOUND``
true if (the requested version of) GTK is available.
``GTK_UNIX_PRINT_FOUND``
true if the ``unix-print`` component is available.
``GTK_4``
whether GTK 4 was detected
``GTK_3``
whether GTK 3 was detected
``GTK_VERSION``
the version of GTK.
``GTK_SUPPORTS_BROADWAY``
true if the Broadway target is built into GTK.
``GTK_SUPPORTS_QUARTZ``
true if the Quartz target is built into GTK.
``GTK_SUPPORTS_WAYLAND``
true if the Wayland target is built into GTK.
``GTK_SUPPORTS_WIN32``
true if the Windows target is built into GTK.
``GTK_SUPPORTS_X11``
true if the X11 target is built into GTK.
#]=======================================================================]
if (NOT DEFINED GTK_FIND_VERSION)
message(FATAL_ERROR "No GTK version specified")
endif ()
if (GTK_FIND_VERSION VERSION_LESS 3.90)
set(GTK_PC_MODULE "gtk+-3.0")
set(GTK_PC_UNIX_PRINT_MODULE "gtk+-unix-print-3.0")
set(GTK_4 FALSE)
set(GTK_3 TRUE)
else ()
set(GTK_PC_MODULE "gtk4")
set(GTK_PC_UNIX_PRINT_MODULE "gtk4-unix-print")
set(GTK_4 TRUE)
set(GTK_3 FALSE)
endif ()
find_package(PkgConfig QUIET)
pkg_check_modules(GTK IMPORTED_TARGET ${GTK_PC_MODULE})
set(GTK_VERSION_OK TRUE)
if (GTK_VERSION)
if (GTK_FIND_VERSION_EXACT)
if (NOT("${GTK_FIND_VERSION}" VERSION_EQUAL "${GTK_VERSION}"))
set(GTK_VERSION_OK FALSE)
endif ()
else ()
if ("${GTK_VERSION}" VERSION_LESS "${GTK_FIND_VERSION}")
set(GTK_VERSION_OK FALSE)
endif ()
endif ()
endif ()
# Set all the GTK_SUPPORTS_<target> variables to FALSE initially.
foreach (gtk_target broadway quartz wayland win32 x11)
string(TOUPPER "GTK_SUPPORTS_${gtk_target}" gtk_target)
set(${gtk_target} FALSE)
endforeach ()
if (GTK_VERSION AND GTK_VERSION_OK)
# Fetch the "targets" variable and set GTK_SUPPORTS_<target>.
pkg_get_variable(GTK_TARGETS ${GTK_PC_MODULE} targets)
separate_arguments(GTK_TARGETS)
foreach (gtk_target ${GTK_TARGETS})
string(TOUPPER "GTK_SUPPORTS_${gtk_target}" gtk_target)
set(${gtk_target} TRUE)
endforeach ()
endif ()
if (TARGET PkgConfig::GTK AND NOT TARGET GTK::GTK)
add_library(GTK::GTK INTERFACE IMPORTED GLOBAL)
set_property(TARGET GTK::GTK PROPERTY
INTERFACE_LINK_LIBRARIES PkgConfig::GTK
)
endif ()
# Try to find additional components
foreach (gtk_component ${GTK_FIND_COMPONENTS})
if (NOT "${gtk_component}" STREQUAL unix-print)
message(FATAL_ERROR "Invalid component name: ${gtk_component}")
endif ()
pkg_check_modules(GTK_UNIX_PRINT IMPORTED_TARGET "${GTK_PC_UNIX_PRINT_MODULE}")
if (GTK_FIND_REQUIRED_unix-print AND NOT GTK_UNIX_PRINT_FOUND)
message(FATAL_ERROR "Component unix-print not found")
endif ()
if (TARGET PkgConfig::GTK_UNIX_PRINT AND NOT TARGET GTK::UnixPrint)
add_library(GTK::UnixPrint INTERFACE IMPORTED GLOBAL)
set_property(TARGET GTK::UnixPrint PROPERTY
INTERFACE_LINK_LIBRARIES PkgConfig::GTK_UNIX_PRINT)
endif ()
endforeach ()
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK DEFAULT_MSG GTK_VERSION GTK_VERSION_OK)

View File

@ -0,0 +1,68 @@
#[=======================================================================[.rst:
FindLV2
-----------
Finds the LV2 library.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``LV2::LV2``
The LV2 library
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``LV2_FOUND``
True if the system has the LV2 library.
``LV2_INCLUDE_DIRS``
Include directories needed to use LV2.
``LV2_LIBRARIES``
Libraries needed to link to LV2.
``LV2_DEFINITIONS``
Compile definitions needed to use LV2.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``LV2_INCLUDE_DIR``
The directory containing ``lv2.h``.
#]=======================================================================]
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PC_LV2 QUIET lv2)
endif()
# There is no library; only a header.
find_path(LV2_INCLUDE_DIR
NAMES lv2.h
PATHS ${PC_LV2_INCLUDE_DIRS}
PATH_SUFFIXES LV2
DOC "LV2 include directory")
mark_as_advanced(LV2_INCLUDE_DIR)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
LV2
DEFAULT_MSG
LV2_INCLUDE_DIR
)
if(LV2_FOUND)
if(NOT TARGET LV2::LV2)
add_library(LV2::LV2 INTERFACE IMPORTED)
set_target_properties(LV2::LV2
PROPERTIES
INTERFACE_COMPILE_OPTIONS "${PC_LV2_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${LV2_INCLUDE_DIR}"
)
endif()
endif()

View File

@ -0,0 +1,86 @@
# Copyright (C) 2001-2020 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE.txt file for details.
#[=======================================================================[.rst:
FindMAD
-------
Finds the MAD library.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``MAD::MAD``
The MAD library
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``MAD_FOUND``
True if the system has the MAD library.
``MAD_INCLUDE_DIRS``
Include directories needed to use MAD.
``MAD_LIBRARIES``
Libraries needed to link to MAD.
``MAD_DEFINITIONS``
Compile definitions needed to use MAD.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``MAD_INCLUDE_DIR``
The directory containing ``mad.h``.
``MAD_LIBRARY``
The path to the MAD library.
#]=======================================================================]
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PC_MAD QUIET mad)
endif()
find_path(MAD_INCLUDE_DIR
NAMES mad.h
PATHS ${PC_MAD_INCLUDE_DIRS}
PATH_SUFFIXES mad
DOC "MAD include directory")
mark_as_advanced(MAD_INCLUDE_DIR)
find_library(MAD_LIBRARY
NAMES mad
PATHS ${PC_MAD_LIBRARY_DIRS}
DOC "MAD library"
)
mark_as_advanced(MAD_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
MAD
DEFAULT_MSG
MAD_LIBRARY
MAD_INCLUDE_DIR
)
if(MAD_FOUND)
set(MAD_LIBRARIES "${MAD_LIBRARY}")
set(MAD_INCLUDE_DIRS "${MAD_INCLUDE_DIR}")
set(MAD_DEFINITIONS ${PC_MAD_CFLAGS_OTHER})
if(NOT TARGET MAD::MAD)
add_library(MAD::MAD UNKNOWN IMPORTED)
set_target_properties(MAD::MAD
PROPERTIES
IMPORTED_LOCATION "${MAD_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_MAD_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${MAD_INCLUDE_DIR}"
)
endif()
endif()

View File

@ -0,0 +1,77 @@
# Copyright (C) 2001-2020 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE.txt file for details.
#[=======================================================================[.rst:
FindOgg
-------
Finds the Ogg library.
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``Ogg_FOUND``
True if the system has the Ogg library.
``Ogg_INCLUDE_DIRS``
Include directories needed to use Ogg.
``Ogg_LIBRARIES``
Libraries needed to link to Ogg.
``Ogg_DEFINITIONS``
Compile definitions needed to use Ogg.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``Ogg_INCLUDE_DIR``
The directory containing ``ogg/ogg.h``.
``Ogg_LIBRARY``
The path to the Ogg library.
#]=======================================================================]
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PC_Ogg QUIET ogg)
endif()
find_path(Ogg_INCLUDE_DIR
NAMES ogg/ogg.h
PATHS ${PC_Ogg_INCLUDE_DIRS}
DOC "Ogg include directory"
)
mark_as_advanced(Ogg_INCLUDE_DIR)
find_library(Ogg_LIBRARY
NAMES ogg
PATHS ${PC_Ogg_LIBRARY_DIRS}
DOC "Ogg library"
)
mark_as_advanced(Ogg_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
Ogg
REQUIRED_VARS
Ogg_INCLUDE_DIR
Ogg_LIBRARY
)
if(Ogg_FOUND)
set(Ogg_LIBRARIES ${Ogg_LIBRARY})
set(Ogg_INCLUDE_DIRS ${Ogg_INCLUDE_DIR})
set(Ogg_DEFINITIONS ${PC_Ogg_CFLAGS_OTHER})
if(NOT TARGET Ogg::ogg)
add_library(Ogg::ogg UNKNOWN IMPORTED)
set_target_properties(Ogg::ogg
PROPERTIES
IMPORTED_LOCATION "${Ogg_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_Ogg_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${Ogg_INCLUDE_DIR}"
)
endif()
endif()

View File

@ -0,0 +1,57 @@
# Copyright (C) 2001-2020 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE.txt file for details.
#[=======================================================================[.rst:
FindPortAudio
--------
Finds the PortAudio library.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``PortAudio::PortAudio``
The PortAudio library
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``PortAudio_FOUND``
True if the system has the PortAudio library.
#]=======================================================================]
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PortAudio portaudio-2.0)
else()
find_path(PortAudio_INCLUDEDIR
NAMES portaudio.h
DOC "PortAudio include directory")
find_library(PortAudio_LINK_LIBRARIES
NAMES portaudio
DOC "PortAudio library"
)
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
PortAudio
DEFAULT_MSG
PortAudio_LINK_LIBRARIES
PortAudio_INCLUDEDIR
)
if(PortAudio_FOUND)
if(NOT TARGET PortAudio::PortAudio)
add_library(PortAudio::PortAudio INTERFACE IMPORTED)
target_link_libraries(PortAudio::PortAudio INTERFACE "${PortAudio_LINK_LIBRARIES}")
target_include_directories(PortAudio::PortAudio INTERFACE "${PortAudio_INCLUDEDIR}")
endif()
endif()

View File

@ -0,0 +1,73 @@
# Copyright (C) 2001-2020 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE.txt file for details.
#[=======================================================================[.rst:
FindPortMidi
---------------
Finds the PortMidi library.
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``PortMidi_FOUND``
True if the system has the PortMidi library.
``PortMidi_INCLUDE_DIRS``
Include directories needed to use PortMidi.
``PortMidi_LIBRARIES``
Libraries needed to link to PortMidi.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``PortMidi_INCLUDE_DIR``
The directory containing ``portmidi.h``.
``PortTime_INCLUDE_DIR``
The directory containing ``porttime.h``.
``PortMidi_LIBRARY``
The path to the PortMidi library.
``PortTime_LIBRARY``
The path to the PortTime library.
#]=======================================================================]
find_path(PortMidi_INCLUDE_DIR
NAMES portmidi.h
PATH_SUFFIXES portmidi
DOC "PortMidi include directory")
mark_as_advanced(PortMidi_INCLUDE_DIR)
find_library(PortMidi_LIBRARY
NAMES portmidi portmidi_s
DOC "PortMidi library"
)
mark_as_advanced(PortMidi_LIBRARY)
find_package_handle_standard_args(
PortMidi
DEFAULT_MSG
PortMidi_LIBRARY
PortMidi_INCLUDE_DIR
)
find_package(PortTime)
if(PortMidi_FOUND)
if(NOT TARGET PortMidi::PortMidi)
add_library(PortMidi::PortMidi UNKNOWN IMPORTED)
set_target_properties(PortMidi::PortMidi
PROPERTIES
IMPORTED_LOCATION "${PortMidi_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${PortMidi_INCLUDE_DIR}"
)
endif()
if(PortTime_FOUND)
target_link_libraries(PortMidi::PortMidi INTERFACE PortMidi::PortTime)
endif()
endif()

View File

@ -0,0 +1,83 @@
#[=======================================================================[.rst:
FindPortSMF
-------
Finds the PortSMF library.
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``PortSMF_FOUND``
True if the system has the PortSMF library.
``PortSMF_INCLUDE_DIRS``
Include directories needed to use PortSMF.
``PortSMF_LIBRARIES``
Libraries needed to link to PortSMF.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``PortSMF_INCLUDE_DIR``
The directory containing ``PortSMF/PortSMF.h``.
``PortSMF_LIBRARY``
The path to the PortSMF library.
#]=======================================================================]
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PortSMF QUIET portSMF)
endif()
# Arch installs to portsmf directory
find_path(PortSMF_INCLUDE_DIR
NAMES portsmf/allegro.h
PATHS ${PortSMF_INCLUDE_DIRS}
DOC "PortSMF include directory"
)
if(NOT PortSMF_INCLUDE_DIR)
# Debian installs to portSMF directory with capital SMF
find_path(PortSMF_INCLUDE_DIR
NAMES portSMF/allegro.h
PATHS ${PortSMF_INCLUDE_DIRS}
DOC "PortSMF include directory"
)
if(PortSMF_INCLUDE_DIR)
set(PORTSMF_CAPITAL 1 CACHE INTERNAL "")
endif()
endif()
mark_as_advanced(PortSMF_INCLUDE_DIR)
# Both Arch and Debian name the library portSMF with capital SMF
find_library(PortSMF_LIBRARY
NAMES portSMF
PATHS ${PortSMF_LIBRARY_DIRS}
DOC "PortSMF library"
)
mark_as_advanced(PortSMF_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
PortSMF
REQUIRED_VARS
PortSMF_LIBRARY
PortSMF_INCLUDE_DIR
)
if(PortSMF_FOUND)
set(PortSMF_LIBRARIES ${PortSMF_LIBRARY})
set(PortSMF_INCLUDE_DIRS ${PortSMF_INCLUDE_DIR})
if(NOT TARGET PortSMF::PortSMF)
add_library(PortSMF::PortSMF INTERFACE IMPORTED)
target_link_libraries(PortSMF::PortSMF INTERFACE "${PortSMF_LIBRARY}")
target_include_directories(PortSMF::PortSMF INTERFACE "${PortSMF_INCLUDE_DIR}")
if(PORTSMF_CAPITAL)
target_compile_definitions(PortSMF::PortSMF INTERFACE PORTSMF_CAPITAL)
endif()
endif()
endif()

View File

@ -0,0 +1,62 @@
# Copyright (C) 2001-2020 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE.txt file for details.
#[=======================================================================[.rst:
FindPortTime
---------------
Finds the PortTime library.
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``PortTime_FOUND``
True if the system has the PortTime library.
``PortTime_INCLUDE_DIRS``
Include directories needed to use PortTime.
``PortTime_LIBRARIES``
Libraries needed to link to PortTime.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``PortTime_INCLUDE_DIR``
The directory containing ``porttime.h``.
``PortTime_LIBRARY``
The path to the PortTime library.
#]=======================================================================]
find_library(PortTime_LIBRARY
NAMES porttime
DOC "PortTime library"
)
mark_as_advanced(PortTime_LIBRARY)
find_path(PortTime_INCLUDE_DIR
NAMES porttime.h
PATH_SUFFIXES portmidi porttime
DOC "PortTime include directory")
mark_as_advanced(PortTime_INCLUDE_DIR)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
PortTime
DEFAULT_MSG
PortTime_LIBRARY
PortTime_INCLUDE_DIR
)
if(NOT TARGET PortMidi::PortTime)
add_library(PortMidi::PortTime UNKNOWN IMPORTED)
set_target_properties(PortMidi::PortTime
PROPERTIES
IMPORTED_LOCATION "${PortTime_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${PortTime_INCLUDE_DIR}"
)
endif()

View File

@ -0,0 +1,86 @@
# Copyright (C) 2001-2020 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE.txt file for details.
#[=======================================================================[.rst:
FindSQLite3
-----------
Finds the SQLite3 library.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``SQLite3::SQLite3``
The SQLite3 library
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``SQLite3_FOUND``
True if the system has the SQLite3 library.
``SQLite3_INCLUDE_DIRS``
Include directories needed to use SQLite3.
``SQLite3_LIBRARIES``
Libraries needed to link to SQLite3.
``SQLite3_DEFINITIONS``
Compile definitions needed to use SQLite3.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``SQLite3_INCLUDE_DIR``
The directory containing ``sqlite3.h``.
``SQLite3_LIBRARY``
The path to the SQLite3 library.
#]=======================================================================]
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PC_SQLite3 QUIET sqlite3)
endif()
find_path(SQLite3_INCLUDE_DIR
NAMES sqlite3.h
PATHS ${PC_SQLite3_INCLUDE_DIRS}
PATH_SUFFIXES sqlite sqlite3
DOC "SQLite3 include directory")
mark_as_advanced(SQLite3_INCLUDE_DIR)
find_library(SQLite3_LIBRARY
NAMES sqlite3
PATHS ${PC_SQLite3_LIBRARY_DIRS}
DOC "SQLite3 library"
)
mark_as_advanced(SQLite3_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
SQLite3
DEFAULT_MSG
SQLite3_LIBRARY
SQLite3_INCLUDE_DIR
)
if(SQLite3_FOUND)
set(SQLite3_LIBRARIES "${SQLite3_LIBRARY}")
set(SQLite3_INCLUDE_DIRS "${SQLite3_INCLUDE_DIR}")
set(SQLite3_DEFINITIONS ${PC_SQLite3_CFLAGS_OTHER})
if(NOT TARGET SQLite3::SQLite3)
add_library(SQLite3::SQLite3 UNKNOWN IMPORTED)
set_target_properties(SQLite3::SQLite3
PROPERTIES
IMPORTED_LOCATION "${SQLite3_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_SQLite3_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${SQLite3_INCLUDE_DIR}"
)
endif()
endif()

View File

@ -0,0 +1,63 @@
# Copyright (C) 2001-2020 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE.txt file for details.
#[=======================================================================[.rst:
FindSndFile
-----------
Finds the SndFile library.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``SndFile::SndFile``
The SndFile library
This will define the following variables:
``SndFile_FOUND``
True if the system has the SndFile library.
#]=======================================================================]
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(SndFile QUIET sndfile)
else()
find_path(SndFile_INCLUDEDIR
NAMES sndfile.h
PATH_SUFFIXES sndfile
DOC "SndFile include directory")
find_library(SndFile_LINK_LIBRARIES
NAMES sndfile sndfile-1
DOC "SndFile library"
)
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
SndFile
DEFAULT_MSG
SndFile_LINK_LIBRARIES
SndFile_INCLUDEDIR
)
file(STRINGS "${SndFile_INCLUDEDIR}/sndfile.h" SndFile_SUPPORTS_SET_COMPRESSION_LEVEL REGEX ".*SFC_SET_COMPRESSION_LEVEL.*")
if(SndFile_SUPPORTS_SET_COMPRESSION_LEVEL)
set(SndFile_SUPPORTS_SET_COMPRESSION_LEVEL ON)
else()
set(SndFile_SUPPORTS_SET_COMPRESSION_LEVEL OFF)
endif()
mark_as_advanced(SndFile_SUPPORTS_SET_COMPRESSION_LEVEL)
if(SndFile_FOUND)
if(NOT TARGET SndFile::sndfile)
add_library(SndFile::sndfile INTERFACE IMPORTED)
target_link_libraries(SndFile::sndfile INTERFACE "${SndFile_LINK_LIBRARIES}")
target_include_directories(SndFile::sndfile INTERFACE "${SndFile_INCLUDEDIR}")
endif()
endif()

View File

@ -0,0 +1,85 @@
# Copyright (C) 2001-2020 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE.txt file for details.
#[=======================================================================[.rst:
FindSoundTouch
--------------
Finds the SoundTouch library.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``SoundTouch::SoundTouch``
The SoundTouch library
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``SoundTouch_FOUND``
True if the system has the SoundTouch library.
``SoundTouch_INCLUDE_DIRS``
Include directories needed to use SoundTouch.
``SoundTouch_LIBRARIES``
Libraries needed to link to SoundTouch.
``SoundTouch_DEFINITIONS``
Compile definitions needed to use SoundTouch.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``SoundTouch_INCLUDE_DIR``
The directory containing ``soundtouch/SoundTouch.h``.
``SoundTouch_LIBRARY``
The path to the SoundTouch library.
#]=======================================================================]
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PC_SoundTouch QUIET soundtouch)
endif()
find_path(SoundTouch_INCLUDE_DIR
NAMES soundtouch/SoundTouch.h
PATHS ${PC_SoundTouch_INCLUDE_DIRS}
DOC "SoundTouch include directory")
mark_as_advanced(SoundTouch_INCLUDE_DIR)
find_library(SoundTouch_LIBRARY
NAMES SoundTouch
PATHS ${PC_SoundTouch_LIBRARY_DIRS}
DOC "SoundTouch library"
)
mark_as_advanced(SoundTouch_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
SoundTouch
DEFAULT_MSG
SoundTouch_LIBRARY
SoundTouch_INCLUDE_DIR
)
if(SoundTouch_FOUND)
set(SoundTouch_LIBRARIES "${SoundTouch_LIBRARY}")
set(SoundTouch_INCLUDE_DIRS "${SoundTouch_INCLUDE_DIR}")
set(SoundTouch_DEFINITIONS ${PC_SoundTouch_CFLAGS_OTHER})
if(NOT TARGET SoundTouch::SoundTouch)
add_library(SoundTouch::SoundTouch UNKNOWN IMPORTED)
set_target_properties(SoundTouch::SoundTouch
PROPERTIES
IMPORTED_LOCATION "${SoundTouch_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_SoundTouch_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${SoundTouch_INCLUDE_DIR}"
)
endif()
endif()

View File

@ -0,0 +1,81 @@
#[=======================================================================[.rst:
FindSoxr
--------
Finds the Soxr library.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``Soxr::Soxr``
The Soxr library
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``Soxr_FOUND``
True if the system has the Soxr library.
``Soxr_INCLUDE_DIRS``
Include directories needed to use Soxr.
``Soxr_LIBRARIES``
Libraries needed to link to Soxr.
``Soxr_DEFINITIONS``
Compile definitions needed to use Soxr.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``Soxr_INCLUDE_DIR``
The directory containing ``soxr.h``.
``Soxr_LIBRARY``
The path to the Soxr library.
#]=======================================================================]
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PC_Soxr QUIET soxr)
endif()
find_path(Soxr_INCLUDE_DIR
NAMES soxr.h
PATHS ${PC_Soxr_INCLUDE_DIRS}
DOC "Soxr include directory")
mark_as_advanced(Soxr_INCLUDE_DIR)
find_library(Soxr_LIBRARY
NAMES soxr
PATHS ${PC_Soxr_LIBRARY_DIRS}
DOC "Soxr library"
)
mark_as_advanced(Soxr_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
Soxr
DEFAULT_MSG
Soxr_LIBRARY
Soxr_INCLUDE_DIR
)
if(Soxr_FOUND)
set(Soxr_LIBRARIES "${Soxr_LIBRARY}")
set(Soxr_INCLUDE_DIRS "${Soxr_INCLUDE_DIR}")
set(Soxr_DEFINITIONS ${PC_Soxr_CFLAGS_OTHER})
if(NOT TARGET Soxr::soxr)
add_library(Soxr::soxr UNKNOWN IMPORTED)
set_target_properties(Soxr::soxr
PROPERTIES
IMPORTED_LOCATION "${Soxr_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_Soxr_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${Soxr_INCLUDE_DIR}"
)
endif()
endif()

View File

@ -0,0 +1,81 @@
#[=======================================================================[.rst:
FindVampHostSDK
--------
Finds the VampHostSDK library.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``VampHostSDK::VampHostSDK``
The VampHostSDK library
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``VampHostSDK_FOUND``
True if the system has the VampHostSDK library.
``VampHostSDK_INCLUDE_DIRS``
Include directories needed to use VampHostSDK.
``VampHostSDK_LIBRARIES``
Libraries needed to link to VampHostSDK.
``VampHostSDK_DEFINITIONS``
Compile definitions needed to use VampHostSDK.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``VampHostSDK_INCLUDE_DIR``
The directory containing ``vamp-hostsdk/vamp-hostsdk.h``.
``VampHostSDK_LIBRARY``
The path to the VampHostSDK library.
#]=======================================================================]
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PC_VampHostSDK QUIET vamp-hostsdk)
endif()
find_path(VampHostSDK_INCLUDE_DIR
NAMES vamp-hostsdk/vamp-hostsdk.h
PATHS ${PC_VampHostSDK_INCLUDE_DIRS}
DOC "VampHostSDK include directory")
mark_as_advanced(VampHostSDK_INCLUDE_DIR)
find_library(VampHostSDK_LIBRARY
NAMES vamp-hostsdk
PATHS ${PC_VampHostSDK_LIBRARY_DIRS}
DOC "VampHostSDK library"
)
mark_as_advanced(VampHostSDK_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
VampHostSDK
DEFAULT_MSG
VampHostSDK_LIBRARY
VampHostSDK_INCLUDE_DIR
)
if(VampHostSDK_FOUND)
set(VampHostSDK_LIBRARIES "${VampHostSDK_LIBRARY}")
set(VampHostSDK_INCLUDE_DIRS "${VampHostSDK_INCLUDE_DIR}")
set(VampHostSDK_DEFINITIONS ${PC_VampHostSDK_CFLAGS_OTHER})
if(NOT TARGET VampHostSDK::VampHostSDK)
add_library(VampHostSDK::VampHostSDK UNKNOWN IMPORTED)
set_target_properties(VampHostSDK::VampHostSDK
PROPERTIES
IMPORTED_LOCATION "${VampHostSDK_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_VampHostSDK_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${VampHostSDK_INCLUDE_DIR}"
)
endif()
endif()

View File

@ -0,0 +1,102 @@
# Copyright (C) 2001-2020 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE.txt file for details.
#[=======================================================================[.rst:
FindVorbis
----------
Finds the Vorbis library.
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``Vorbis_FOUND``
True if the system has the OggVorbis library.
``Vorbis_INCLUDE_DIRS``
Include directories needed to use OggVorbis.
``Vorbis_LIBRARIES``
Libraries needed to link to OggVorbis.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``Vorbis_vorbis_INCLUDE_DIR``
The directory containing ``vorbis/vorbis.h``.
``Vorbis_vorbisenc_INCLUDE_DIR``
The directory containing ``vorbis/vorbisenc.h``.
``Vorbis_vorbisfile_INCLUDE_DIR``
The directory containing ``vorbis/vorbisfile.h``.
``Vorbis_vorbis_LIBRARY``
The path to the vorbis library.
``Vorbis_vorbisenc_LIBRARY``
The path to the vorbisenc library.
``Vorbis_vorbisfile_LIBRARY``
The path to the vorbisfile library.
``Vorbis_LIBRARIES``
Libraries needed to link to vorbis.
#]=======================================================================]
find_path(Vorbis_vorbis_INCLUDE_DIR
NAMES vorbis/codec.h
DOC "Vorbis include directory"
)
mark_as_advanced(Vorbis_vorbis_INCLUDE_DIR)
find_path(Vorbis_vorbisenc_INCLUDE_DIR
NAMES vorbis/vorbisenc.h
DOC "Vorbisenc include directory"
)
mark_as_advanced(Vorbis_vorbisenc_INCLUDE_DIR)
find_path(Vorbis_vorbisfile_INCLUDE_DIR
NAMES vorbis/vorbisfile.h
DOC "Vorbisfile include directory"
)
mark_as_advanced(Vorbis_vorbisfile_INCLUDE_DIR)
find_library(Vorbis_vorbis_LIBRARY
NAMES vorbis
DOC "Vorbis library")
mark_as_advanced(Vorbis_vorbis_LIBRARY)
find_library(Vorbis_vorbisenc_LIBRARY
NAMES vorbisenc
DOC "Vorbisenc library")
mark_as_advanced(Vorbis_vorbisenc_LIBRARY)
find_library(Vorbis_vorbisfile_LIBRARY
NAMES vorbisfile
DOC "Vorbisfile library")
mark_as_advanced(Vorbis_vorbisfile_LIBRARY)
if(NOT Vorbis_FIND_COMPONENTS)
set(Vorbis_FIND_COMPONENTS "vorbis;vorbisenc;vorbisfile")
endif()
foreach(component ${Vorbis_FIND_COMPONENTS})
if(Vorbis_${component}_INCLUDE_DIR AND Vorbis_${component}_LIBRARY)
set(Vorbis_${component}_FOUND TRUE)
if(NOT TARGET Vorbis::${component})
add_library(Vorbis::${component} UNKNOWN IMPORTED)
set_target_properties(Vorbis::${component}
PROPERTIES
IMPORTED_LOCATION "${Vorbis_${component}_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${Vorbis_${component}_INCLUDE_DIR}"
)
endif()
else()
set(Vorbis_${component}_FOUND FALSE)
endif()
endforeach()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Vorbis
REQUIRED_VARS Vorbis_vorbis_INCLUDE_DIR Vorbis_vorbis_LIBRARY
HANDLE_COMPONENTS
)

View File

@ -0,0 +1,76 @@
# Copyright (C) 2001-2020 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE.txt file for details.
#[=======================================================================[.rst:
Findid3tag
----------
Finds the id3tag library.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``id3tag::id3tag``
The id3tag library
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``id3tag_FOUND``
True if the system has the id3tag library.
``id3tag_INCLUDE_DIRS``
Include directories needed to use id3tag.
``id3tag_LIBRARIES``
Libraries needed to link to id3tag.
``id3tag_DEFINITIONS``
Compile definitions needed to use id3tag.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``id3tag_INCLUDE_DIR``
The directory containing ``id3tag.h``.
``id3tag_LIBRARY``
The path to the id3tag library.
#]=======================================================================]
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(id3tag id3tag)
else()
find_path(id3tag_INCLUDEDIR
NAMES id3tag.h
DOC "id3tag include directory")
find_library(id3tag_LINK_LIBRARIES
NAMES id3tag
DOC "id3tag library"
)
find_package(ZLIB REQUIRED)
list(APPEND id3tag_LINK_LIBRARIES ZLIB::ZLIB)
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
id3tag
DEFAULT_MSG
id3tag_LINK_LIBRARIES
id3tag_INCLUDEDIR
)
if(id3tag_FOUND)
if(NOT TARGET id3tag::id3tag)
add_library(id3tag::id3tag INTERFACE IMPORTED)
target_link_libraries(id3tag::id3tag INTERFACE "${id3tag_LINK_LIBRARIES}")
target_include_directories(id3tag::id3tag INTERFACE "${id3tag_INCLUDEDIR}")
endif()
endif()

View File

@ -0,0 +1,81 @@
#[=======================================================================[.rst:
Findlibtwolame
--------
Finds the libtwolame library.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``libtwolame::libtwolame``
The libtwolame library
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``libtwolame_FOUND``
True if the system has the libtwolame library.
``libtwolame_INCLUDE_DIRS``
Include directories needed to use libtwolame.
``libtwolame_LIBRARIES``
Libraries needed to link to libtwolame.
``libtwolame_DEFINITIONS``
Compile definitions needed to use libtwolame.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``libtwolame_INCLUDE_DIR``
The directory containing ``twolame.h``.
``libtwolame_LIBRARY``
The path to the libtwolame library.
#]=======================================================================]
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PC_libtwolame QUIET twolame)
endif()
find_path(libtwolame_INCLUDE_DIR
NAMES twolame.h
PATHS ${PC_libtwolame_INCLUDE_DIRS}
DOC "libtwolame include directory")
mark_as_advanced(libtwolame_INCLUDE_DIR)
find_library(libtwolame_LIBRARY
NAMES twolame
PATHS ${PC_libtwolame_LIBRARY_DIRS}
DOC "libtwolame library"
)
mark_as_advanced(libtwolame_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
libtwolame
DEFAULT_MSG
libtwolame_LIBRARY
libtwolame_INCLUDE_DIR
)
if(libtwolame_FOUND)
set(libtwolame_LIBRARIES "${libtwolame_LIBRARY}")
set(libtwolame_INCLUDE_DIRS "${libtwolame_INCLUDE_DIR}")
set(libtwolame_DEFINITIONS ${PC_libtwolame_CFLAGS_OTHER})
if(NOT TARGET libtwolame::libtwolame)
add_library(libtwolame::libtwolame UNKNOWN IMPORTED)
set_target_properties(libtwolame::libtwolame
PROPERTIES
IMPORTED_LOCATION "${libtwolame_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_libtwolame_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${libtwolame_INCLUDE_DIR}"
)
endif()
endif()

View File

@ -0,0 +1,97 @@
# Copyright (C) 2001-2020 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE file for details.
#[=======================================================================[.rst:
Findlilv
--------
Finds the lilv library.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``lilv::lilv``
The lilv library
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``lilv_FOUND``
True if the system has the lilv library.
``lilv_INCLUDE_DIRS``
Include directories needed to use lilv.
``lilv_LIBRARIES``
Libraries needed to link to lilv.
``lilv_DEFINITIONS``
Compile definitions needed to use lilv.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``lilv_INCLUDE_DIR``
The directory containing ``lilv-0/lilb/lilv.h``.
``lilv_LIBRARY``
The path to the lilv library.
#]=======================================================================]
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PC_lilv QUIET lilv-0)
endif()
find_path(lilv_INCLUDE_DIR
NAMES lilv/lilv.h
PATH_SUFFIXES lilv-0
PATHS ${PC_lilv_INCLUDE_DIRS}
DOC "lilv include directory"
)
mark_as_advanced(lilv_INCLUDE_DIR)
find_library(lilv_LIBRARY
NAMES lilv-0 lilv
PATHS ${PC_lilv_LIBRARY_DIRS}
DOC "lilv library"
)
mark_as_advanced(lilv_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
lilv
DEFAULT_MSG
lilv_LIBRARY
lilv_INCLUDE_DIR
)
if(lilv_FOUND)
set(lilv_LIBRARIES "${lilv_LIBRARY}")
set(lilv_INCLUDE_DIRS "${lilv_INCLUDE_DIR}")
set(lilv_DEFINITIONS ${PC_lilv_CFLAGS_OTHER})
if(NOT TARGET lilv::lilv)
add_library(lilv::lilv UNKNOWN IMPORTED)
set_target_properties(lilv::lilv
PROPERTIES
IMPORTED_LOCATION "${lilv_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_lilv_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${lilv_INCLUDE_DIR}"
)
get_target_property(LILV_TYPE lilv::lilv TYPE)
if(LILV_TYPE STREQUAL "STATIC_LIBRARY")
find_package(lv2 CONFIG REQUIRED)
find_package(serd CONFIG REQUIRED)
find_package(sord CONFIG REQUIRED)
find_package(sratom CONFIG REQUIRED)
set_property(TARGET lilv::lilv APPEND PROPERTY INTERFACE_LINK_LIBRARIES
lv2::lv2 serd::serd sord::sord sratom::sratom
)
endif()
endif()
endif()

View File

@ -0,0 +1,74 @@
# Copyright (C) 2001-2020 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE.txt file for details.
#[=======================================================================[.rst:
Findmp3lame
-----------
Finds the LAME library.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``mp3lame::mp3lame``
The LAME library
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``mp3lame_FOUND``
True if the system has the LAME library.
``mp3lame_INCLUDE_DIRS``
Include directories needed to use LAME.
``mp3lame_LIBRARIES``
Libraries needed to link to LAME.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``mp3lame_INCLUDE_DIR``
The directory containing ``lame/lame.h``.
``mp3lame_LIBRARY``
The path to the LAME library.
#]=======================================================================]
find_path(mp3lame_INCLUDE_DIR
NAMES lame/lame.h
DOC "LAME include directory")
mark_as_advanced(mp3lame_INCLUDE_DIR)
find_library(mp3lame_LIBRARY
NAMES mp3lame mp3lame-static libmp3lame
DOC "LAME library"
)
mark_as_advanced(mp3lame_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
mp3lame
DEFAULT_MSG
mp3lame_LIBRARY
mp3lame_INCLUDE_DIR
)
if(mp3lame_FOUND)
set(mp3lame_LIBRARIES "${mp3lame_LIBRARY}")
set(mp3lame_INCLUDE_DIRS "${mp3lame_INCLUDE_DIR}")
if(NOT TARGET mp3lame::mp3lame)
add_library(mp3lame::mp3lame UNKNOWN IMPORTED)
set_target_properties(mp3lame::mp3lame
PROPERTIES
IMPORTED_LOCATION "${mp3lame_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${mp3lame_INCLUDE_DIR}"
)
endif()
endif()

View File

@ -0,0 +1,77 @@
#[=======================================================================[.rst:
Findsbsms
--------
Finds the sbsms library.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``sbsms::sbsms``
The sbsms library
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``sbsms_FOUND``
True if the system has the sbsms library.
``sbsms_INCLUDE_DIRS``
Include directories needed to use sbsms.
``sbsms_LIBRARIES``
Libraries needed to link to sbsms.
``sbsms_DEFINITIONS``
Compile definitions needed to use sbsms.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``sbsms_INCLUDE_DIR``
The directory containing ``sbsms.h``.
``sbsms_LIBRARY``
The path to the sbsms library.
#]=======================================================================]
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PC_sbsms QUIET flac)
endif()
find_path(sbsms_INCLUDE_DIR
NAMES sbsms.h
PATHS ${PC_sbsms_INCLUDE_DIRS}
DOC "sbsms include directory")
mark_as_advanced(sbsms_INCLUDE_DIR)
find_library(sbsms_LIBRARY
NAMES sbsms
PATHS ${PC_sbsms_LIBRARY_DIRS}
DOC "sbsms library"
)
mark_as_advanced(sbsms_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
sbsms
DEFAULT_MSG
sbsms_LIBRARY
sbsms_INCLUDE_DIR
)
if(sbsms_FOUND)
if(NOT TARGET sbsms::sbsms)
add_library(sbsms::sbsms UNKNOWN IMPORTED)
set_target_properties(sbsms::sbsms
PROPERTIES
IMPORTED_LOCATION "${sbsms_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_sbsms_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${sbsms_INCLUDE_DIR}"
)
endif()
endif()

View File

@ -0,0 +1,85 @@
# Copyright (C) 2001-2020 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE.txt file for details.
#[=======================================================================[.rst:
Findsuil
--------
Finds the suil library.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``suil::suil``
The suil library
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``suil_FOUND``
True if the system has the suil library.
``suil_INCLUDE_DIRS``
Include directories needed to use suil.
``suil_LIBRARIES``
Libraries needed to link to suil.
``suil_DEFINITIONS``
Compile definitions needed to use suil.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``suil_INCLUDE_DIR``
The directory containing ``suil/all.h``.
``suil_LIBRARY``
The path to the suil library.
#]=======================================================================]
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PC_suil QUIET suil-0)
endif()
find_path(suil_INCLUDE_DIR
NAMES suil/suil.h
PATHS ${PC_suil_INCLUDE_DIRS}
DOC "suil include directory")
mark_as_advanced(suil_INCLUDE_DIR)
find_library(suil_LIBRARY
NAMES suil-0
PATHS ${PC_suil_LIBRARY_DIRS}
DOC "suil library"
)
mark_as_advanced(suil_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
suil
DEFAULT_MSG
suil_LIBRARY
suil_INCLUDE_DIR
)
if(suil_FOUND)
set(suil_LIBRARIES "${suil_LIBRARY}")
set(suil_INCLUDE_DIRS "${suil_INCLUDE_DIR}")
set(suil_DEFINITIONS ${PC_suil_CFLAGS_OTHER})
if(NOT TARGET suil::suil)
add_library(suil::suil UNKNOWN IMPORTED)
set_target_properties(suil::suil
PROPERTIES
IMPORTED_LOCATION "${suil_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_suil_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${suil_INCLUDE_DIR}"
)
endif()
endif()

View File

@ -1,22 +1,5 @@
// -*- mode: c++ -*-
// Indirectly include Allegro header so that we can disable warnings about unused parameters
// when compiling Audacity itself.
#ifdef _MSC_VER
// If this is compiled with MSVC (Visual Studio)
#pragma warning( push )
#pragma warning( disable : 4100)
#include "../portsmf/allegro.h"
#pragma warning( pop )
#elif defined(__linux__)
#include <cstring> // Allegro include fails if this header isn't included due to no memcpy
#include "../portsmf/allegro.h"
#else //_MSC_VER
#include "../portsmf/allegro.h"
#endif //_MSC_VER
#ifdef PORTSMF_CAPITAL
#include <portSMF/allegro.h>
#else
#include <portsmf/allegro.h>
#endif

View File

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

View File

@ -21,7 +21,7 @@ set(SOURCES
set( LIBRARIES
PRIVATE
wxwidgets::base
wxWidgets::wxWidgets
)
audacity_library( ${TARGET} "${SOURCES}" "${LIBRARIES}" "" "" )

View File

@ -28,7 +28,7 @@ set( SOURCES
)
set( LIBRARIES
PRIVATE
wxBase
wxWidgets::wxWidgets
)
audacity_library( lib-strings "${SOURCES}" "${LIBRARIES}"
"" ""

View File

@ -24,7 +24,7 @@ if( GIT_FOUND )
${CMAKE_COMMAND} -D GIT="${GIT_EXECUTABLE}"
-D GIT_DESCRIBE="${GIT_DESCRIBE}"
-D "_PRVDIR=${_PRVDIR}"
-P "${AUDACITY_MODULE_PATH}/Version.cmake"
-P "cmake-proxies/cmake-modules/Version.cmake"
WORKING_DIRECTORY
${CMAKE_SOURCE_DIR}
)
@ -1028,7 +1028,6 @@ list( APPEND RESOURCES
list( APPEND DEFINES
PRIVATE
BUILDING_AUDACITY
WXUSINGDLL
CMAKE
$<$<BOOL:${HAVE_LRINT}>:
HAVE_LRINT
@ -1072,32 +1071,34 @@ list( APPEND LIBRARIES
PUBLIC
${CMAKE_REQUIRED_LIBRARIES}
ZLIB::ZLIB
wxwidgets::wxwidgets
expat::expat
libmp3lame::libmp3lame
libsndfile
libsoxr
portaudio-v19
sqlite
$<$<BOOL:${USE_FFMPEG}>:ffmpeg>
$<$<BOOL:${USE_LIBID3TAG}>:libid3tag::libid3tag>
$<$<BOOL:${USE_LIBFLAC}>:libflac>
$<$<BOOL:${USE_LIBMAD}>:libmad::libmad>
$<$<BOOL:${USE_LIBOGG}>:libogg>
$<$<BOOL:${USE_LIBVORBIS}>:libvorbis>
$<$<BOOL:${USE_LIBTWOLAME}>:twolame>
$<$<BOOL:${USE_LV2}>:lv2>
$<$<BOOL:${USE_MIDI}>:portmidi>
$<$<BOOL:${USE_MIDI}>:portsmf>
$<$<BOOL:${USE_NYQUIST}>:libnyquist>
wxWidgets::wxWidgets
EXPAT::EXPAT
mp3lame::mp3lame
SndFile::sndfile
Soxr::soxr
PortAudio::PortAudio
${SQLite3_LIBRARIES}
$<$<BOOL:${USE_FFMPEG}>:FFMPEG::FFMPEG>
$<$<BOOL:${USE_LIBID3TAG}>:id3tag::id3tag>
$<$<BOOL:${USE_LIBFLAC}>:FLAC++::FLAC++>
$<$<BOOL:${USE_LIBMAD}>:MAD::MAD>
$<$<BOOL:${USE_LIBOGG}>:Ogg::ogg>
$<$<BOOL:${USE_LIBVORBIS}>:Vorbis::vorbis>
$<$<BOOL:${USE_LIBVORBIS}>:Vorbis::vorbisenc>
$<$<BOOL:${USE_LIBVORBIS}>:Vorbis::vorbisfile>
$<$<BOOL:${USE_LIBTWOLAME}>:libtwolame::libtwolame>
$<$<BOOL:${USE_LV2}>:lilv::lilv>
$<$<BOOL:${USE_LV2}>:suil::suil>
$<$<BOOL:${USE_MIDI}>:PortMidi::PortMidi>
$<$<BOOL:${USE_MIDI}>:PortSMF::PortSMF>
libnyquist
$<$<BOOL:${USE_PORTMIXER}>:portmixer>
$<$<BOOL:${USE_SBSMS}>:libsbsms>
$<$<BOOL:${USE_SOUNDTOUCH}>:soundtouch>
$<$<BOOL:${USE_VAMP}>:libvamp>
$<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD,NetBSD,CYGWIN>:PkgConfig::GLIB>
$<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD,NetBSD,CYGWIN>:PkgConfig::GTK>
$<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD,NetBSD,CYGWIN>:z>
$<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD,NetBSD,CYGWIN>:pthread>
$<$<BOOL:${USE_SBSMS}>:sbsms::sbsms>
$<$<BOOL:${USE_SOUNDTOUCH}>:SoundTouch::SoundTouch>
$<$<BOOL:${USE_VAMP}>:VampHostSDK::VampHostSDK>
$<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD,NetBSD,CYGWIN>:${GLIB_LIBRARIES}>
$<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD,NetBSD,CYGWIN>:GTK::GTK>
$<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD,NetBSD,CYGWIN>:Threads::Threads>
)
set( BUILDING_AUDACITY YES )
@ -1110,11 +1111,11 @@ set( HAVE_GTK ${GTK_FOUND} )
# can be done against ExportMP3.cpp. If either are defined, the
# build will fail.
if( NOT CMAKE_SYSTEM_NAME MATCHES "Windows|Darwin" )
if( "${${_OPT}use_lame}" STREQUAL "local" )
if( LAME_FOUND )
set( DISABLE_DYNAMIC_LOADING_LAME YES )
endif()
if( "${${_OPT}use_ffmpeg}" STREQUAL "linked" )
if( FFMPEG_FOUND )
set( DISABLE_DYNAMIC_LOADING_FFMPEG YES )
endif()
endif()
@ -1210,17 +1211,22 @@ elseif( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
menus/WindowMenus.cpp
widgets/FileDialog/mac/FileDialogPrivate.mm
PROPERTIES
COMPILE_FLAGS "-x objective-c++"
COMPILE_FLAGS "-ObjC++"
SKIP_PRECOMPILE_HEADERS YES
)
# Add our required frameworks
list( APPEND LIBRARIES
PRIVATE
"-framework Foundation"
"-framework Cocoa"
"-framework Carbon"
)
if(USE_AUDIO_UNITS)
list(APPEND LIBRARIES
PRIVATE
"-framework AudioUnit"
"-framework CoreAudio"
"-framework CoreAudioKit"
)
"-framework CoreAudioKit")
endif()
# Use the Aqua theme
set( USE_AQUA_THEME 1 )
@ -1340,6 +1346,8 @@ target_compile_definitions( ${TARGET} PRIVATE ${DEFINES} )
target_compile_options( ${TARGET} PRIVATE ${OPTIONS} )
target_include_directories( ${TARGET} PRIVATE ${INCLUDES} )
target_link_options( ${TARGET} PRIVATE ${LDFLAGS} )
# Somehow the "version" target gets added to the LIBRARIES list? But only on Windows??
list(REMOVE_ITEM LIBRARIES version)
target_link_libraries( ${TARGET} ${LIBRARIES} )
target_link_libraries( ${TARGET} PUBLIC ${AUDACITY_LIBRARIES} )

View File

@ -89,6 +89,20 @@ void ScriptCommandRelay::StartScriptServer(tpRegScriptServerFunc scriptFn)
std::thread(server, scriptFn).detach();
}
// FIXME: Why is this mixing private libnyquist symbols with wxString???????
#include "../../lib-src/libnyquist/nyquist/xlisp/xlisp.h"
void * nyq_reformat_aud_do_response(const wxString & Str) {
LVAL dst;
LVAL message;
LVAL success;
wxString Left = Str.BeforeLast('\n').BeforeLast('\n').ToAscii();
wxString Right = Str.BeforeLast('\n').AfterLast('\n').ToAscii();
message = cvstring(Left);
success = Right.EndsWith("OK") ? s_true : nullptr;
dst = cons(message, success);
return (void *)dst;
}
void * ExecForLisp( char * pIn )
{
wxString Str1(pIn);

View File

@ -34,6 +34,5 @@ public:
// The void * return is actually a Lisp LVAL and will be cast to such as needed.
extern void * ExecForLisp( char * pIn );
extern void * nyq_make_opaque_string( int size, unsigned char *src );
extern void * nyq_reformat_aud_do_response(const wxString & Str);
#endif /* End of include guard: __SCRIPT_COMMAND_RELAY__ */

View File

@ -55,7 +55,7 @@ the pitch without changing the tempo.
#undef PACKAGE_BUGREPORT
#undef PACKAGE
#undef VERSION
#include "SoundTouch.h"
#include "soundtouch/SoundTouch.h"
enum {
ID_PercentChange = 10000,

View File

@ -49,7 +49,7 @@
#undef PACKAGE_BUGREPORT
#undef PACKAGE
#undef VERSION
#include "SoundTouch.h"
#include "soundtouch/SoundTouch.h"
enum
{

View File

@ -37,7 +37,7 @@ effect that uses SoundTouch to do its processing (ChangeTempo
#undef PACKAGE_BUGREPORT
#undef PACKAGE
#undef VERSION
#include "SoundTouch.h"
#include "soundtouch/SoundTouch.h"
#ifdef USE_MIDI
EffectSoundTouch::EffectSoundTouch()

View File

@ -3437,18 +3437,6 @@ void * nyq_make_opaque_string( int size, unsigned char *src ){
return (void*)dst;
}
void * nyq_reformat_aud_do_response(const wxString & Str) {
LVAL dst;
LVAL message;
LVAL success;
wxString Left = Str.BeforeLast('\n').BeforeLast('\n').ToAscii();
wxString Right = Str.BeforeLast('\n').AfterLast('\n').ToAscii();
message = cvstring(Left);
success = Right.EndsWith("OK") ? s_true : nullptr;
dst = cons(message, success);
return (void *)dst;
}
#include "../../commands/ScriptCommandRelay.h"