From f7dd99979ae02bcce1647ce199ae301d6ceeb7f6 Mon Sep 17 00:00:00 2001 From: Diogo Pereira Date: Sat, 5 Sep 2015 20:01:08 +0100 Subject: [PATCH] media-libs/libsoundio: new ebuild --- media-libs/libsoundio/Manifest | 1 + .../files/libsoundio-1.0.0_clang.patch | 32 +++ .../libsoundio-1.0.0_examples_tests.patch | 182 ++++++++++++++++++ .../files/libsoundio-1.0.0_static-libs.patch | 52 +++++ media-libs/libsoundio/libsoundio-1.0.0.ebuild | 41 ++++ media-libs/libsoundio/metadata.xml | 24 +++ 6 files changed, 332 insertions(+) create mode 100644 media-libs/libsoundio/Manifest create mode 100644 media-libs/libsoundio/files/libsoundio-1.0.0_clang.patch create mode 100644 media-libs/libsoundio/files/libsoundio-1.0.0_examples_tests.patch create mode 100644 media-libs/libsoundio/files/libsoundio-1.0.0_static-libs.patch create mode 100644 media-libs/libsoundio/libsoundio-1.0.0.ebuild create mode 100644 media-libs/libsoundio/metadata.xml diff --git a/media-libs/libsoundio/Manifest b/media-libs/libsoundio/Manifest new file mode 100644 index 000000000000..a0b6df83d050 --- /dev/null +++ b/media-libs/libsoundio/Manifest @@ -0,0 +1 @@ +DIST libsoundio-1.0.0.tar.gz 112139 SHA256 f05d87916266b6b32020c3e13b78ce9f3a758c43c8f8c8bbaf37578d99e1d3e2 SHA512 d0a0eda701d99ef658ee2858dbf4be2ec872d74bc1c9d05ed5484adcc17e774530c150fcd86cd1213a8dceb6373dfd3319a2c97c506ada0cdfe0f02551c0ddd0 WHIRLPOOL 1720e8eb64dc407a17dfbc9ccc8406184e0fa8c5bcc799553e5af181c9faebc0d0ba75fab0c8d9f6332fec6db1711ae9d6afe4be0e970fd5e9b526511b0a8965 diff --git a/media-libs/libsoundio/files/libsoundio-1.0.0_clang.patch b/media-libs/libsoundio/files/libsoundio-1.0.0_clang.patch new file mode 100644 index 000000000000..9c417c0b63b1 --- /dev/null +++ b/media-libs/libsoundio/files/libsoundio-1.0.0_clang.patch @@ -0,0 +1,32 @@ +From 85c219067579e299f9faddd2c24836cf96cc245b Mon Sep 17 00:00:00 2001 +From: Andrew Kelley +Date: Thu, 3 Sep 2015 14:05:19 -0700 +Subject: [PATCH] build: fix build on linux with clang + +closes #8 +--- + src/alsa.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/alsa.cpp b/src/alsa.cpp +index 18ef1de..8e779a6 100644 +--- a/src/alsa.cpp ++++ b/src/alsa.cpp +@@ -1016,7 +1016,7 @@ static int instream_wait_for_poll(SoundIoInStreamPrivate *is) { + } + } + +-void outstream_thread_run(void *arg) { ++static void outstream_thread_run(void *arg) { + SoundIoOutStreamPrivate *os = (SoundIoOutStreamPrivate *) arg; + SoundIoOutStream *outstream = &os->pub; + SoundIoOutStreamAlsa *osa = &os->backend_data.alsa; +@@ -1367,7 +1367,7 @@ static int outstream_start_alsa(SoundIoPrivate *si, SoundIoOutStreamPrivate *os) + return 0; + } + +-int outstream_begin_write_alsa(SoundIoPrivate *si, SoundIoOutStreamPrivate *os, ++static int outstream_begin_write_alsa(SoundIoPrivate *si, SoundIoOutStreamPrivate *os, + struct SoundIoChannelArea **out_areas, int *frame_count) + { + *out_areas = nullptr; diff --git a/media-libs/libsoundio/files/libsoundio-1.0.0_examples_tests.patch b/media-libs/libsoundio/files/libsoundio-1.0.0_examples_tests.patch new file mode 100644 index 000000000000..aa322c1c7896 --- /dev/null +++ b/media-libs/libsoundio/files/libsoundio-1.0.0_examples_tests.patch @@ -0,0 +1,182 @@ +From a3dd080fda5a3581de0602b5887cda87dca2a915 Mon Sep 17 00:00:00 2001 +From: hasufell +Date: Sat, 5 Sep 2015 14:07:22 +0200 +Subject: [PATCH] Make building examples and tests optional + +--- + CMakeLists.txt | 136 +++++++++++++++++++++++++++++++-------------------------- + 1 file changed, 74 insertions(+), 62 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c109af4..7fa8247 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -25,6 +25,8 @@ set(LIBSOUNDIO_VERSION "${LIBSOUNDIO_VERSION_MAJOR}.${LIBSOUNDIO_VERSION_MINOR}. + message("Configuring libsoundio version ${LIBSOUNDIO_VERSION}") + + option(BUILD_STATIC_LIBS "Build static libraries" ON) ++option(BUILD_EXAMPLE_PROGRAMS "Build example programs" ON) ++option(BUILD_TESTS "Build tests" ON) + option(ENABLE_JACK "Enable JACK backend" ON) + option(ENABLE_PULSEAUDIO "Enable PulseAudio backend" ON) + option(ENABLE_ALSA "Enable ALSA backend" ON) +@@ -254,80 +256,88 @@ install(FILES + + # Example Programs + +-add_executable(sio_sine example/sio_sine.c) +-set_target_properties(sio_sine PROPERTIES +- LINKER_LANGUAGE C +- COMPILE_FLAGS ${EXAMPLE_CFLAGS}) +-target_link_libraries(sio_sine libsoundio_shared) +-install(TARGETS sio_sine DESTINATION ${CMAKE_INSTALL_BINDIR}) ++if(BUILD_EXAMPLE_PROGRAMS) ++ add_executable(sio_sine example/sio_sine.c) ++ set_target_properties(sio_sine PROPERTIES ++ LINKER_LANGUAGE C ++ COMPILE_FLAGS ${EXAMPLE_CFLAGS}) ++ target_link_libraries(sio_sine libsoundio_shared) ++ install(TARGETS sio_sine DESTINATION ${CMAKE_INSTALL_BINDIR}) + +-add_executable(sio_list_devices example/sio_list_devices.c) +-set_target_properties(sio_list_devices PROPERTIES +- LINKER_LANGUAGE C +- COMPILE_FLAGS ${EXAMPLE_CFLAGS}) +-target_link_libraries(sio_list_devices libsoundio_shared) +-install(TARGETS sio_list_devices DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ add_executable(sio_list_devices example/sio_list_devices.c) ++ set_target_properties(sio_list_devices PROPERTIES ++ LINKER_LANGUAGE C ++ COMPILE_FLAGS ${EXAMPLE_CFLAGS}) ++ target_link_libraries(sio_list_devices libsoundio_shared) ++ install(TARGETS sio_list_devices DESTINATION ${CMAKE_INSTALL_BINDIR}) + +-add_executable(sio_microphone example/sio_microphone.c) +-set_target_properties(sio_microphone PROPERTIES +- LINKER_LANGUAGE C +- COMPILE_FLAGS ${EXAMPLE_CFLAGS}) +-target_link_libraries(sio_microphone libsoundio_shared) +-install(TARGETS sio_microphone DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ add_executable(sio_microphone example/sio_microphone.c) ++ set_target_properties(sio_microphone PROPERTIES ++ LINKER_LANGUAGE C ++ COMPILE_FLAGS ${EXAMPLE_CFLAGS}) ++ target_link_libraries(sio_microphone libsoundio_shared) ++ install(TARGETS sio_microphone DESTINATION ${CMAKE_INSTALL_BINDIR}) + +-add_executable(sio_record example/sio_record.c) +-set_target_properties(sio_record PROPERTIES +- LINKER_LANGUAGE C +- COMPILE_FLAGS ${EXAMPLE_CFLAGS}) +-target_link_libraries(sio_record libsoundio_shared) +-install(TARGETS sio_record DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ add_executable(sio_record example/sio_record.c) ++ set_target_properties(sio_record PROPERTIES ++ LINKER_LANGUAGE C ++ COMPILE_FLAGS ${EXAMPLE_CFLAGS}) ++ target_link_libraries(sio_record libsoundio_shared) ++ install(TARGETS sio_record DESTINATION ${CMAKE_INSTALL_BINDIR}) ++endif() + ++if(BUILD_TESTS) ++ include_directories( ++ "${CMAKE_SOURCE_DIR}/test" ++ ) + +-add_executable(unit_tests "${CMAKE_SOURCE_DIR}/test/unit_tests.cpp" ${LIBSOUNDIO_SOURCES}) +-target_link_libraries(unit_tests LINK_PUBLIC ${LIBSOUNDIO_LIBS}) +-set_target_properties(unit_tests PROPERTIES +- LINKER_LANGUAGE C +- COMPILE_FLAGS ${TEST_CFLAGS} +- LINK_FLAGS ${TEST_LDFLAGS} +-) ++ add_executable(unit_tests "${CMAKE_SOURCE_DIR}/test/unit_tests.cpp" ${LIBSOUNDIO_SOURCES}) ++ target_link_libraries(unit_tests LINK_PUBLIC ${LIBSOUNDIO_LIBS}) ++ set_target_properties(unit_tests PROPERTIES ++ LINKER_LANGUAGE C ++ COMPILE_FLAGS ${TEST_CFLAGS} ++ LINK_FLAGS ${TEST_LDFLAGS} ++ ) + +-add_executable(latency "${CMAKE_SOURCE_DIR}/test/latency.cpp" ${LIBSOUNDIO_SOURCES}) +-target_link_libraries(latency LINK_PUBLIC ${LIBSOUNDIO_LIBS}) +-set_target_properties(latency PROPERTIES +- LINKER_LANGUAGE C +- COMPILE_FLAGS ${LIB_CFLAGS} +-) ++ add_executable(latency "${CMAKE_SOURCE_DIR}/test/latency.cpp" ${LIBSOUNDIO_SOURCES}) ++ target_link_libraries(latency LINK_PUBLIC ${LIBSOUNDIO_LIBS}) ++ set_target_properties(latency PROPERTIES ++ LINKER_LANGUAGE C ++ COMPILE_FLAGS ${LIB_CFLAGS} ++ ) + +-add_executable(underflow test/underflow.c) +-set_target_properties(underflow PROPERTIES +- LINKER_LANGUAGE C +- COMPILE_FLAGS ${EXAMPLE_CFLAGS}) +-target_link_libraries(underflow libsoundio_shared) ++ add_executable(underflow test/underflow.c) ++ set_target_properties(underflow PROPERTIES ++ LINKER_LANGUAGE C ++ COMPILE_FLAGS ${EXAMPLE_CFLAGS}) ++ target_link_libraries(underflow libsoundio_shared) + +-add_executable(backend_disconnect_recover test/backend_disconnect_recover.c) +-set_target_properties(backend_disconnect_recover PROPERTIES +- LINKER_LANGUAGE C +- COMPILE_FLAGS ${EXAMPLE_CFLAGS}) +-target_link_libraries(backend_disconnect_recover libsoundio_shared) ++ add_executable(backend_disconnect_recover test/backend_disconnect_recover.c) ++ set_target_properties(backend_disconnect_recover PROPERTIES ++ LINKER_LANGUAGE C ++ COMPILE_FLAGS ${EXAMPLE_CFLAGS}) ++ target_link_libraries(backend_disconnect_recover libsoundio_shared) + +-add_executable(overflow test/overflow.c) +-set_target_properties(overflow PROPERTIES +- LINKER_LANGUAGE C +- COMPILE_FLAGS ${EXAMPLE_CFLAGS}) +-target_link_libraries(overflow libsoundio_shared) ++ add_executable(overflow test/overflow.c) ++ set_target_properties(overflow PROPERTIES ++ LINKER_LANGUAGE C ++ COMPILE_FLAGS ${EXAMPLE_CFLAGS}) ++ target_link_libraries(overflow libsoundio_shared) + + + +-add_custom_target(coverage +- DEPENDS unit_tests +- WORKING_DIRECTORY ${CMAKE_BINARY_DIR} +- COMMAND lcov --directory . --zerocounters --rc lcov_branch_coverage=1 +- COMMAND ./unit_tests +- COMMAND lcov --directory . --capture --output-file coverage.info --rc lcov_branch_coverage=1 +- COMMAND lcov --remove coverage.info '/usr/*' --output-file coverage.info.cleaned --rc lcov_branch_coverage=1 +- COMMAND genhtml -o coverage coverage.info.cleaned --rc lcov_branch_coverage=1 +- COMMAND rm coverage.info coverage.info.cleaned +-) ++ add_custom_target(coverage ++ DEPENDS unit_tests ++ WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ++ COMMAND lcov --directory . --zerocounters --rc lcov_branch_coverage=1 ++ COMMAND ./unit_tests ++ COMMAND lcov --directory . --capture --output-file coverage.info --rc lcov_branch_coverage=1 ++ COMMAND lcov --remove coverage.info '/usr/*' --output-file coverage.info.cleaned --rc lcov_branch_coverage=1 ++ COMMAND genhtml -o coverage coverage.info.cleaned --rc lcov_branch_coverage=1 ++ COMMAND rm coverage.info coverage.info.cleaned ++ ) ++endif() ++ + + add_custom_target(doc + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} +@@ -342,6 +352,8 @@ message("\n" + "* Install Directory : ${CMAKE_INSTALL_PREFIX}\n" + "* Build Type : ${CMAKE_BUILD_TYPE}\n" + "* Build static libs : ${BUILD_STATIC_LIBS}\n" ++ "* Build examples : ${BUILD_EXAMPLE_PROGRAMS}\n" ++ "* Build tests : ${BUILD_TESTS}\n" + ) + + message( diff --git a/media-libs/libsoundio/files/libsoundio-1.0.0_static-libs.patch b/media-libs/libsoundio/files/libsoundio-1.0.0_static-libs.patch new file mode 100644 index 000000000000..4b0875c5a62f --- /dev/null +++ b/media-libs/libsoundio/files/libsoundio-1.0.0_static-libs.patch @@ -0,0 +1,52 @@ +From 0a20aec2a14dcfbcbc741d2002985073094634d8 Mon Sep 17 00:00:00 2001 +From: Diogo Pereira +Date: Fri, 4 Sep 2015 17:21:54 +0100 +Subject: [PATCH] Make building static libs optional + +--- + CMakeLists.txt | 18 +++++++++++------- + 1 file changed, 11 insertions(+), 7 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0e66834..c109af4 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -24,6 +24,7 @@ set(LIBSOUNDIO_VERSION_PATCH 0) + set(LIBSOUNDIO_VERSION "${LIBSOUNDIO_VERSION_MAJOR}.${LIBSOUNDIO_VERSION_MINOR}.${LIBSOUNDIO_VERSION_PATCH}") + message("Configuring libsoundio version ${LIBSOUNDIO_VERSION}") + ++option(BUILD_STATIC_LIBS "Build static libraries" ON) + option(ENABLE_JACK "Enable JACK backend" ON) + option(ENABLE_PULSEAUDIO "Enable PulseAudio backend" ON) + option(ENABLE_ALSA "Enable ALSA backend" ON) +@@ -237,13 +238,15 @@ target_link_libraries(libsoundio_shared LINK_PUBLIC ${LIBSOUNDIO_LIBS}) + install(TARGETS libsoundio_shared DESTINATION ${CMAKE_INSTALL_LIBDIR}) + + +-add_library(libsoundio_static STATIC ${LIBSOUNDIO_SOURCES}) +-set_target_properties(libsoundio_static PROPERTIES +- OUTPUT_NAME soundio +- COMPILE_FLAGS ${LIB_CFLAGS} +- LINKER_LANGUAGE C +-) +-install(TARGETS libsoundio_static DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++if(BUILD_STATIC_LIBS) ++ add_library(libsoundio_static STATIC ${LIBSOUNDIO_SOURCES}) ++ set_target_properties(libsoundio_static PROPERTIES ++ OUTPUT_NAME soundio ++ COMPILE_FLAGS ${LIB_CFLAGS} ++ LINKER_LANGUAGE C ++ ) ++ install(TARGETS libsoundio_static DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++endif() + + install(FILES + ${LIBSOUNDIO_HEADERS} +@@ -338,6 +341,7 @@ message("\n" + "--------------------\n" + "* Install Directory : ${CMAKE_INSTALL_PREFIX}\n" + "* Build Type : ${CMAKE_BUILD_TYPE}\n" ++ "* Build static libs : ${BUILD_STATIC_LIBS}\n" + ) + + message( diff --git a/media-libs/libsoundio/libsoundio-1.0.0.ebuild b/media-libs/libsoundio/libsoundio-1.0.0.ebuild new file mode 100644 index 000000000000..e7fc38681a5f --- /dev/null +++ b/media-libs/libsoundio/libsoundio-1.0.0.ebuild @@ -0,0 +1,41 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit cmake-multilib + +DESCRIPTION="C99 library providing cross-platform audio input and output." +HOMEPAGE="http://libsound.io/" +SRC_URI="http://libsound.io/release/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0/1" +KEYWORDS="~amd64" +IUSE="alsa coreaudio examples pulseaudio static-libs" + +DEPEND="alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )" +RDEPEND="${DEPEND}" + +# All of these patches have been merged upstream (#8, #16, #20) +PATCHES=( "${FILESDIR}/${P}_clang.patch" + "${FILESDIR}/${P}_static-libs.patch" + "${FILESDIR}/${P}_examples_tests.patch" ) + +# ENABLE_JACK does not support the current version of jack1 +# See https://github.com/andrewrk/libsoundio/issues/11 +multilib_src_configure() { + local mycmakeargs=( + $(cmake-utils_use_enable alsa ALSA) + $(cmake-utils_use_enable coreaudio COREAUDIO) + -DENABLE_JACK=OFF + $(cmake-utils_use_enable pulseaudio PULSEAUDIO) + -DENABLE_WASAPI=OFF + $(cmake-utils_use static-libs BUILD_STATIC_LIBS) + -DBUILD_EXAMPLE_PROGRAMS=$(multilib_native_usex examples "ON" "OFF") + -DBUILD_TESTS=OFF + ) + cmake-utils_src_configure +} diff --git a/media-libs/libsoundio/metadata.xml b/media-libs/libsoundio/metadata.xml new file mode 100644 index 000000000000..c6026bf4e066 --- /dev/null +++ b/media-libs/libsoundio/metadata.xml @@ -0,0 +1,24 @@ + + + +proxy-maintainers + + sir.suriv@gmail.com + Diogo Pereira + Proxy maintainer. Assign bugs to him. + + + C99 library providing cross-platform audio input and output. The API is + suitable for real-time software such as digital audio workstations as + well as consumer software such as music players. + + + + superjoe30@gmail.com + Andrew Kelley + + andrewrk/libsoundio + https://github.com/andrewrk/libsoundio/issues + http://libsound.io/doc/ + + -- 2.26.2