1{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }:
2
3stdenv.mkDerivation rec {
4 pname = "catch";
5 version = "1.12.2";
6
7 src = fetchFromGitHub {
8 owner = "catchorg";
9 repo = "Catch";
10 rev = "v${version}";
11 sha256 = "1gdp5wm8khn02g2miz381llw3191k7309qj8s3jd6sasj01rhf23";
12 };
13
14 nativeBuildInputs = [ cmake ];
15 cmakeFlags = [ "-DUSE_CPP14=ON" ];
16
17 patches = [
18 # https://github.com/catchorg/Catch2/pull/2151
19 (fetchpatch {
20 url = "https://github.com/catchorg/Catch2/commit/bb6d08323f23a39eb65dd86671e68f4f5d3f2d6c.patch";
21 sha256 = "1vhbzx84nrhhf9zlbl6h5zmg3r5w5v833ihlswsysb9wp2i4isc5";
22 })
23
24 # Fix glibc-2.34 build
25 (fetchpatch {
26 url = "https://src.fedoraproject.org/rpms/catch1/raw/23276476148a657e7a45ade547f858cbf965a33a/f/catch1-sigstksz.patch";
27 sha256 = "sha256-XSsI3iDEZCUSbozlYWC0y/LZ7qr/5zwACpn1jHKD0yU=";
28 })
29 ];
30
31 doCheck = true;
32 checkTarget = "test";
33
34 meta = with lib; {
35 description = "A multi-paradigm automated test framework for C++ and Objective-C (and, maybe, C)";
36 homepage = "http://catch-lib.net";
37 license = licenses.boost;
38 maintainers = with maintainers; [ edwtjo knedlsepp ];
39 platforms = with platforms; unix;
40 };
41}