depot/third_party/nixpkgs/pkgs/by-name/li/libnick/package.nix

83 lines
1.8 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
cmake,
ninja,
pkg-config,
validatePkgConfig,
openssl,
sqlcipher,
boost,
curl,
glib,
libsecret,
libmaddy-markdown,
testers,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libnick";
version = "2025.1.0";
src = fetchFromGitHub {
owner = "NickvisionApps";
repo = "libnick";
tag = finalAttrs.version;
hash = "sha256-Y7Vn9KaZjEJ29o2GouNl5B/svAtJ24El9WYgXHhnxho=";
};
nativeBuildInputs =
[
cmake
ninja
]
++ lib.optionals stdenv.hostPlatform.isUnix [
pkg-config
validatePkgConfig
];
buildInputs =
[
boost
libmaddy-markdown
]
++ lib.optionals stdenv.hostPlatform.isUnix [
glib
openssl
]
++ lib.optional stdenv.hostPlatform.isWindows sqlcipher;
propagatedBuildInputs = [
curl
libsecret
];
cmakeFlags = [
(lib.cmakeBool "BUILD_TESTING" finalAttrs.finalPackage.doCheck)
(lib.cmakeFeature "USE_LIBSECRET" "true")
];
postPatch = ''
substituteInPlace cmake/libnick.pc.in \
--replace-fail 'libdir=''${exec_prefix}/@CMAKE_INSTALL_LIBDIR@' \
'libdir=@CMAKE_INSTALL_FULL_LIBDIR@' \
--replace-fail 'includedir=''${prefix}/@CMAKE_INSTALL_INCLUDEDIR@' \
'includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@'
'';
passthru = {
tests.pkg-config = testers.hasPkgConfigModules { package = finalAttrs.finalPackage; };
updateScript = nix-update-script { };
};
meta = {
description = "Cross-platform development base for native Nickvision applications";
homepage = "https://github.com/NickvisionApps/libnick";
license = lib.licenses.gpl3Plus;
maintainers = [ lib.maintainers.normalcea ];
platforms = lib.platforms.unix ++ lib.platforms.windows;
pkgConfigModules = [ "libnick" ];
};
})