Unverified Commit 7c4cc647 authored by Wael Nasreddine's avatar Wael Nasreddine Committed by GitHub
Browse files

Merge pull request #298847 from ShamrockLee/build-go-module-buildflag

buildGoModule: warn about buildFlags only when using buildPhase provided by buildGoModule
parents f570a4f0 8d861e61
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -163,8 +163,10 @@ let
    inherit (go) GOOS GOARCH;

    GOFLAGS = GOFLAGS
      ++ lib.optional (!proxyVendor) "-mod=vendor"
      ++ lib.optional (!allowGoReference) "-trimpath";
      ++ lib.warnIf (lib.any (lib.hasPrefix "-mod=") GOFLAGS) "use `proxyVendor` to control Go module/vendor behavior instead of setting `-mod=` in GOFLAGS"
        (lib.optional (!proxyVendor) "-mod=vendor")
      ++ lib.warnIf (builtins.elem "-trimpath" GOFLAGS) "`-trimpath` is added by default to GOFLAGS by buildGoModule when allowGoReference isn't set to true"
        (lib.optional (!allowGoReference) "-trimpath");
    inherit CGO_ENABLED enableParallelBuilding GO111MODULE GOTOOLCHAIN;

    # If not set to an explicit value, set the buildid empty for reproducibility.
@@ -196,7 +198,12 @@ let
      runHook postConfigure
    '');

    buildPhase = args.buildPhase or (''
    buildPhase = args.buildPhase or (
      lib.warnIf (buildFlags != "" || buildFlagsArray != "")
        "Use the `ldflags` and/or `tags` attributes instead of `buildFlags`/`buildFlagsArray`"
      lib.warnIf (builtins.elem "-buildid=" ldflags)
        "`-buildid=` is set by default as ldflag by buildGoModule"
    ''
      runHook preBuild

      exclude='\(/_\|examples\|Godeps\|testdata'
@@ -313,9 +320,4 @@ let
    } // meta;
  });
in
lib.warnIf (buildFlags != "" || buildFlagsArray != "")
  "Use the `ldflags` and/or `tags` attributes instead of `buildFlags`/`buildFlagsArray`"
lib.warnIf (builtins.elem "-buildid=" ldflags) "`-buildid=` is set by default as ldflag by buildGoModule"
lib.warnIf (builtins.elem "-trimpath" GOFLAGS) "`-trimpath` is added by default to GOFLAGS by buildGoModule when allowGoReference isn't set to true"
lib.warnIf (lib.any (lib.hasPrefix "-mod=") GOFLAGS) "use `proxyVendor` to control Go module/vendor behavior instead of setting `-mod=` in GOFLAGS"
package