rtaudio: add recipe (#8962)

This commit is contained in:
hfsfox
2024-09-18 10:06:58 +03:00
committed by GitHub
parent 12c6511ba1
commit e015976453
2 changed files with 148 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
From dd9aa2e5fe6aeba2217439fa8d5e4de9f32ff0e7 Mon Sep 17 00:00:00 2001
From: hfsfox <darkkitsunezx128k2309@gmail.com>
Date: Thu, 26 Jan 2023 17:38:20 +0200
Subject: Enable build on Haiku
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 21da42a..8b427b6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -24,7 +24,7 @@ pkg_check_modules(pulse libpulse-simple)
if (CMAKE_SYSTEM_NAME MATCHES "kNetBSD.*|NetBSD.*")
message(STATUS "NetBSD detected, using OSS")
set(xBSD ON)
-elseif(UNIX AND NOT APPLE)
+elseif(UNIX AND NOT APPLE AND NOT HAIKU)
set(LINUX ON)
endif()
diff --git a/RtAudio.cpp b/RtAudio.cpp
index 40fb6a9..0fa1e80 100644
--- a/RtAudio.cpp
+++ b/RtAudio.cpp
@@ -82,7 +82,7 @@ const unsigned int RtApi::SAMPLE_RATES[] = {
return s;
}
-#elif defined(__unix__) || defined(__APPLE__)
+#elif defined(__unix__) || defined(__APPLE__) || defined (__HAIKU__)
// pthread API
#define MUTEX_INITIALIZE(A) pthread_mutex_init(A, NULL)
#define MUTEX_DESTROY(A) pthread_mutex_destroy(A)
--
2.37.3
From ee7f4d66433b1f4c3bcc5a9bdebb5d32396ef19b Mon Sep 17 00:00:00 2001
From: hfsfox <darkkitsunezx128k2309@gmail.com>
Date: Tue, 4 Jul 2023 12:39:29 +0000
Subject: fix cmake files install paths
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8b427b6..48fb1bb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -204,9 +204,13 @@ endif()
# pthread
if (NEED_PTHREAD)
- find_package(Threads REQUIRED
- CMAKE_THREAD_PREFER_PTHREAD
- THREADS_PREFER_PTHREAD_FLAG)
+ if (HAIKU)
+ find_package(Threads REQUIRED)
+ else()
+ find_package(Threads REQUIRED
+ CMAKE_THREAD_PREFER_PTHREAD
+ THREADS_PREFER_PTHREAD_FLAG)
+ endif()
list(APPEND LINKLIBS Threads::Threads)
endif()
@@ -315,7 +319,11 @@ install(FILES RtAudio.h rtaudio_c.h
export(PACKAGE RtAudio)
# Set installation path for CMake files.
-set(RTAUDIO_CMAKE_DESTINATION share/rtaudio)
+if (HAIKU)
+ set(RTAUDIO_CMAKE_DESTINATION lib/cmake/rtaudio)
+else()
+ set(RTAUDIO_CMAKE_DESTINATION share/rtaudio)
+endif()
# Create CMake configuration export file.
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/RtAudioConfig.cmake.in "@PACKAGE_INIT@\n")
--
2.37.3

View File

@@ -0,0 +1,69 @@
SUMMARY="A set of C++ classes that provide a common API for realtime audio input/output"
DESCRIPTION="RtAudio is a set of C++ classes that provides a common API \
(Application Programming Interface) for realtime audio input/output across Linux \
(native ALSA, JACK, PulseAudio and OSS), Macintosh OS X and Windows (DirectSound, ASIO and WASAPI) \
operating systems. RtAudio significantly simplifies the process of interacting with computer audio \
hardware."
HOMEPAGE="https://www.music.mcgill.ca/~gary/rtaudio/"
COPYRIGHT="Gary P. Scavone, 2001-2022 (and many other developers!)"
LICENSE="MIT"
REVISION="1"
SOURCE_URI="https://github.com/thestk/rtaudio/archive/refs/tags/$portVersion.tar.gz"
CHECKSUM_SHA256="a8d9c738addffd485c3f0bab14cbba72600267e3113f274398c67829bbb49332"
SOURCE_DIR="rtaudio-$portVersion"
PATCHES="rtaudio-$portVersion.patchset"
ARCHITECTURES="?all !x86_gcc2"
SECONDARY_ARCHITECTURES="?x86"
libVersion="6.0.2"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
rtaudio$secondaryArchSuffix = $portVersion
lib:librtaudio$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku${secondaryArchSuffix}
"
PROVIDES_devel="
rtaudio${secondaryArchSuffix}_devel = $portVersion
devel:librtaudio$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
haiku${secondaryArchSuffix}_devel
rtaudio$secondaryArchSuffix == $portVersion
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:make
cmd:pkg_config$secondaryArchSuffix
"
BUILD()
{
cmake -Bbuild -S. $cmakeDirArgs \
-DCMAKE_BUILD_TYPE=Release \
-DRTAUDIO_BUILD_TESTING=0
make -C build $jobArgs
}
INSTALL()
{
make -C build install
prepareInstalledDevelLib librtaudio
fixPkgconfig strict
sed -e 's,^includedir=\(.*\)include,includedir=${prefix}/'${relativeIncludeDir}',' \
-i $developLibDir/pkgconfig/rtaudio.pc
packageEntries devel \
$developDir \
$libDir/cmake
}