git: 9b7d73b61bb4 - main - audio/furnace: Refactor port

From: Emanuel Haupt <ehaupt_at_FreeBSD.org>
Date: Sun, 06 Apr 2025 19:49:03 UTC
The branch main has been updated by ehaupt:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9b7d73b61bb4d65fb0d4578070d7847148d4a4a9

commit 9b7d73b61bb4d65fb0d4578070d7847148d4a4a9
Author:     Daniel Engberg <diizzy@FreeBSD.org>
AuthorDate: 2025-04-06 19:48:35 +0000
Commit:     Emanuel Haupt <ehaupt@FreeBSD.org>
CommitDate: 2025-04-06 19:48:52 +0000

    audio/furnace: Refactor port
    
    * Unbundle fftw3, freetype, libsndfile and portaudio (this is also more
      inline with other distros)
    * Add USES= compiler:c++14-lang
    * Remove USES= tar:xz
    * Remove entries for sdl and fmt in GH_TUPLE
    * Add EXTRACT_AFTER_ARGS to reduce I/O (reduces workdir size with ~40%)
      and as build script "leaks"
    * Use CMAKE_OFF/ON/BOOL helpers
    * Add patch to fix path for system rtmidi
    
    PR:             285918
---
 audio/furnace/Makefile                       | 45 +++++++++++++++++-----------
 audio/furnace/files/patch-src_audio_rtmidi.h | 18 +++++++++++
 2 files changed, 46 insertions(+), 17 deletions(-)

diff --git a/audio/furnace/Makefile b/audio/furnace/Makefile
index 02675c36330d..2a94b374a7f6 100644
--- a/audio/furnace/Makefile
+++ b/audio/furnace/Makefile
@@ -1,6 +1,7 @@
 PORTNAME=	furnace
 DISTVERSIONPREFIX=	v
 DISTVERSION=	0.6.8.1
+PORTREVISION=	1
 CATEGORIES=	audio
 
 MAINTAINER=	ehaupt@FreeBSD.org
@@ -11,39 +12,49 @@ LICENSE=	GPLv2
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 LIB_DEPENDS=	libasound.so:audio/alsa-lib \
+		libfftw3.so:math/fftw3 \
 		libfmt.so:devel/libfmt \
+		libfreetype.so:print/freetype2 \
+		libsndfile.so:audio/libsndfile \
+		libportaudio.so:audio/portaudio \
 		librtmidi.so:audio/rtmidi \
-		libsndfile.so:audio/libsndfile
 
-USES=		cmake desktop-file-utils gl localbase:ldflags pkgconfig sdl \
-		shared-mime-info tar:xz
+USES=		cmake compiler:c++14-lang desktop-file-utils gl \
+		localbase:ldflags pkgconfig sdl shared-mime-info
 USE_GITHUB=	yes
 GH_ACCOUNT=	tildearrow
-GH_TUPLE=	libsdl-org:SDL:2359383fc:sdl/extern/SDL \
-		superctr:adpcm:ef7a21715:adpcm/extern/adpcm \
-		fmtlib:fmt:e57ca2e36:fmt/extern/fmt
+GH_TUPLE=	superctr:adpcm:ef7a21715:adpcm/extern/adpcm
 USE_GL=		gl
 USE_SDL=	sdl2
 
-CMAKE_ARGS+=	-DBUILD_GUI:BOOL=ON \
-		-DSYSTEM_FMT:BOOL=ON \
-		-DSYSTEM_LIBSNDFILE:BOOL=ON \
-		-DSYSTEM_RTMIDI=ON \
-		-DSYSTEM_SDL2:BOOL=ON \
-		-DSYSTEM_ZLIB:BOOL=ON
+CMAKE_ON=	SYSTEM_FFTW \
+		SYSTEM_FMT \
+		SYSTEM_FREETYPE \
+		SYSTEM_LIBSNDFILE \
+		SYSTEM_PORTAUDIO \
+		SYSTEM_RTMIDI \
+		SYSTEM_SDL2 \
+		SYSTEM_ZLIB
+CMAKE_OFF=	WITH_RENDER_OPENGL1
 
-# tags are bogus, ignore until 0.6 is released
-PORTSCOUT=	ignore:1
+EXTRACT_AFTER_ARGS=	--exclude ${GH_PROJECT_DEFAULT}-${GH_TAGNAME_EXTRACT}/extern/fftw \
+			--exclude ${GH_PROJECT_DEFAULT}-${GH_TAGNAME_EXTRACT}/extern/fmt \
+			--exclude ${GH_PROJECT_DEFAULT}-${GH_TAGNAME_EXTRACT}/extern/freetype \
+			--exclude ${GH_PROJECT_DEFAULT}-${GH_TAGNAME_EXTRACT}/extern/libsndfile-modified \
+			--exclude ${GH_PROJECT_DEFAULT}-${GH_TAGNAME_EXTRACT}/extern/portaudio \
+			--exclude ${GH_PROJECT_DEFAULT}-${GH_TAGNAME_EXTRACT}/extern/rtmidi \
+			--exclude ${GH_PROJECT_DEFAULT}-${GH_TAGNAME_EXTRACT}/extern/SDL \
+			--exclude ${GH_PROJECT_DEFAULT}-${GH_TAGNAME_EXTRACT}/extern/zlib \
+			--no-same-owner --no-same-permissions
 
 OPTIONS_DEFINE=	DOCS JACK NLS
 OPTIONS_SUB=	yes
 
 JACK_LIB_DEPENDS=	libjack.so:audio/jack
-JACK_CMAKE_OFF=		-DWITH_JACK:BOOL=OFF
+JACK_CMAKE_BOOL=	WITH_JACK
 
 NLS_USES=	gettext-runtime
-NLS_CMAKE_ON=	-DWITH_LOCALE:BOOL=ON
-NLS_CMAKE_OFF=	-DWITH_LOCALE:BOOL=OFF
+NLS_CMAKE_BOOL=	WITH_LOCALE
 
 post-install:
 	${INSTALL_DATA} \
diff --git a/audio/furnace/files/patch-src_audio_rtmidi.h b/audio/furnace/files/patch-src_audio_rtmidi.h
new file mode 100644
index 000000000000..e1da3bff3fb0
--- /dev/null
+++ b/audio/furnace/files/patch-src_audio_rtmidi.h
@@ -0,0 +1,18 @@
+--- src/audio/rtmidi.h.orig	2025-04-06 15:53:42 UTC
++++ src/audio/rtmidi.h
+@@ -17,7 +17,7 @@
+  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+  */
+ 
+-#include "../../extern/rtmidi/RtMidi.h"
++#include "rtmidi/RtMidi.h"
+ #include "taAudio.h"
+ 
+ class TAMidiInRtMidi: public TAMidiIn {
+@@ -51,4 +51,4 @@ class TAMidiOutRtMidi: public TAMidiOut {
+       port(NULL),
+       isOpen(false),
+       isWorking(false) {}
+-};
+\ No newline at end of file
++};