{ lib, stdenv, pkgs, myCommitId, withDebug? false, withAsan? false, ... }: stdenv.mkDerivation { pname = "xce"; version = "0.0.1"; src = ./..; nativeBuildInputs = with pkgs; [ meson ninja capnproto pkg-config cmake go delve (openssl.overrideAttrs (oldAttrs: { separateDebugInfo = true; })) libtirpc readline ncurses struct2json (capnpc.overrideAttrs (oldAttrs: { separateDebugInfo = true; })) which findutils (libuv.overrideAttrs (oldAttrs: { separateDebugInfo = true; })) (elogind.overrideAttrs (oldAttrs: { separateDebugInfo = true; })) (sqlite.overrideAttrs (oldAttrs: { separateDebugInfo = true; })) (hwloc.overrideAttrs (oldAttrs: { separateDebugInfo = true; })) linux-pam tinylog unity_test_with_color libcyaml libyaml libcgroup (extralib.overrideAttrs (oldAttrs: { separateDebugInfo = true; })) (librtti.overrideAttrs (oldAttrs: { separateDebugInfo = true; })) packcc ]; build-system = [ pkgs.meson ]; dontStrip = (withDebug || withAsan); separateDebugInfo = (withDebug || withAsan); impureEnvVars = [ "HOME" ]; mesonFlags =[ (lib.optional withDebug "--buildtype=debug") (lib.optional withAsan "-Db_sanitize=address") ("-Dcommit_id=" + myCommitId) # (lib.optional (!with_debug) "-Dbuildtype=release") ]; }