Files
haikuports/media-sound/kid3/kid3-3.9.6.recipe
2024-11-23 11:35:43 +01:00

156 lines
4.9 KiB
Bash

SUMMARY="Audio Tag Editor"
DESCRIPTION="With Kid3, an audio tag editor, you can edit tags in MP3, Ogg/Vorbis, DSF, FLAC, \
Opus, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF and tracker files.
All frames in the ID3 tags of MP3 files can be edited, and it is possible to convert between \
ID3v1.1, ID3v2.3 and ID3v2.4. Synchronized lyrics can be edited, imported and exported to LRC \
Karaoke files.
The tags of multiple files can be set together. It is possible to generate tags from file names \
or the contents of other tag fields and to generate file names from tags and rename folders from \
tags. Automatic case conversion and string replacement help to keep tags consistent.
Album data can be imported from gnudb.org, MusicBrainz, Discogs, Amazon; automatic batch import \
is available for multiple folders. It is also possible to export data and generate play lists."
HOMEPAGE="https://apps.kde.org/kid3/"
COPYRIGHT="2003-2024 Urs Fleisch"
LICENSE="GNU GPL v2"
REVISION="1"
SOURCE_URI="https://download.kde.org/stable/kid3/$portVersion/kid3-$portVersion.tar.xz"
CHECKSUM_SHA256="cf27ffcc4369c9940da7bfc12fd10dfbda526b8187e5b62662abe8069fc26c27"
PATCHES="kid3-$portVersion.patchset"
ADDITIONAL_FILES="kid3.rdef.in"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
kid3$secondaryArchSuffix = $portVersion
cmd:kid3$secondaryArchSuffix = $portVersion
cmd:kid3_cli$secondaryArchSuffix = $portVersion
cmd:kid3_qt$secondaryArchSuffix = $portVersion
lib:libkid3_core$secondaryArchSuffix = $portVersion
lib:libkid3_gui$secondaryArchSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libopenal$secondaryArchSuffix
lib:libreadline$secondaryArchSuffix
# KF6
lib:libKF6ColorScheme$secondaryArchSuffix
lib:libKF6ConfigCore$secondaryArchSuffix
lib:libKF6ConfigWidgets$secondaryArchSuffix
lib:libKF6CoreAddons$secondaryArchSuffix
lib:libKF6KIOCore$secondaryArchSuffix
lib:libKF6WidgetsAddons$secondaryArchSuffix
lib:libKF6XmlGui$secondaryArchSuffix
# Qt6
lib:libQt6Core$secondaryArchSuffix
lib:libQt6Gui$secondaryArchSuffix
lib:libQt6Multimedia$secondaryArchSuffix
lib:libQt6Network$secondaryArchSuffix
lib:libQt6Widgets$secondaryArchSuffix
lib:libQt6Xml$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libchromaprint$secondaryArchSuffix
devel:libFLAC$secondaryArchSuffix
devel:libgstreamer_1.0$secondaryArchSuffix
devel:libid3_3.8$secondaryArchSuffix
devel:libreadline$secondaryArchSuffix
devel:libtag$secondaryArchSuffix >= 2
devel:libvorbisfile$secondaryArchSuffix
devel:libz$secondaryArchSuffix
# KF6
extra_cmake_modules$secondaryArchSuffix
devel:libKF6Bookmarks$secondaryArchSuffix
devel:libKF6Codecs$secondaryArchSuffix
devel:libKF6ColorScheme$secondaryArchSuffix
devel:libKF6Completion$secondaryArchSuffix
devel:libKF6ConfigCore$secondaryArchSuffix
devel:libKF6ConfigWidgets$secondaryArchSuffix
devel:libKF6CoreAddons$secondaryArchSuffix
devel:libKF6DocTools$secondaryArchSuffix
devel:libKF6ItemViews$secondaryArchSuffix
devel:libKF6JobWidgets$secondaryArchSuffix
devel:libKF6KIOCore$secondaryArchSuffix
devel:libKF6Service$secondaryArchSuffix
devel:libKF6Solid$secondaryArchSuffix
devel:libKF6WidgetsAddons$secondaryArchSuffix
devel:libKF6WindowSystem$secondaryArchSuffix
devel:libKF6XmlGui$secondaryArchSuffix
# Qt6
qt6_tools${secondaryArchSuffix}_devel
devel:libQt6Core$secondaryArchSuffix
devel:libQt6Multimedia$secondaryArchSuffix
devel:libQt6Qml$secondaryArchSuffix
"
BUILD_PREREQUIRES="
docbook_xsl_stylesheets >= 1.79.2
cmd:cmake
cmd:g++$secondaryArchSuffix
cmd:make
cmd:msgfmt
cmd:msgmerge
cmd:pkg_config$secondaryArchSuffix
cmd:python3
cmd:xsltproc
"
PATCH()
{
sed -e '/add_subdirectory(doc)/ s/^#*/#/' -i CMakeLists.txt
}
BUILD()
{
cmake -Bbuild -S. $cmakeDirArgs \
-DCMAKE_BUILD_TYPE=Release \
-DECM_DIR=/system/data/cmake/Modules/ECM/cmake \
-DDOCBOOK_XSL_DIR=/system/data/xml/docbook/xsl-stylesheets-1.79.2 \
-DWITH_APPS="CLI;Qt;KDE" \
-DLIB_SUFFIX="$secondaryArchSubDir" \
-DWITH_DBUS=OFF
make -C build $jobArgs
}
INSTALL()
{
make -C build install
# move libraries up (not found in the current directory when launched from Terminal)
mv $libDir/kid3/lib* $libDir
rm -rf $libDir/kid3
# cleanup
rm -rf $dataDir/{applications,metainfo}
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local APP_NAME="Kid3"
local LONG_INFO="$SUMMARY"
local APP_SIGNATURE="application/x-vnd.kid3"
sed \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
-e "s|@APP_NAME@|$APP_NAME|" \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
$portDir/additional-files/kid3.rdef.in > kid3.rdef
addResourcesToBinaries kid3.rdef $binDir/kid3-qt
addAppDeskbarSymlink $binDir/kid3-qt Kid3
}
TEST()
{
# 1 test (fails)
ctest --test-dir build --output-on-failure
}