diff options
-rw-r--r-- | media-libs/dr_wav/Manifest | 1 | ||||
-rw-r--r-- | media-libs/dr_wav/dr_wav-0.13.15.ebuild | 108 |
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 +} |