summaryrefslogtreecommitdiff
path: root/media-sound/tenacity/tenacity-1.3.5-r1.ebuild
blob: bc139bb79943907da5afa3038263b72d4b073db1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

# as of 1.3.5 tenacity supports wxWidgets 3.3+, can be updated if/when it becomes available on gentoo
WX_GTK_VER="3.2-gtk3"

inherit cmake wxwidgets xdg virtualx

# libnyquist doesn't have tags, instead use the specific submodule commit tenacity does
LIBNYQUIST_COMMIT="aaf654f44192240170cdb5ed4dc2f004dad2b1e2"

DESCRIPTION="Easy-to-use, privacy-friendly, FLOSS, cross-platform multi-track audio editor"
HOMEPAGE="https://tenacityaudio.org/"
SRC_URI="https://codeberg.org/tenacityteam/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
	https://codeberg.org/tenacityteam/libnyquist/archive/${LIBNYQUIST_COMMIT}.tar.gz -> ${PN}-libnyquist-${PV}.tar.gz"

# codeberg doesn't append tag
S="${WORKDIR}/${PN}"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64"

IUSE="ffmpeg +midi +lame +id3tag +mp3 mp2 +flac matroska +ogg +vorbis +sbsms +soundtouch +ladspa +lv2 vamp +vst2"
REQUIRED_USE="
	id3tag? ( mp3 )
	lame? ( mp3 )
"

# due to a clash with the file: /usr/share/pixmaps/gnome-mime-application-x-audacity-project.xmp
# tenacity won't merge correctly with audacity also installed (bug #964248)
DEPEND="
	virtual/zlib:=
	dev-libs/expat
	media-sound/lame
	media-libs/libsndfile
	media-libs/soxr
	dev-db/sqlite:3
	media-libs/portaudio
	dev-libs/glib:2
	x11-libs/gtk+:3
	x11-libs/wxGTK:${WX_GTK_VER}=[X]

	midi? (
		media-libs/portmidi
		media-libs/portsmf
	)
	id3tag? ( media-libs/libid3tag )
	mp3? ( media-libs/libmad )
	mp2? ( media-sound/twolame )
	matroska? ( media-libs/libmatroska )
	ogg? ( media-libs/libogg )
	vorbis? ( media-libs/libvorbis )
	flac? ( media-libs/flac )
	sbsms? ( media-libs/libsbsms )
	soundtouch? ( media-libs/libsoundtouch )
	ffmpeg? ( media-video/ffmpeg )
	vamp? ( media-libs/vamp-plugin-sdk )
	lv2? (
		media-libs/lv2
		media-libs/lilv
		media-libs/suil
	)

	sys-devel/gettext
	dev-libs/serd
	dev-libs/sord
	media-libs/sratom
	media-libs/taglib
	!media-sound/audacity
"
RDEPEND="${DEPEND}"

PATCHES=(
	"${FILESDIR}/${PN}-1.3.4-fix-rpath-handling.patch"
	"${FILESDIR}/${PN}-1.3.4-fix-hardcoded-docdir.patch"
	"${FILESDIR}/${PN}-1.3.4-odr-and-aliasing-fixes.patch" # bug #961756
	"${FILESDIR}/${PN}-1.3.4-ffmpeg-disable-lto.patch"
	"${FILESDIR}/${PN}-1.3.4-fix-gcc15.patch"
	"${FILESDIR}/${PN}-1.3.5-build-static-libnyquist.patch" # bug #981262
)

src_unpack() {
	default

	# otherwise build will try to run git --submodule --init
	rmdir "${S}/lib-src/libnyquist" || die
	mv "${WORKDIR}/libnyquist" "${S}/lib-src/libnyquist"
}

src_configure() {
	setup-wxwidgets

	local mycmakeargs=(
		-DVCPKG=OFF
		-DPERFORM_CODESIGN=OFF

		# portage handles this, specify off to stop autodetect
		-DSCCACHE=OFF
		-DCCACHE=OFF

		# Pre-Compiled Headers needs to stay off, even with ccache installed
		# otherwise a bunch of preprocessor variables will be missing
		-DPCH=OFF

		-DMIDI=$(usex midi ON OFF)
		-DID3TAG=$(usex id3tag ON OFF)
		-DMP3_DECODING=$(usex mp3 ON OFF)
		-DMP2=$(usex mp2 ON OFF)
		-DMATROSKA=$(usex matroska ON OFF)
		-DOGG=$(usex ogg ON OFF)
		-DVORBIS=$(usex vorbis ON OFF)
		-DFLAC=$(usex flac ON OFF)
		-DSBSMS=$(usex sbsms ON OFF)
		-DSOUNDTOUCH=$(usex soundtouch ON OFF)
		-DFFMPEG=$(usex ffmpeg ON OFF)
		-DLADSPA=$(usex ladspa ON OFF)
		#-DAUDIO_UNITS=OFF  # option only exists on MacOS
		-DLV2=$(usex lv2 ON OFF)
		-DVAMP=$(usex vamp ON OFF)
		-DVST2=$(usex vst2 ON OFF)

		# this flag is misleading, when not "" the flag only has an effect
		# when CMAKE_GENERATOR is "Visual Studio*" or "XCode" (i.e. not us)
		# man pages will be installed regardless on linux
		-DMANUAL_PATH=""
	)

	cmake_src_configure
}

src_test() {
	virtx cmake_src_test
}