Files
haikuports/dev-libs/poco/poco-1.12.4.recipe
2024-02-14 15:11:53 +01:00

156 lines
4.9 KiB
Bash

SUMMARY="C++ libraries for building network-based applications"
DESCRIPTION="The POCO C++ Libraries are powerful cross-platform C++ libraries for building \
network- and internet-based applications that run on desktop, server, mobile, IoT, \
and embedded systems."
HOMEPAGE="https://pocoproject.org/"
COPYRIGHT="pocoproject"
LICENSE="Boost v1.0"
REVISION="2"
SOURCE_URI="https://github.com/pocoproject/poco/archive/refs/tags/poco-1.12.4-release.tar.gz"
CHECKSUM_SHA256="71ef96c35fced367d6da74da294510ad2c912563f12cd716ab02b6ed10a733ef"
SOURCE_DIR="poco-poco-1.12.4-release/"
PATCHES="poco-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
libVersion="94"
PROVIDES="
poco$secondaryArchSuffix = $portVersion
cmd:arc$secondaryArchSuffix = $portVersion
cmd:cpspc$secondaryArchSuffix = $portVersion
cmd:f2cpsp$secondaryArchSuffix = $portVersion
lib:libPocoActiveRecord$secondaryArchSuffix = $libVersion
lib:libPocoCrypto$secondaryArchSuffix = $libVersion
lib:libPocoData$secondaryArchSuffix = $libVersion
lib:libPocoDataSQLite$secondaryArchSuffix = $libVersion
lib:libPocoEncodings$secondaryArchSuffix = $libVersion
lib:libPocoFoundation$secondaryArchSuffix = $libVersion
lib:libPocoJSON$secondaryArchSuffix = $libVersion
lib:libPocoJWT$secondaryArchSuffix = $libVersion
lib:libPocoMongoDB$secondaryArchSuffix = $libVersion
lib:libPocoNet$secondaryArchSuffix = $libVersion
lib:libPocoNetSSL$secondaryArchSuffix = $libVersion
lib:libPocoRedis$secondaryArchSuffix = $libVersion
lib:libPocoUtil$secondaryArchSuffix = $libVersion
lib:libPocoPrometheus$secondaryArchSuffix = $libVersion
lib:libPocoXML$secondaryArchSuffix = $libVersion
lib:libPocoZip$secondaryArchSuffix = $libVersion
lib:poco$secondaryArchSuffix = $libVersion
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libexpat$secondaryArchSuffix
lib:libpcre2_32$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libsqlite3$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
PROVIDES_devel="
poco${secondaryArchSuffix}_devel = $portVersion
devel:libPocoActiveRecord$secondaryArchSuffix = $libVersion
devel:libPocoCrypto$secondaryArchSuffix = $libVersion
devel:libPocoData$secondaryArchSuffix = $libVersion
devel:libPocoDataSQLite$secondaryArchSuffix = $libVersion
devel:libPocoEncodings$secondaryArchSuffix = $libVersion
devel:libPocoFoundation$secondaryArchSuffix = $libVersion
devel:libPocoJSON$secondaryArchSuffix = $libVersion
devel:libPocoJWT$secondaryArchSuffix = $libVersion
devel:libPocoMongoDB$secondaryArchSuffix = $libVersion
devel:libPocoNet$secondaryArchSuffix = $libVersion
devel:libPocoNetSSL$secondaryArchSuffix = $libVersion
devel:libPocoRedis$secondaryArchSuffix = $libVersion
devel:libPocoUtil$secondaryArchSuffix = $libVersion
devel:libPocoPrometheus$secondaryArchSuffix = $libVersion
devel:libPocoXML$secondaryArchSuffix = $libVersion
devel:libPocoZip$secondaryArchSuffix = $libVersion
"
REQUIRES_devel="
poco$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libexpat$secondaryArchSuffix
devel:libpcre2_32$secondaryArchSuffix
devel:libssl$secondaryArchSuffix
devel:libsqlite3$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:make
cmd:gcc$secondaryArchSuffix
"
TEST_REQUIRES="
cmd:ctest
"
defineDebugInfoPackage poco$secondaryArchSuffix \
$binDir/arc \
$binDir/cpspc \
$binDir/f2cpsp \
$libDir/libPocoActiveRecord.so.$libVersion \
$libDir/libPocoCrypto.so.$libVersion \
$libDir/libPocoData.so.$libVersion \
$libDir/libPocoDataSQLite.so.$libVersion \
$libDir/libPocoEncodings.so.$libVersion \
$libDir/libPocoFoundation.so.$libVersion \
$libDir/libPocoJSON.so.$libVersion \
$libDir/libPocoJWT.so.$libVersion \
$libDir/libPocoMongoDB.so.$libVersion \
$libDir/libPocoNet.so.$libVersion \
$libDir/libPocoNetSSL.so.$libVersion \
$libDir/libPocoPrometheus.so.$libVersion \
$libDir/libPocoRedis.so.$libVersion \
$libDir/libPocoUtil.so.$libVersion \
$libDir/libPocoXML.so.$libVersion \
$libDir/libPocoZip.so.$libVersion
BUILD()
{
cmake -Bbuild -S. -DCMAKE_BUILD_TYPE=RelWithDebInfo \
$cmakeDirArgs \
-DENABLE_TESTS=ON \
-DPOCO_UNBUNDLED=ON
# -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-g3" \
make -C build $jobArgs
}
INSTALL()
{
make -C build install
prepareInstalledDevelLibs libPocoActiveRecord \
libPocoCrypto \
libPocoData \libPocoDataSQLite \
libPocoEncodings \
libPocoFoundation \
libPocoJSON \
libPocoJWT \
libPocoMongoDB \
libPocoNet \
libPocoNetSSL \
libPocoRedis \
libPocoUtil \
libPocoPrometheus \
libPocoXML \
libPocoZip
packageEntries devel \
$developDir \
$libDir/cmake
}
TEST()
{
mkdir -p /home
# for some reason, the test library is in the bin folder
# a test assumes that $HOME is set, which it is not for build environments
HOME=/home LIBRARY_PATH=/sources/$SOURCE_DIR/build/bin:$LIBRARY_PATH make \
-C build $jobArgs test ARGS="--rerun-failed --output-on-failure"
}