Files
haikuports/media-sound/lilypond/lilypond-2.24.1.recipe
Joachim Mairböck b2c78051d7 lilypond: fix secondaryArch (x86) build (#7888)
When building for a secondaryArch, haikuporter prepends $PATH with the
secondaryArch binDir, so just removing the first 2 characters for
removing '.' from $PATH doesn't work. This makes that a bit more robust.
(Having '.' at the end would still not work though.)
2023-03-04 16:55:16 +01:00

195 lines
4.8 KiB
Bash

SUMMARY="A typesetting system for music notation"
DESCRIPTION="LilyPond is a music engraving program, devoted to producing the highest-quality \
sheet music possible. It brings the aesthetics of traditionally engraved music to computer \
printouts. LilyPond is free software and part of the GNU Project."
HOMEPAGE="https://lilypond.org/"
COPYRIGHT="1993-2023 The LilyPond development team"
LICENSE="GNU GPL v3"
REVISION="1"
SOURCE_URI="https://lilypond.org/download/source/v${portVersion%.*}/lilypond-$portVersion.tar.gz"
CHECKSUM_SHA256="d5c59087564a5cd6f08a52ba80e7d6509b91c585e44385dcc0fa39265d181509"
PATCHES="lilypond-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
lilypond$secondaryArchSuffix = $portVersion
cmd:abc2ly
cmd:convert_ly
cmd:etf2ly
cmd:lilymidi
cmd:lilypond
cmd:lilypond_book
cmd:lilypond_invoke_editor
cmd:lilysong
cmd:midi2ly
cmd:musicxml2ly
"
REQUIRES="
haiku$secondaryArchSuffix
cmd:fc_list$secondaryArchSuffix
cmd:python3
lib:libfreetype$secondaryArchSuffix
lib:libgc$secondaryArchSuffix
lib:libglib_2.0$secondaryArchSuffix
lib:libgmp$secondaryArchSuffix
lib:libgobject_2.0$secondaryArchSuffix
lib:libguile_2.2$secondaryArchSuffix
lib:libgs$secondaryArchSuffix >= 9 # TODO: replace with cmd:gs?
lib:libharfbuzz$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libltdl$secondaryArchSuffix
lib:libpangoft2_1.0$secondaryArchSuffix
"
SUMMARY_doc="${SUMMARY} (English and generic documentation)"
PROVIDES_doc="
lilypond${secondaryArchSuffix}_doc = $portVersion
"
REQUIRES_doc="
lilypond$secondaryArchSuffix == $portVersion base
"
ARCHITECTURES_doc="any"
languages=(ca cs de es fr hu it ja nl pt zh)
languageNames=(Catalan Czech German Spanish French Hungarian Italian Japanese Dutch Portuguese Chinese)
for i in "${!languages[@]}"; do
lang=${languages[i]}
eval "PROVIDES_doc_${lang}=\"\
lilypond${secondaryArchSuffix}_doc_${lang} = $portVersion\
\"; \
REQUIRES_doc_${lang}=\"\
lilypond${secondaryArchSuffix}_doc == $portVersion base\
\"; \
SUMMARY_doc_${lang}=\"${SUMMARY} (${languageNames[$i]} documentation)\"\
ARCHITECTURES_doc_${lang}=\"any\""
done
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
tex_gyre
urw_base35_fonts
devel:libfreetype$secondaryArchSuffix
devel:libgc$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libgmp$secondaryArchSuffix
devel:libgobject_2.0$secondaryArchSuffix
devel:libguile_2.2$secondaryArchSuffix
devel:libgs$secondaryArchSuffix >= 9
devel:libharfbuzz$secondaryArchSuffix
devel:libintl$secondaryArchSuffix
devel:libltdl$secondaryArchSuffix
devel:libpangoft2_1.0$secondaryArchSuffix
tex:epsf
tex:fontinst
tex:lh
tex:metapost
# The following TeX packages are needed for creating tex formats:
# (because of texlive packaging, all hyphenation patterns are needed,
# the list contains one package from each collection)
tex:dehyph_exptl
tex:hyphen_afrikaans
tex:hyphen_ancientgreek
tex:hyphen_basque
tex:hyphen_catalan
tex:hyphen_chinese
tex:hyphen_croatian
tex:hyphen_czech
tex:hyphen_english
tex:hyphen_italian
tex:hyphen_polish
tex:hyphen_portuguese
"
BUILD_PREREQUIRES="
# cmd:awk
cmd:bison
cmd:convert$secondaryArchSuffix
cmd:dblatex
cmd:extractpdfmark
cmd:fc_list$secondaryArchSuffix
cmd:find
cmd:flex
cmd:fontforge
cmd:gcc$secondaryArchSuffix
cmd:kpsewhich
cmd:make
cmd:mawk # required by texindex
cmd:mf
cmd:mpost
cmd:perl
cmd:pkg_config$secondaryArchSuffix
cmd:rsync
cmd:t1asm
cmd:tar
cmd:texi2html
cmd:texindex
cmd:tidy
cmd:xelatex
cmd:zip
lib:libreadline$secondaryArchSuffix >= 7 # required by fontforge, remove this when fixed
"
TEST_REQUIRES="
dejavu
cmd:fc_cache$secondaryArchSuffix
cmd:git
cmd:xsltproc
tex:realscripts
"
defineDebugInfoPackage lilypond$secondaryArchSuffix \
$prefix/bin/lilypond
PATCH()
{
./autogen.sh --noconfigure
}
BUILD()
{
mkdir -p build
cd build
# the build system already installs documentation in a subdirectory of docdir
runConfigure --omit-dirs "binDir docDir" $sourceDir/configure \
--bindir=$prefix/bin \
--docdir=$documentationDir/packages \
--with-localedir=$dataDir/locale \
--enable-gs-api # needed because of broken ghostscript (gs)
make $jobArgs
make $jobArgs bytecode
# CPU_COUNT=$jobs is not used because it causes hangs
# strip the current directory (.) from PATH, it disallows find -execdir
PATH=${PATH/.:/} make $jobArgs doc
}
INSTALL()
{
cd build
make install
make install-bytecode
PATH=${PATH/.:/} make install-doc
# language specific doc packages
for lang in "${languages[@]}"; do
packageEntries doc_${lang} \
$(find $docDir -name "*.${lang}.*")
done
# generic and english doc package
packageEntries doc \
$docDir $infoDir
}
TEST()
{
# update the fontconfig cache to make sure it knows of all installed fonts (needed by xetex)
fc-cache -f
cd build
make $jobArgs test
}