From 0fd74669229415907353563b3dbc2847d8a80942 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Sun, 24 Nov 2019 20:41:01 +0000 Subject: feat(buildGo): Add support for x_defs option in buildGo.program This lets users define an attribute set with link time options. --- buildGo.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'buildGo.nix') diff --git a/buildGo.nix b/buildGo.nix index 029271f2f7..dce5502658 100644 --- a/buildGo.nix +++ b/buildGo.nix @@ -44,15 +44,17 @@ let allDeps = deps: lib.unique (lib.flatten (deps ++ (map (d: d.goDeps) deps))); + xFlags = x_defs: spaceOut (map (k: "-X ${k}=${x_defs."${k}"}") (attrNames x_defs)); + # High-level build functions # Build a Go program out of the specified files and dependencies. - program = { name, srcs, deps ? [] }: + program = { name, srcs, deps ? [], x_defs ? {} }: let uniqueDeps = allDeps deps; in runCommand name {} '' ${go}/bin/go tool compile -o ${name}.a -trimpath=$PWD -trimpath=${go} ${includeSources uniqueDeps} ${spaceOut srcs} mkdir -p $out/bin - ${go}/bin/go tool link -o $out/bin/${name} -buildid nix ${includeLibs uniqueDeps} ${name}.a + ${go}/bin/go tool link -o $out/bin/${name} -buildid nix ${xFlags x_defs} ${includeLibs uniqueDeps} ${name}.a ''; # Build a Go library assembled out of the specified files. -- cgit 1.4.1