78 lines
1.4 KiB
Nix
78 lines
1.4 KiB
Nix
{
|
|
lib,
|
|
src,
|
|
stdenv,
|
|
|
|
cmocka,
|
|
libllvm,
|
|
pkg-config,
|
|
}:
|
|
stdenv.mkDerivation {
|
|
pname = "where-are-my-friends-coverage-html";
|
|
version = "0.1.0";
|
|
inherit src;
|
|
|
|
makeFlags = [
|
|
"prefix=$(out)"
|
|
"CC=${stdenv.cc.targetPrefix}cc"
|
|
];
|
|
|
|
hardeningDisable = [ "fortify" ];
|
|
|
|
env = {
|
|
CMOCKA_MESSAGE_OUTPUT = "XML";
|
|
LLVM_PROFILE_FILE = "output/prof/wamf-%p-%m.profraw";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
libllvm
|
|
pkg-config
|
|
];
|
|
buildInputs = [ cmocka ];
|
|
|
|
buildPhase = ''
|
|
runHook preBuild
|
|
|
|
mkdir -p "$(dirname "$LLVM_PROFILE_FILE")"
|
|
make check
|
|
|
|
llvm-profdata merge -sparse output/prof/wamf-*.profraw -o wamf.profdata
|
|
|
|
LLVM_COV_ARGS=(
|
|
-format=html
|
|
-output-dir=coverage-html
|
|
-instr-profile=wamf.profdata
|
|
-object=output/test/test
|
|
# -show-line-counts-or-regions
|
|
# -show-expansions
|
|
# -show-instantiations
|
|
-use-color
|
|
-Xdemangler=c++filt
|
|
-ignore-filename-regex='.*(test/).*'
|
|
-compilation-dir=.
|
|
)
|
|
|
|
llvm-cov show "''${LLVM_COV_ARGS[@]}"
|
|
|
|
runHook postBuild
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p "$(dirname "$out")"
|
|
cp -r coverage-html "$out"
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
doCheck = false;
|
|
|
|
meta = {
|
|
description = "RCON -> Bluemap player position API converter";
|
|
homepage = "https://git.pvv.ntnu.no/Projects/where-are-my-friends";
|
|
platforms = lib.platforms.unix;
|
|
mainProgram = "wamf";
|
|
};
|
|
}
|