about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/go-packages/generic/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/go-packages/generic/default.nix')
-rw-r--r--nixpkgs/pkgs/development/go-packages/generic/default.nix11
1 files changed, 10 insertions, 1 deletions
diff --git a/nixpkgs/pkgs/development/go-packages/generic/default.nix b/nixpkgs/pkgs/development/go-packages/generic/default.nix
index 0fb51b68eca6..7c4d173b937b 100644
--- a/nixpkgs/pkgs/development/go-packages/generic/default.nix
+++ b/nixpkgs/pkgs/development/go-packages/generic/default.nix
@@ -10,6 +10,9 @@
 # Go linker flags, passed to go via -ldflags
 , ldflags ? []
 
+# Go tags, passed to go via -tag
+, tags ? []
+
 # We want parallel builds by default
 , enableParallelBuilding ? true
 
@@ -40,6 +43,10 @@
 
 , CGO_ENABLED ? go.CGO_ENABLED
 
+# needed for buildFlags{,Array} warning
+, buildFlags ? ""
+, buildFlagsArray ? ""
+
 , meta ? {}, ... } @ args:
 
 
@@ -151,7 +158,7 @@ let
         echo "$d" | grep -q "\(/_\|examples\|Godeps\)" && return 0
         [ -n "$excludedPackages" ] && echo "$d" | grep -q "$excludedPackages" && return 0
         local OUT
-        if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" ''${ldflags:+-ldflags="$ldflags"} -v -p $NIX_BUILD_CORES $d 2>&1)"; then
+        if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" ''${tags:+-tags=${lib.concatStringsSep "," tags}} ''${ldflags:+-ldflags="$ldflags"} -v -p $NIX_BUILD_CORES $d 2>&1)"; then
           if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then
             echo "$OUT" >&2
             return 1
@@ -254,4 +261,6 @@ let
     } // meta;
   });
 in
+lib.warnIf (buildFlags != "" || buildFlagsArray != "")
+  "Use the `ldflags` and/or `tags` attributes instead of `buildFlags`/`buildFlagsArray`"
   package