mirror of
https://github.com/mackron/miniaudio.git
synced 2026-04-22 16:24:04 +02:00
Merge branch 'dev' into dev-0.12
This commit is contained in:
+103
-1
@@ -1,6 +1,6 @@
|
|||||||
cmake_minimum_required(VERSION 3.10)
|
cmake_minimum_required(VERSION 3.10)
|
||||||
project(miniaudio
|
project(miniaudio
|
||||||
VERSION 0.11
|
VERSION 0.11.22
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -634,6 +634,87 @@ if(MINIAUDIO_NO_RUNTIME_LINKING)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
function(is_backend_enabled NAME)
|
||||||
|
if (NOT MINIAUDIO_NO_${NAME} AND (NOT MINIAUDIO_ENABLE_ONLY_SPECIFIC_BACKENDS OR MINIAUDIO_ENABLE_${NAME}))
|
||||||
|
set(${NAME}_ENABLED TRUE PARENT_SCOPE)
|
||||||
|
else()
|
||||||
|
set(${NAME}_ENABLED FALSE PARENT_SCOPE)
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
set(LINKED_LIBS)
|
||||||
|
|
||||||
|
if(MINIAUDIO_NO_RUNTIME_LINKING)
|
||||||
|
is_backend_enabled(PULSEAUDIO)
|
||||||
|
if (PULSEAUDIO_ENABLED)
|
||||||
|
find_package(PulseAudio REQUIRED)
|
||||||
|
target_link_libraries(miniaudio PRIVATE ${PULSEAUDIO_LIBRARY})
|
||||||
|
target_include_directories(miniaudio SYSTEM PRIVATE ${PULSEAUDIO_INCLUDE_DIR})
|
||||||
|
list(APPEND LINKED_LIBS libpulse)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
is_backend_enabled(ALSA)
|
||||||
|
if (ALSA_ENABLED)
|
||||||
|
find_package(PkgConfig QUIET)
|
||||||
|
|
||||||
|
if(PKG_CONFIG_FOUND)
|
||||||
|
pkg_check_modules(PC_ALSA alsa)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_library(ALSA_LIBRARY
|
||||||
|
NAMES asound
|
||||||
|
HINTS ${PC_ALSA_LIBRARY_DIRS}
|
||||||
|
)
|
||||||
|
find_path(ALSA_INCLUDE_DIR
|
||||||
|
NAMES alsa/asoundlib.h
|
||||||
|
HINTS ${PC_ALSA_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(miniaudio PRIVATE ${ALSA_LIBRARY})
|
||||||
|
target_include_directories(miniaudio PRIVATE ${ALSA_INCLUDE_DIR})
|
||||||
|
list(APPEND LINKED_LIBS alsa)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
is_backend_enabled(SNDIO)
|
||||||
|
if (SNDIO_ENABLED)
|
||||||
|
find_package(PkgConfig QUIET)
|
||||||
|
|
||||||
|
if(PKG_CONFIG_FOUND)
|
||||||
|
pkg_check_modules(PC_SNDIO sndio)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_library(SNDIO_LIBRARY
|
||||||
|
NAMES sndio
|
||||||
|
HINTS ${PC_SNDIO_LIBRARY_DIRS}
|
||||||
|
)
|
||||||
|
target_link_libraries(miniaudio PRIVATE ${SNDIO_LIBRARY})
|
||||||
|
list(APPEND LINKED_LIBS sndio)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
is_backend_enabled(JACK)
|
||||||
|
if (JACK_ENABLED)
|
||||||
|
find_package(PkgConfig QUIET)
|
||||||
|
|
||||||
|
if(PKG_CONFIG_FOUND)
|
||||||
|
pkg_check_modules(PC_JACK jack)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_library(JACK_LIBRARY
|
||||||
|
NAMES jack
|
||||||
|
HINTS ${PC_JACK_LIBRARY_DIRS}
|
||||||
|
)
|
||||||
|
|
||||||
|
find_path(JACK_INCLUDE_DIR
|
||||||
|
NAMES jack/jack.h
|
||||||
|
HINTS ${PC_JACK_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(miniaudio PRIVATE ${JACK_LIBRARY})
|
||||||
|
target_include_directories(miniaudio PRIVATE ${JACK_INCLUDE_DIR})
|
||||||
|
list(APPEND LINKED_LIBS jack)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
# Tests
|
# Tests
|
||||||
#
|
#
|
||||||
# All tests are compiled as a single translation unit. There is no need to add miniaudio as a link library.
|
# All tests are compiled as a single translation unit. There is no need to add miniaudio as a link library.
|
||||||
@@ -760,6 +841,27 @@ if (MINIAUDIO_BUILD_EXAMPLES)
|
|||||||
add_miniaudio_example(miniaudio_simple_spatialization simple_spatialization.c)
|
add_miniaudio_example(miniaudio_simple_spatialization simple_spatialization.c)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||||
|
set(MINIAUDIO_PC_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||||
|
else()
|
||||||
|
set(MINIAUDIO_PC_INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
|
||||||
|
endif()
|
||||||
|
if(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}")
|
||||||
|
set(MINIAUDIO_PC_LIBDIR "${CMAKE_INSTALL_LIBDIR}")
|
||||||
|
else()
|
||||||
|
set(MINIAUDIO_PC_LIBDIR "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
string(JOIN ", " MINIAUDIO_PC_REQUIRES_PRIVATE ${LINKED_LIBS})
|
||||||
|
list(TRANSFORM COMMON_LINK_LIBRARIES PREPEND "-l")
|
||||||
|
string(JOIN " " MINIAUDIO_PC_LIBS_PRIVATE ${COMMON_LINK_LIBRARIES})
|
||||||
|
list(TRANSFORM COMPILE_DEFINES PREPEND "-D")
|
||||||
|
string(JOIN " " MINIAUDIO_PC_CFLAGS ${COMPILE_DEFINES})
|
||||||
|
|
||||||
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/miniaudio.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/miniaudio.pc" @ONLY)
|
||||||
|
|
||||||
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/miniaudio.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
|
||||||
|
|
||||||
message(STATUS "Library list: ${LIBS_TO_INSTALL}")
|
message(STATUS "Library list: ${LIBS_TO_INSTALL}")
|
||||||
install(TARGETS ${LIBS_TO_INSTALL}
|
install(TARGETS ${LIBS_TO_INSTALL}
|
||||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
prefix=@CMAKE_INSTALL_PREFIX@
|
||||||
|
exec_prefix=${prefix}
|
||||||
|
includedir=@MINIAUDIO_PC_INCLUDEDIR@
|
||||||
|
libdir=@MINIAUDIO_PC_LIBDIR@
|
||||||
|
|
||||||
|
Name: miniaudio
|
||||||
|
Description: An audio playback and capture library.
|
||||||
|
URL: https://miniaud.io/
|
||||||
|
License: Unlicense OR MIT-0
|
||||||
|
Version: @PROJECT_VERSION@
|
||||||
|
|
||||||
|
Requires.private: @MINIAUDIO_PC_REQUIRES_PRIVATE@
|
||||||
|
Cflags: -I${includedir} @MINIAUDIO_PC_CFLAGS@
|
||||||
|
Libs: -L${libdir} -lminiaudio
|
||||||
|
Libs.private: @MINIAUDIO_PC_LIBS_PRIVATE@
|
||||||
Reference in New Issue
Block a user