lmms: fix build zynaddsubfx plugin

This commit is contained in:
hfsfox
2024-02-29 00:34:33 +02:00
committed by Gerasim Troeglazov
parent 3c91f8a9c8
commit c9d590745c
2 changed files with 126 additions and 7 deletions

View File

@@ -25,10 +25,14 @@ PROVIDES="
REQUIRES="
haiku$secondaryArchSuffix
lib:libfftw3f$secondaryArchSuffix
lib:libfltk$secondaryArchSuffix
lib:libfltk_forms$secondaryArchSuffix
lib:libfltk_images$secondaryArchSuffix
lib:libfluidsynth$secondaryArchSuffix >= 2
lib:libmp3lame$secondaryArchSuffix
lib:libogg$secondaryArchSuffix
lib:libportaudio$secondaryArchSuffix
lib:libportmidi$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
@@ -45,10 +49,14 @@ REQUIRES="
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libfftw3f$secondaryArchSuffix
devel:libfltk$secondaryArchSuffix
devel:libfltk_forms$secondaryArchSuffix
devel:libfltk_images$secondaryArchSuffix
devel:libfluidsynth$secondaryArchSuffix >= 2
devel:libmp3lame$secondaryArchSuffix
devel:libogg$secondaryArchSuffix
devel:libportaudio$secondaryArchSuffix
devel:libportmidi$secondaryArchSuffix
devel:libQt5Core$secondaryArchSuffix
devel:libQt5Gui$secondaryArchSuffix
devel:libQt5Widgets$secondaryArchSuffix
@@ -60,6 +68,8 @@ BUILD_REQUIRES="
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:fltk_config$commandSuffix
cmd:fluid$commandSuffix
cmd:g++$secondaryArchSuffix
cmd:make
cmd:lrelease$secondaryArchSuffix >= 5

View File

@@ -1,11 +1,11 @@
From 8478979d9e9d215a5c05af3e7f4b255270bc5bd8 Mon Sep 17 00:00:00 2001
From 9156b190fa20b61ecb0ce1071a2aa39fc0f8e41b Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sun, 14 Apr 2019 19:41:47 +1000
Subject: Disable TLS for Haiku
diff --git a/src/3rdparty/rpmalloc/CMakeLists.txt b/src/3rdparty/rpmalloc/CMakeLists.txt
index 23d1551..c0af99d 100644
index da6e722..c553c57 100644
--- a/src/3rdparty/rpmalloc/CMakeLists.txt
+++ b/src/3rdparty/rpmalloc/CMakeLists.txt
@@ -15,6 +15,12 @@ if (NOT LMMS_BUILD_WIN32)
@@ -22,10 +22,10 @@ index 23d1551..c0af99d 100644
# rpmalloc uses GCC builtin "__builtin_umull_overflow" with ENABLE_VALIDATE_ARGS,
# which is only available starting with GCC 5
--
2.21.0
2.43.2
From f4ba6407553e7eabc6c51cb3b03661d3d9701233 Mon Sep 17 00:00:00 2001
From 5b83e94e6d12469358faa99351dd16531c3d9d13 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sun, 14 Apr 2019 21:46:08 +1000
Subject: Fix settings dir
@@ -105,10 +105,10 @@ index 2ed0f83..050347f 100644
{
setValue( "paths", "artwork", m_artworkDir );
--
2.21.0
2.43.2
From 30054219222256dd02b59c639b9822580cb58bd2 Mon Sep 17 00:00:00 2001
From ac1a1c5316e9df2314a07c25af1ba357c52cc904 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Sat, 28 Sep 2019 10:50:26 +0200
Subject: rpmalloc: disable TLS for Haiku.
@@ -177,5 +177,114 @@ index a5cf999..16c28b1 100644
#endif
}
--
2.21.0
2.43.2
From b7fb99800968e9bebfda6889d651f64e66e356bb Mon Sep 17 00:00:00 2001
From: hfsfox <darkkitsunezx128k2309@gmail.com>
Date: Thu, 29 Feb 2024 00:01:39 +0200
Subject: fix build zynaddsubfx plugin
diff --git a/plugins/zynaddsubfx/CMakeLists.txt b/plugins/zynaddsubfx/CMakeLists.txt
index 4c170a9..247d0d4 100644
--- a/plugins/zynaddsubfx/CMakeLists.txt
+++ b/plugins/zynaddsubfx/CMakeLists.txt
@@ -131,6 +131,10 @@ IF(QT5)
TARGET_LINK_LIBRARIES(ZynAddSubFxCore Qt5::Widgets Qt5::Xml)
ENDIF()
+IF(HAIKU)
+TARGET_LINK_LIBRARIES(ZynAddSubFxCore -lnetwork -lbsd)
+ENDIF()
+
IF(LMMS_BUILD_WIN32)
TARGET_LINK_LIBRARIES(ZynAddSubFxCore -lws2_32)
INSTALL(TARGETS ZynAddSubFxCore RUNTIME DESTINATION "${PLUGIN_DIR}")
@@ -187,6 +191,10 @@ IF(QT5)
TARGET_LINK_LIBRARIES(RemoteZynAddSubFx Qt5::Core)
ENDIF(QT5)
+IF(HAIKU)
+TARGET_LINK_LIBRARIES(RemoteZynAddSubFx -lnetwork -lbsd)
+ENDIF()
+
# link Qt libraries when on win32
IF(LMMS_BUILD_WIN32)
TARGET_LINK_LIBRARIES(RemoteZynAddSubFx ${QT_LIBRARIES})
diff --git a/plugins/zynaddsubfx/RemoteZynAddSubFx.cpp b/plugins/zynaddsubfx/RemoteZynAddSubFx.cpp
index 7cb6e63..3c282e7 100644
--- a/plugins/zynaddsubfx/RemoteZynAddSubFx.cpp
+++ b/plugins/zynaddsubfx/RemoteZynAddSubFx.cpp
@@ -27,6 +27,10 @@
#include <winsock2.h>
#endif
+#ifdef __HAIKU__
+#include <posix/unistd.h>
+#endif
+
#include <queue>
#define BUILD_REMOTE_PLUGIN_CLIENT
diff --git a/plugins/zynaddsubfx/zynaddsubfx/src/DSP/SVFilter.cpp b/plugins/zynaddsubfx/zynaddsubfx/src/DSP/SVFilter.cpp
index e7836a8..9f9556d 100644
--- a/plugins/zynaddsubfx/zynaddsubfx/src/DSP/SVFilter.cpp
+++ b/plugins/zynaddsubfx/zynaddsubfx/src/DSP/SVFilter.cpp
@@ -146,7 +146,9 @@ void SVFilter::singlefilterout(float *smp, fstage &x, parameters &par)
break;
default:
#ifndef WIN32
+#ifndef __HAIKU__
errx(1, "Impossible SVFilter type encountered [%d]", type);
+#endif
#endif
break;
}
diff --git a/plugins/zynaddsubfx/zynaddsubfx/src/DSP/Unison.cpp b/plugins/zynaddsubfx/zynaddsubfx/src/DSP/Unison.cpp
index 82880f1..2fa876a 100644
--- a/plugins/zynaddsubfx/zynaddsubfx/src/DSP/Unison.cpp
+++ b/plugins/zynaddsubfx/zynaddsubfx/src/DSP/Unison.cpp
@@ -113,8 +113,10 @@ void Unison::updateParameters(void)
//and thus are buggy
if(unison_amplitude_samples >= max_delay - 1) {
#ifndef WIN32
+#ifndef __HAIKU__
warnx("BUG: Unison amplitude samples too big");
warnx("Unision max_delay should be larger");
+#endif
#endif
unison_amplitude_samples = max_delay - 2;
}
diff --git a/plugins/zynaddsubfx/zynaddsubfx/src/Misc/Util.cpp b/plugins/zynaddsubfx/zynaddsubfx/src/Misc/Util.cpp
index 8af97d4..c0ade4a 100644
--- a/plugins/zynaddsubfx/zynaddsubfx/src/Misc/Util.cpp
+++ b/plugins/zynaddsubfx/zynaddsubfx/src/Misc/Util.cpp
@@ -198,9 +198,11 @@ void clearTmpBuffers(void)
{
for(pool_itr_t itr = pool.begin(); itr != pool.end(); ++itr) {
#ifndef WIN32
+#ifndef __HAIKU__
if(!itr->free) //Warn about used buffers
warn("Temporary buffer (%p) about to be freed may be in use",
itr->dat);
+#endif
#endif
delete [] itr->dat;
}
diff --git a/plugins/zynaddsubfx/zynaddsubfx/src/UI/MasterUI.fl b/plugins/zynaddsubfx/zynaddsubfx/src/UI/MasterUI.fl
index 254e505..550c299 100644
--- a/plugins/zynaddsubfx/zynaddsubfx/src/UI/MasterUI.fl
+++ b/plugins/zynaddsubfx/zynaddsubfx/src/UI/MasterUI.fl
@@ -1696,7 +1696,7 @@ configui=new ConfigUI();
make_window();
\#ifdef OS_WINDOWS
-masterwindow->icon((char *)LoadIcon(GetModuleHandle(NULL), "zynaddsubfx_icon"));
+#masterwindow->icon((char *)LoadIcon(GetModuleHandle(NULL), "zynaddsubfx_icon"));
\#endif
presetsui=new PresetsUI();
--
2.43.2