forked from lei.chen/myxce
85 lines
1.6 KiB
Nix
85 lines
1.6 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
pkgs,
|
|
myCommitId,
|
|
withDebug? false,
|
|
withAsan? false,
|
|
...
|
|
}:
|
|
|
|
stdenv.mkDerivation {
|
|
|
|
pname = "xcecore";
|
|
version = "0.0.1";
|
|
|
|
src = ./..;
|
|
|
|
nativeBuildInputs = with pkgs; [
|
|
meson
|
|
ninja
|
|
capnproto
|
|
pkg-config
|
|
cmake
|
|
go
|
|
go-swag # swagger doc generation: swag init
|
|
gotools # goimports, godoc
|
|
gopls # Go language server
|
|
delve # Go debugger
|
|
(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;
|
|
}))
|
|
packcc
|
|
cacert
|
|
] ++ (if withDebug then [
|
|
(librtti_debug.overrideAttrs (oldattrs: {
|
|
separateDebugInfo = true;
|
|
}))
|
|
] else [
|
|
librtti
|
|
]);
|
|
|
|
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)
|
|
"-Dcomponent=xcecore"
|
|
];
|
|
}
|