{ 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"; }; }