Files
haikuports/media-sound/hydrogen/hydrogen-1.2.2.recipe
2024-08-25 10:44:38 +02:00

141 lines
4.0 KiB
Bash

SUMMARY="An advanced drum machine"
DESCRIPTION="Hydrogen is a software synthesizer which can be used alone, emulating a drum machine \
based on patterns, or via an external MIDI keyboard/sequencer software. Hydrogen also runs on \
Linux, Mac OS X and Windows.
Main features:
* Pattern-based sequencer, with unlimited number of patterns and ability to chain patterns into a song.
* Unlimited instrument tracks with volume, mute, solo, pan capabilities.
* Sample Editor, with basic cut and loop functions.
* Time-line with variable tempo.
* MIDI learning via Shift+MouseClick on many gui-cotrollers combined with a midi settings editor.
* Unique human velocity, human time, pitch and swing functions."
HOMEPAGE="http://hydrogen-music.org/"
COPYRIGHT="2002-2008 Alessandro Cominu
2008-2023 The hydrogen development team"
LICENSE="GNU GPL v2"
REVISION="6"
SOURCE_URI="https://github.com/hydrogen-music/hydrogen/archive/refs/tags/$portVersion.tar.gz"
CHECKSUM_SHA256="b38173b28cc260e5e02a7300f171cf7fefafd8c3763f31f6f8b2aafccb4bc7b5"
SOURCE_DIR="hydrogen-$portVersion"
PATCHES="hydrogen-$portVersion.patchset"
ADDITIONAL_FILES="Hydrogen.rdef"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
hydrogen$secondaryArchSuffix = $portVersion
cmd:h2cli$secondaryArchSuffix
cmd:h2player$secondaryArchSuffix
app:Hydrogen
"
REQUIRES="
haiku$secondaryArchSuffix
ladspa_sdk$secondaryArchSuffix
cmd:rubberband
lib:libarchive$secondaryArchSuffix
lib:libcrypto$secondaryArchSuffix
lib:libcppunit$secondaryArchSuffix
lib:libexecinfo$secondaryArchSuffix
lib:liblo$secondaryArchSuffix
lib:liblrdf$secondaryArchSuffix
lib:libportaudio$secondaryArchSuffix
lib:libportmidi$secondaryArchSuffix
lib:librubberband$secondaryArchSuffix
lib:libsndfile$secondaryArchSuffix
lib:libtar$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Network$secondaryArchSuffix
lib:libQt5Svg$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
lib:libQt5Xml$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
PROVIDES_devel="
hydrogen${secondaryArchSuffix}_devel = $portVersion
devel:libhydrogen_core_$portVersion$secondaryArchSuffix
"
REQUIRES_devel="
hydrogen$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
ladspa_sdk${secondaryArchSuffix}_devel
devel:libarchive$secondaryArchSuffix
devel:libcrypto$secondaryArchSuffix >= 3
devel:libcppunit$secondaryArchSuffix
devel:libexecinfo$secondaryArchSuffix
devel:liblo$secondaryArchSuffix
devel:liblrdf$secondaryArchSuffix
devel:libportaudio$secondaryArchSuffix
devel:libportmidi$secondaryArchSuffix
devel:librubberband$secondaryArchSuffix
devel:libsndfile$secondaryArchSuffix
devel:libtar$secondaryArchSuffix
devel:libQt5Core$secondaryArchSuffix
devel:libQt5Gui$secondaryArchSuffix
devel:libQt5Network$secondaryArchSuffix
devel:libQt5Svg$secondaryArchSuffix
devel:libQt5Widgets$secondaryArchSuffix
devel:libQt5Xml$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:dot
cmd:doxygen
# cmd:epstopdf
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:clang_tidy >= 12
cmd:linguist$secondaryArchSuffix >= 5
cmd:lrelease$secondaryArchSuffix >= 5
cmd:make
# cmd:perl
cmd:pkg_config$secondaryArchSuffix
"
BUILD()
{
cmake -Bbuild -S. $cmakeDirArgs \
-DCMAKE_BUILD_TYPE=Release \
-DWANT_DEBUG=NO \
-DWANT_PORTAUDIO=ON \
-DWANT_PORTMIDI=ON \
-DWANT_SHARED=OFF
make -C build $jobArgs
make -C build doc
}
INSTALL()
{
make -C build install
# install documentation
mkdir -p $developDocDir
cp -r build/docs/html $developDocDir
# we are not linux
rm -rf $dataDir/{applications,icons,metainfo}
mkdir -p $appsDir
mv $binDir/hydrogen $appsDir/Hydrogen
addResourcesToBinaries $portDir/additional-files/Hydrogen.rdef \
$appsDir/Hydrogen
addAppDeskbarSymlink $appsDir/Hydrogen
prepareInstalledDevelLib libhydrogen-core-1.2.2
packageEntries devel \
$developDir
# clean up empty directory
rm -r $libDir
}