Files
haikuports/dev-libs/poco/poco-1.12.4.recipe
TheZeldakatze 502dbe8d23 poco: new recipe (#7982)
poco: new recipe
2023-09-14 07:49:19 +00:00

150 lines
5.2 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="1"
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=$portVersion
libVersionCompat="$portVersion compat >= 94"
soSuffix="94"
PROVIDES="
poco$secondaryArchSuffix = $portVersion
cmd:arc$secondaryArchSuffix = $portVersion
cmd:cpspc$secondaryArchSuffix = $portVersion
cmd:f2cpsp$secondaryArchSuffix = $portVersion
lib:libPocoActiveRecord$secondaryArchSuffix = $libVersionCompat
lib:libPocoCrypto$secondaryArchSuffix = $libVersionCompat
lib:libPocoData$secondaryArchSuffix = $libVersionCompat
lib:libPocoDataSQLite$secondaryArchSuffix = $libVersionCompat
lib:libPocoEncodings$secondaryArchSuffix = $libVersionCompat
lib:libPocoFoundation$secondaryArchSuffix = $libVersionCompat
lib:libPocoJSON$secondaryArchSuffix = $libVersionCompat
lib:libPocoJWT$secondaryArchSuffix = $libVersionCompat
lib:libPocoMongoDB$secondaryArchSuffix = $libVersionCompat
lib:libPocoNet$secondaryArchSuffix = $libVersionCompat
lib:libPocoNetSSL$secondaryArchSuffix = $libVersionCompat
lib:libPocoRedis$secondaryArchSuffix = $libVersionCompat
lib:libPocoUtil$secondaryArchSuffix = $libVersionCompat
lib:libPocoPrometheus$secondaryArchSuffix = $libVersionCompat
lib:libPocoXML$secondaryArchSuffix = $libVersionCompat
lib:libPocoZip$secondaryArchSuffix = $libVersionCompat
lib:poco$secondaryArchSuffix = $libVersionCompat
"
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 = $libVersionCompat
devel:libPocoCrypto$secondaryArchSuffix = $libVersionCompat
devel:libPocoData$secondaryArchSuffix = $libVersionCompat
devel:libPocoDataSQLite$secondaryArchSuffix = $libVersionCompat
devel:libPocoEncodings$secondaryArchSuffix = $libVersionCompat
devel:libPocoFoundation$secondaryArchSuffix = $libVersionCompat
devel:libPocoJSON$secondaryArchSuffix = $libVersionCompat
devel:libPocoJWT$secondaryArchSuffix = $libVersionCompat
devel:libPocoMongoDB$secondaryArchSuffix = $libVersionCompat
devel:libPocoNet$secondaryArchSuffix = $libVersionCompat
devel:libPocoNetSSL$secondaryArchSuffix = $libVersionCompat
devel:libPocoRedis$secondaryArchSuffix = $libVersionCompat
devel:libPocoUtil$secondaryArchSuffix = $libVersionCompat
devel:libPocoPrometheus$secondaryArchSuffix = $libVersionCompat
devel:libPocoXML$secondaryArchSuffix = $libVersionCompat
devel:libPocoZip$secondaryArchSuffix = $libVersionCompat
"
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.$soSuffix \
$libDir/libPocoCrypto.so.$soSuffix \
$libDir/libPocoData.so.$soSuffix \
$libDir/libPocoDataSQLite.so.$soSuffix \
$libDir/libPocoEncodings.so.$soSuffix \
$libDir/libPocoFoundation.so.$soSuffix \
$libDir/libPocoJSON.so.$soSuffix \
$libDir/libPocoJWT.so.$soSuffix \
$libDir/libPocoMongoDB.so.$soSuffix \
$libDir/libPocoNet.so.$soSuffix \
$libDir/libPocoNetSSL.so.$soSuffix \
$libDir/libPocoPrometheus.so.$soSuffix \
$libDir/libPocoRedis.so.$soSuffix \
$libDir/libPocoUtil.so.$soSuffix \
$libDir/libPocoXML.so.$soSuffix \
$libDir/libPocoZip.so.$soSuffix
BUILD() {
cmake -Bbuild -S. -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DENABLE_TESTS=ON \
-DCMAKE_INSTALL_INCLUDEDIR=$includeDir \
-DCMAKE_INSTALL_LIBDIR=$libDir \
-DCMAKE_INSTALL_BINDIR=$binDir \
$cmakeDirArgs \
-DPOCO_UNBUNDLED=ON
# -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-g3" \
make -C build $jobArgs
}
INSTALL() {
mkdir -p $includeDir
make -C build install
prepareInstalledDevelLibs libPocoActiveRecord libPocoCrypto \
libPocoData libPocoDataSQLite libPocoEncodings libPocoFoundation \
libPocoJSON libPocoJWT libPocoMongoDB libPocoNet \
libPocoNetSSL libPocoRedis libPocoUtil libPocoPrometheus \
libPocoXML libPocoZip
fixPkgconfig
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"
}