summary refs log tree commit diff
path: root/pkgs/development/go-modules
diff options
context:
space:
mode:
authorSilvan Mosberger <contact@infinisil.com>2021-06-03 17:45:04 +0200
committerzowoq <59103226+zowoq@users.noreply.github.com>2021-06-05 09:54:36 +1000
commit155ae682a5122960aed61724b4ed8c9711b53e99 (patch)
tree3d6aa4f5435e75d8444994414f4abdbb64ffb5c6 /pkgs/development/go-modules
parent99697d891de658a5b6ea4bd4ea5ef9acfb62ea13 (diff)
downloadnixpkgs-155ae682a5122960aed61724b4ed8c9711b53e99.tar
nixpkgs-155ae682a5122960aed61724b4ed8c9711b53e99.tar.gz
nixpkgs-155ae682a5122960aed61724b4ed8c9711b53e99.tar.bz2
nixpkgs-155ae682a5122960aed61724b4ed8c9711b53e99.tar.lz
nixpkgs-155ae682a5122960aed61724b4ed8c9711b53e99.tar.xz
nixpkgs-155ae682a5122960aed61724b4ed8c9711b53e99.tar.zst
nixpkgs-155ae682a5122960aed61724b4ed8c9711b53e99.zip
buildGoModule/buildGoPackage: Introduce ldflags argument
Previously it was not possible to define multiple ldflags, since only
the last definition applies, and there's some quoting issues with
`buildFlagsArray`. With the new `ldflags` argument it's possible to do
this, e.g.

    ldflags = drv.ldflags or [] ++ [
      "-X main.Version=1.0"
    ]

can now properly append a flag without clearing all previous ldflags.
Diffstat (limited to 'pkgs/development/go-modules')
-rw-r--r--pkgs/development/go-modules/generic/default.nix5
1 files changed, 4 insertions, 1 deletions
diff --git a/pkgs/development/go-modules/generic/default.nix b/pkgs/development/go-modules/generic/default.nix
index 8246eaefed4..10beb80f2e6 100644
--- a/pkgs/development/go-modules/generic/default.nix
+++ b/pkgs/development/go-modules/generic/default.nix
@@ -7,6 +7,9 @@
 , passthru ? {}
 , patches ? []
 
+# Go linker flags, passed to go via -ldflags
+, ldflags ? []
+
 # A function to override the go-modules derivation
 , overrideModAttrs ? (_oldAttrs : {})
 
@@ -153,7 +156,7 @@ let
         echo "$d" | grep -q "\(/_\|examples\|Godeps\|testdata\)" && return 0
         [ -n "$excludedPackages" ] && echo "$d" | grep -q "$excludedPackages" && return 0
         local OUT
-        if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" -v -p $NIX_BUILD_CORES $d 2>&1)"; then
+        if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" ''${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