Files
haikuports/dev-cpp/ada/ada-2.9.2.recipe
2025-01-11 15:46:41 +01:00

97 lines
2.6 KiB
Bash

SUMMARY="WHATWG-compliant and fast URL parser written in modern C++"
DESCRIPTION="Ada is a fast and spec-compliant URL parser written in C++. Specification for URL \
parser can be found from the *WHATWG* https://url.spec.whatwg.org/#url-parsing website.
The Ada library passes the full range of tests from the specification, across a wide range of \
platforms (e.g., Windows, Linux, macOS). It fully supports the relevant *Unicode Technical \
Standard* https://www.unicode.org/reports/tr46/#ToUnicode.
A common use of a URL parser is to take a URL string and normalize it.
The WHATWG URL specification has been adopted by most browsers. Other tools, such as curl and \
many standard libraries, follow the RFC 3986. The following table illustrates possible \
differences in practice (encoding of the host, encoding of the path):
"
HOMEPAGE="https://github.com/ada-url/ada"
COPYRIGHT="2023 Yagiz Nizipli and Daniel Lemire"
LICENSE="MIT
Apache v2"
REVISION="1"
SOURCE_URI="$HOMEPAGE/archive/refs/tags/v$portVersion.tar.gz"
CHECKSUM_SHA256="f41575ad7eec833afd9f6a0d6101ee7dc2f947fdf19ae8f1b54a71d59f4ba5ec"
SOURCE_FILENAME="ada-v$portVersion.tar.gz"
PATCHES="ada-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
# On x86_gcc2 we don't want to install the commands in bin/<arch>/, but in bin/.
commandBinDir=$binDir
commandSuffix=$secondaryArchSuffix
if [ "$targetArchitecture" = x86_gcc2 ]; then
commandSuffix=
commandBinDir=$prefix/bin
fi
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
ada$secondaryArchSuffix = $portVersion
cmd:adaparse$commandSuffix
lib:libada$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libfmt$secondaryArchSuffix
"
PROVIDES_devel="
ada${secondaryArchSuffix}_devel = $portVersion
devel:libada$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
ada$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
cxxopts${secondaryArchSuffix}_devel
devel:libfmt$secondaryArchSuffix >= 11
devel:libgtest$secondaryArchSuffix
devel:libsimdjson$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:gcc$secondaryArchSuffix
cmd:make
cmd:python3
"
BUILD()
{
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release \
$cmakeDirArgs \
-DCMAKE_INSTALL_BINDIR=$commandBinDir \
-DBUILD_SHARED_LIBS=ON
make -C build $jobArgs
}
INSTALL()
{
make -C build install
prepareInstalledDevelLib \
libada
fixPkgconfig
packageEntries devel \
$developDir \
$libDir/cmake
}
TEST()
{
ctest --test-dir build --output-on-failure
}