Files
haikuports/dev-build/muon/muon-0.4.0.recipe

131 lines
2.1 KiB
Bash

SUMMARY="A meson implementation in C"
DESCRIPTION="Muon is a meson implementation in c99 with minimal dependencies"
HOMEPAGE="https://muon.build/"
COPYRIGHT="2022-2025 Stone Tickle"
LICENSE="GNU GPL v3"
REVISION="2"
SOURCE_URI="https://muon.build/releases/v$portVersion/muon-v$portVersion.tar.gz"
CHECKSUM_SHA256="9121f2521fb5037a87a922573b7fd886f0c4e7eb17696dd80901d810b9b56609"
SOURCE_DIR="muon-v$portVersion"
PATCHES="muon-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
# Bootstrap build fails pretty early on.
BOOSTRAP_BUILD=false
PROVIDES="
muon$secondaryArchSuffix = $portVersion
cmd:muon = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libarchive$secondaryArchSuffix
lib:libcurl$secondaryArchSuffix
lib:libpkgconf$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libarchive$secondaryArchSuffix
devel:libcurl$secondaryArchSuffix
devel:libpkgconf$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:sed
cmd:gcc$secondaryArchSuffix
"
if $BoostrapBuild; then
BUILD_PREREQUIRES+="
cmd:ninja
cmd:meson
"
fi
BUILD_BOOSTRAP()
{
export CC=gcc
# Stage 1
./bootstrap.sh build
# Stage 2
CFLAGS="-Dprefix=$prefix" \
build/muon-bootstrap setup build
build/muon-bootstrap -C build samu
}
BUILD_NON_BOOSTRAP()
{
unset meson
meson setup build \
--buildtype=release \
--prefix="$prefix" \
--bindir=$prefix/bin \
-Ddocs=disabled \
-Dwebsite=false
ninja -C build
}
BUILD()
{
if $BOOSTRAP_BUILD; then
BUILD_BOOSTRAP
else
BUILD_NON_BOOSTRAP
fi
}
INSTALL_BOOSTRAP()
{
build/muon install -C build
}
INSTALL_NON_BOOSTRAP()
{
unset meson
meson install -C build
}
INSTALL()
{
if $BOOSTRAP_BUILD; then
INSTALL_BOOSTRAP
else
INSTALL_NON_BOOSTRAP
fi
}
TEST_BOOSTRAP()
{
build/muon test -C build
}
TEST_NON_BOOSTRAP()
{
unset meson
meson test -C build
}
# For reference, results on beta5 64 bits:
# Ok: 291
# Expected Fail: 3
# Fail: 38
# Unexpected Pass: 0
# Skipped: 16
# Timeout: 2
TEST()
{
if $BOOSTRAP_BUILD; then
TEST_BOOSTRAP
else
TEST_NON_BOOSTRAP
fi
}