cpptrace: propagate libdwarf for static builds

This commit is contained in:
Sergei Zimmerman 2024-12-23 14:17:18 +03:00
parent 986c08a671
commit 5fe5e9ea77
2 changed files with 19 additions and 8 deletions

View file

@ -5,6 +5,7 @@
cpptrace,
src,
checkOutput,
static,
}:
stdenv.mkDerivation (finalAttrs: {
@ -13,7 +14,9 @@ stdenv.mkDerivation (finalAttrs: {
inherit src;
nativeBuildInputs = [ cmake ];
buildInputs = [ cpptrace ];
buildInputs = [
(cpptrace.override { inherit static; })
];
installPhase = ''
runHook preInstall
@ -27,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
installCheckPhase = lib.strings.concatLines (
[ "$out/bin/main" ]
# Check that the backtrace contains the path to the executable.
++ lib.optionals (checkOutput) [
++ lib.optionals checkOutput [
''
if [[ !(`$out/bin/main 2>&1` =~ "${finalAttrs.name}") ]]; then
echo "ERROR: $out/bin/main does not output '${finalAttrs.name}'"

View file

@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
];
buildInputs = [ libdwarf ];
propagatedBuildInputs = [ zstd ];
propagatedBuildInputs = [ zstd ] ++ (lib.optionals static [ libdwarf ]);
cmakeFlags = [
(lib.cmakeBool "CPPTRACE_USE_EXTERNAL_LIBDWARF" true)
@ -51,12 +51,20 @@ stdenv.mkDerivation (finalAttrs: {
passthru = {
updateScript = nix-update-script { };
tests = {
findpackage-integration = callPackage ./findpackage-integration.nix {
src = "${finalAttrs.src}/test/findpackage-integration";
checkOutput = finalAttrs.finalPackage.doCheck;
tests =
let
mkIntegrationTest =
{ static }:
callPackage ./findpackage-integration.nix {
src = "${finalAttrs.src}/test/findpackage-integration";
checkOutput = finalAttrs.finalPackage.doCheck;
inherit static;
};
in
{
findpackage-integration-shared = mkIntegrationTest { static = false; };
findpackage-integration-static = mkIntegrationTest { static = true; };
};
};
};
meta = {