diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/yder/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/yder/default.nix | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/yder/default.nix b/nixpkgs/pkgs/development/libraries/yder/default.nix new file mode 100644 index 000000000000..ffa326ccc538 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/yder/default.nix @@ -0,0 +1,54 @@ +{ stdenv, lib, fetchFromGitHub, cmake, orcania, systemd, check, subunit +, withSystemd ? stdenv.isLinux +}: +assert withSystemd -> systemd != null; +stdenv.mkDerivation rec { + pname = "yder"; + version = "1.4.6"; + + src = fetchFromGitHub { + owner = "babelouest"; + repo = pname; + rev = "v${version}"; + sha256 = "0j46v93vn130gjcr704rkdiibbk3ampzsqb6xdcrn4x115gwyf5i"; + }; + + patches = [ + # We set CMAKE_INSTALL_LIBDIR to the absolute path in $out, so + # prefix and exec_prefix cannot be $out, too + ./fix-pkgconfig.patch + + # - ORCANIA_LIBRARIES must be set before target_link_libraries is called + # - librt is not available, nor needed on Darwin + # - The test binary is not linked against all necessary libraries + # - Test for journald logging is not systemd specific and fails on darwin + # - If the working directory is different from the build directory, the + # dynamic linker can't find libyder + # - Return correct error code from y_init_logs when journald is disabled + ./fix-darwin.patch + ]; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ orcania ] ++ lib.optional withSystemd systemd; + + checkInputs = [ check subunit ]; + + cmakeFlags = [ + "-DBUILD_YDER_TESTING=on" + ] ++ lib.optional (!withSystemd) "-DWITH_JOURNALD=off"; + + doCheck = true; + + preCheck = '' + export LD_LIBRARY_PATH="$(pwd):$LD_LIBRARY_PATH" + ''; + + meta = with lib; { + description = "Logging library for C applications"; + homepage = "https://github.com/babelouest/yder"; + license = licenses.lgpl21; + maintainers = with maintainers; [ johnazoidberg ]; + platforms = platforms.all; + }; +} |