diff options
Diffstat (limited to 'pkgs/tools/networking/curl/default.nix')
-rw-r--r-- | pkgs/tools/networking/curl/default.nix | 14 |
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"; |