summary refs log tree commit diff
path: root/pkgs/development/libraries
diff options
context:
space:
mode:
authorAndersonTorres <torres.anderson.85@protonmail.com>2022-04-17 01:41:35 -0300
committerAndersonTorres <torres.anderson.85@protonmail.com>2022-04-17 16:23:11 -0300
commit4cd90c2e2bf6e08767ee455bacf96ce957876fa5 (patch)
tree672bb147dc160845dec15036a15d220e0736815b /pkgs/development/libraries
parent44eaaf34b7ac8078446ca9e69c649c5e0435e6f2 (diff)
downloadnixpkgs-4cd90c2e2bf6e08767ee455bacf96ce957876fa5.tar
nixpkgs-4cd90c2e2bf6e08767ee455bacf96ce957876fa5.tar.gz
nixpkgs-4cd90c2e2bf6e08767ee455bacf96ce957876fa5.tar.bz2
nixpkgs-4cd90c2e2bf6e08767ee455bacf96ce957876fa5.tar.lz
nixpkgs-4cd90c2e2bf6e08767ee455bacf96ce957876fa5.tar.xz
nixpkgs-4cd90c2e2bf6e08767ee455bacf96ce957876fa5.tar.zst
nixpkgs-4cd90c2e2bf6e08767ee455bacf96ce957876fa5.zip
argagg: init at 0.4.6
Caveat: it is not running on ARM-Darwin.
Diffstat (limited to 'pkgs/development/libraries')
-rw-r--r--pkgs/development/libraries/argagg/0001-catch.diff20
-rw-r--r--pkgs/development/libraries/argagg/default.nix46
2 files changed, 66 insertions, 0 deletions
diff --git a/pkgs/development/libraries/argagg/0001-catch.diff b/pkgs/development/libraries/argagg/0001-catch.diff
new file mode 100644
index 00000000000..f99649d5681
--- /dev/null
+++ b/pkgs/development/libraries/argagg/0001-catch.diff
@@ -0,0 +1,20 @@
+--- old/test/doctest.h	2019-03-05 18:04:06.143740733 +0300
++++ new/test/doctest.h	2019-03-05 18:04:43.577284916 +0300
+@@ -1307,7 +1307,7 @@
+                                                        __FILE__, __LINE__, #expr, #as);            \
+             try {                                                                                  \
+                 expr;                                                                              \
+-            } catch(as) {                                                                          \
++            } catch(as e) {                                                                          \
+                 _DOCTEST_RB.m_threw    = true;                                                     \
+                 _DOCTEST_RB.m_threw_as = true;                                                     \
+             } catch(...) { _DOCTEST_RB.m_threw = true; }                                           \
+@@ -1332,7 +1332,7 @@
+ #define DOCTEST_REQUIRE_THROWS(expr) DOCTEST_ASSERT_THROWS(expr, DT_REQUIRE_THROWS)
+ 
+ #define DOCTEST_WARN_THROWS_AS(expr, ex) DOCTEST_ASSERT_THROWS_AS(expr, ex, DT_WARN_THROWS_AS)
+-#define DOCTEST_CHECK_THROWS_AS(expr, ex) DOCTEST_ASSERT_THROWS_AS(expr, ex, DT_CHECK_THROWS_AS)
++#define DOCTEST_CHECK_THROWS_AS(expr, ex) DOCTEST_ASSERT_THROWS_AS(expr, const ex &, DT_CHECK_THROWS_AS)
+ #define DOCTEST_REQUIRE_THROWS_AS(expr, ex) DOCTEST_ASSERT_THROWS_AS(expr, ex, DT_REQUIRE_THROWS_AS)
+ 
+ #define DOCTEST_WARN_NOTHROW(expr) DOCTEST_ASSERT_NOTHROW(expr, DT_WARN_NOTHROW)
diff --git a/pkgs/development/libraries/argagg/default.nix b/pkgs/development/libraries/argagg/default.nix
new file mode 100644
index 00000000000..7ff9eaac1e3
--- /dev/null
+++ b/pkgs/development/libraries/argagg/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "argagg";
+  version = "0.4.6";
+
+  src = fetchFromGitHub {
+    owner = "vietjtnguyen";
+    repo = pname;
+    rev = version;
+    hash = "sha256-MCtlAPfwdJpgfS8IH+zlcgaaxZ5AsP4hJvbZAFtOa4o=";
+  };
+
+  patches = [
+    # Fix compilation of macro catch statement
+    ./0001-catch.diff
+  ];
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/vietjtnguyen/argagg";
+    description = "Argument Aggregator";
+    longDescription = ''
+      argagg is yet another C++ command line argument/option parser. It was
+      written as a simple and idiomatic alternative to other frameworks like
+      getopt, Boost program options, TCLAP, and others. The goal is to achieve
+      the majority of argument parsing needs in a simple manner with an easy to
+      use API. It operates as a single pass over all arguments, recognizing
+      flags prefixed by - (short) or -- (long) and aggregating them into easy to
+      access structures with lots of convenience functions. It defers processing
+      types until you access them, so the result structures end up just being
+      pointers into the original command line argument C-strings.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; all;
+    badPlatforms = [ "aarch64-darwin" ];
+  };
+}