nixpkgs/pkgs/development/libraries/doctest/default.nix
Randy Eckenrode 8bde04060a doctest: fix build with clang 16
Clang 16 adds a buffer hardening mode as a new warning. doctest enables
all warnings and promotes them to errors, which causes the build to fail
with clang 16. The upstream PR suppresses these warnings on clang 16.

Background: https://discourse.llvm.org/t/rfc-c-buffer-hardening/65734
2023-08-03 23:20:01 +03:00

35 lines
1023 B
Nix

{ lib, stdenv, fetchFromGitHub, fetchpatch, installShellFiles, cmake }:
stdenv.mkDerivation rec {
pname = "doctest";
version = "2.4.11";
src = fetchFromGitHub {
owner = "doctest";
repo = "doctest";
rev = "v${version}";
sha256 = "sha256-hotO6QVpPn8unYTaQHFgi40A3oLUd++I3aTe293e4Aw=";
};
patches = [
# Suppress unsafe buffer usage warnings with clang 16, which are treated as errors due to `-Werror`.
# https://github.com//doctest/doctest/pull/768
(fetchpatch {
url = "https://github.com/doctest/doctest/commit/9336c9bd86e3fc2e0c36456cad8be3b4e8829a22.patch";
hash = "sha256-ZFCVk5qvgfixRm7ZFr7hyNCSEvrT6nB01G/CBshq53o=";
})
];
nativeBuildInputs = [ cmake ];
doCheck = true;
meta = with lib; {
homepage = "https://github.com/doctest/doctest";
description = "The fastest feature-rich C++11/14/17/20 single-header testing framework";
platforms = platforms.all;
license = licenses.mit;
maintainers = with maintainers; [ davidtwco ];
};
}