summary refs log tree commit diff
path: root/pkgs/tools/networking/curl/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/networking/curl/default.nix')
-rw-r--r--pkgs/tools/networking/curl/default.nix14
1 files changed, 11 insertions, 3 deletions
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index 8a101e9845a..ad2c9ec6897 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -8,12 +8,19 @@
 , suffix ? ""
 }:
 
-with stdenv;
-with stdenv.lib;
 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;
+
   isLight = suffix == "light";
   isFull = suffix == "full";
-  nameSuffix = optionalString (suffix != "") "-${suffix}";
+  nameSuffix = stdenv.lib.optionalString (suffix != "") "-${suffix}";
 
   # Normal Depedencies
   optZlib = if isLight then null else shouldUsePkg zlib;
@@ -28,6 +35,7 @@ let
   optOpenldap = if !isFull then null else shouldUsePkg openldap;
   optLibidn = if !isFull then null else shouldUsePkg libidn;
 in
+with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "curl${nameSuffix}-${version}";
   version = "7.42.1";