summary refs log tree commit diff
path: root/pkgs/development/libraries/libmicrohttpd/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/libmicrohttpd/default.nix')
-rw-r--r--pkgs/development/libraries/libmicrohttpd/default.nix10
1 files changed, 9 insertions, 1 deletions
diff --git a/pkgs/development/libraries/libmicrohttpd/default.nix b/pkgs/development/libraries/libmicrohttpd/default.nix
index c7892716c9d..9eca6bd84b9 100644
--- a/pkgs/development/libraries/libmicrohttpd/default.nix
+++ b/pkgs/development/libraries/libmicrohttpd/default.nix
@@ -5,8 +5,16 @@
 , openssl ? null, zlib ? null, libgcrypt ? null, gnutls ? null
 }:
 
-with stdenv;
 let
+  mkFlag = trueStr: falseStr: cond: name: val:
+    if cond == null then null else
+      "--${if cond != false then trueStr else falseStr}${name}${if val != null && cond != false then "=${val}" else ""}";
+  mkEnable = mkFlag "enable-" "disable-";
+  mkWith = mkFlag "with-" "without-";
+  mkOther = mkFlag "" "" true;
+
+  shouldUsePkg = pkg: if pkg != null && stdenv.lib.any (x: x == stdenv.system) pkg.meta.platforms then pkg else null;
+
   optOpenssl = shouldUsePkg openssl;
   optZlib = shouldUsePkg zlib;
   hasSpdy = optOpenssl != null && optZlib != null;