nixpkgs/pkgs/by-name/po/poco/package.nix
Ben Wolsieffer 0b4a36dca1 poco: propagate utf8proc
The Poco Foundation CMake config file unconditionally searches for
utf8proc. Therefore, every package that uses this CMake config requires
utf8proc.

Remove all utf8proc dependencies that were manually added because
utf8proc was not propagated.
2025-04-18 13:35:35 +00:00

90 lines
1.7 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
pkg-config,
zlib,
pcre2,
utf8proc,
expat,
sqlite,
openssl,
unixODBC,
libmysqlclient,
}:
stdenv.mkDerivation rec {
pname = "poco";
version = "1.14.1";
src = fetchFromGitHub {
owner = "pocoproject";
repo = "poco";
hash = "sha256-acq2eja61sH/QHwMPmiDNns2jvXRTk0se/tHj9XRSiU=";
rev = "poco-${version}-release";
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
unixODBC
libmysqlclient
];
propagatedBuildInputs = [
zlib
pcre2
utf8proc
expat
sqlite
openssl
];
outputs = [
"out"
"dev"
];
MYSQL_DIR = libmysqlclient;
MYSQL_INCLUDE_DIR = "${MYSQL_DIR}/include/mysql";
cmakeFlags = [
# use nix provided versions of sqlite, zlib, pcre, expat, ... instead of bundled versions
(lib.cmakeBool "POCO_UNBUNDLED" true)
];
patches = [
# Remove on next release
(fetchpatch {
name = "disable-included-pcre-if-pcre-is-linked-staticly";
# this happens when building pkgsStatic.poco
url = "https://patch-diff.githubusercontent.com/raw/pocoproject/poco/pull/4879.patch";
hash = "sha256-VFWuRuf0GPYFp43WKI8utl+agP+7a5biLg7m64EMnVo=";
})
];
postFixup = ''
grep -rlF INTERFACE_INCLUDE_DIRECTORIES "$dev/lib/cmake/Poco" | while read -r f; do
substituteInPlace "$f" \
--replace "$"'{_IMPORT_PREFIX}/include' ""
done
'';
meta = with lib; {
homepage = "https://pocoproject.org/";
description = "Cross-platform C++ libraries with a network/internet focus";
license = licenses.boost;
maintainers = with maintainers; [
orivej
tomodachi94
];
platforms = platforms.unix;
};
}