···1+{ lib
2+, stdenv
3+, fetchFromGitHub
4+, cmake
5+}:
6+7+stdenv.mkDerivation rec {
8+ pname = "argagg";
9+ version = "0.4.6";
10+11+ src = fetchFromGitHub {
12+ owner = "vietjtnguyen";
13+ repo = pname;
14+ rev = version;
15+ hash = "sha256-MCtlAPfwdJpgfS8IH+zlcgaaxZ5AsP4hJvbZAFtOa4o=";
16+ };
17+18+ patches = [
19+ # Fix compilation of macro catch statement
20+ ./0001-catch.diff
21+ ];
22+23+ nativeBuildInputs = [
24+ cmake
25+ ];
26+27+ meta = with lib; {
28+ homepage = "https://github.com/vietjtnguyen/argagg";
29+ description = "Argument Aggregator";
30+ longDescription = ''
31+ argagg is yet another C++ command line argument/option parser. It was
32+ written as a simple and idiomatic alternative to other frameworks like
33+ getopt, Boost program options, TCLAP, and others. The goal is to achieve
34+ the majority of argument parsing needs in a simple manner with an easy to
35+ use API. It operates as a single pass over all arguments, recognizing
36+ flags prefixed by - (short) or -- (long) and aggregating them into easy to
37+ access structures with lots of convenience functions. It defers processing
38+ types until you access them, so the result structures end up just being
39+ pointers into the original command line argument C-strings.
40+ '';
41+ license = licenses.mit;
42+ maintainers = with maintainers; [ AndersonTorres ];
43+ platforms = with platforms; all;
44+ badPlatforms = [ "aarch64-darwin" ];
45+ };
46+}