aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media-libs/dr_wav/Manifest1
-rw-r--r--media-libs/dr_wav/dr_wav-0.13.15.ebuild108
2 files changed, 109 insertions, 0 deletions
diff --git a/media-libs/dr_wav/Manifest b/media-libs/dr_wav/Manifest
index 71fba75e1..d7c32dcdd 100644
--- a/media-libs/dr_wav/Manifest
+++ b/media-libs/dr_wav/Manifest
@@ -1 +1,2 @@
DIST dr_wav-0.13.13.gh.tar.gz 518461 BLAKE2B 28a606f184edb697cb3683d2bab6efd134eb304948cfea74c7d3ef1f292402c02c617ba5b2c2ed4c6b6af783a75d83b2e77afac63545a5ec4e772c19e92a1426 SHA512 1266af7606a1d08270e4f5aa4b72054c0df3931e04a6a2134ce14a0b137ea77abd8b746a6affb34881571269561e7fdd45ef50072186aa52d1401e490e9c356a
+DIST dr_wav-0.13.15.gh.tar.gz 518698 BLAKE2B 9598008c392fcb24448f15771bb47e6479c99b529164e28af00600d3eb7066ffb49f328bcaca88cb89ac0348551ff60cbf9c965d1f39e460319a0867b4141821 SHA512 8d6b8324db7a0864b1c264a1aea7f29eb282f726aa2d6ba8be8fb27892dd7c3c047b3b669bcc9744e52b4fb57899437bb42ba17b5cefd3520c98cb17570e68dd
diff --git a/media-libs/dr_wav/dr_wav-0.13.15.ebuild b/media-libs/dr_wav/dr_wav-0.13.15.ebuild
new file mode 100644
index 000000000..c3f9c8dd9
--- /dev/null
+++ b/media-libs/dr_wav/dr_wav-0.13.15.ebuild
@@ -0,0 +1,108 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Single-header WAV audio loader and writer library"
+HOMEPAGE="https://github.com/mackron/dr_libs/"
+COMMIT="e4a7765e598e9e54dc0f520b7e4416359bee80cc"
+SRC_URI="https://github.com/mackron/dr_libs/archive/${COMMIT}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="|| ( MIT-0 public-domain )"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="test? ( media-libs/libsndfile )"
+
+TESTCASES=(
+ dr_wav_encoding.c
+ dr_wav_{decoding,test_0}.{c,cpp}
+)
+
+S="${WORKDIR}/dr_libs-${COMMIT}"
+
+src_prepare() {
+ if use test; then
+ # Unbundle library with incorrect include path.
+ sed -i 's,"../../../miniaudio/miniaudio.h",<miniaudio/miniaudio.h>,' \
+ tests/wav/dr_wav_playback.c || die
+ # Disable profiling tests as they are not relevant downstream.
+ sed -i 's/doProfiling = DRWAV_TRUE/doProfiling = DRWAV_FALSE/' \
+ tests/wav/dr_wav_decoding.c || die
+ # Test cases dr_wav_{en,de}coding.{c,cpp} write and read a file from a
+ # missing directory.
+ mkdir tests/testvectors/wav/tests || die
+ fi
+
+ awk '/Introduction/,/\*\//' dr_wav.h | sed '$d' > README.md
+ assert
+ awk '/REVISION HISTORY/,/\*\//' dr_wav.h | sed '$d' > CHANGELOG
+ assert
+ default
+
+}
+
+src_compile() {
+ if use test; then
+ local MY_{C,CC,CXX,BUILD,FLAGS}
+ MY_CC=$(tc-getCC)
+ MY_CXX=$(tc-getCXX)
+
+ pushd tests > /dev/null || die
+ for tcase in ${TESTCASES[@]}; do
+ einfo "Compiling test case ${tcase}."
+ case ${tcase} in
+ *.cpp)
+ MY_C=${MY_CXX}
+ MY_FLAGS=${CXXFLAGS}
+ ;;
+ *.c)
+ MY_C=${MY_CC}
+ MY_FLAGS=${CFLAGS}
+ ;;
+ *)
+ die "Unknown test case ${tcase}"
+ ;;
+ esac
+ MY_BUILD="${MY_C} wav/${tcase} -o bin/${tcase} ${MY_FLAGS} ${CPPFLAGS}"
+ case ${tcase%.*} in
+ dr_wav_encoding)
+ MY_BUILD="${MY_BUILD} -lm ${LDFLAGS}"
+ ;;
+ *)
+ ;;
+ esac
+ ${MY_BUILD} || die "Build failed: ${MY_BUILD}"
+ done
+ popd || die
+ fi
+}
+
+src_test() {
+ local MY_RUN
+
+ pushd tests || die
+ for tcase in ${TESTCASES[@]}; do
+ einfo "Running test case ${tcase}."
+ MY_RUN="./bin/${tcase}"
+ case ${tcase%.*} in
+ dr_wav_encoding)
+ MY_RUN="${MY_RUN} testvectors/wav/tests/test_encode_gentoo"
+ ;;
+ *)
+ ;;
+ esac
+ ${MY_RUN} || die "Test case ${tcase} failed."
+ done
+ popd || die
+}
+
+src_install() {
+ einstalldocs
+ doheader dr_wav.h
+}