From 869d2c4524e72d497af943592fec52ec461f2038 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 6 Sep 2019 04:47:48 -0400 Subject: [PATCH] Add a way to bake-in final TINYGOROOT. This is similar to setting FINAL_GOROOT when building standard Go. --- target.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/target.go b/target.go index fb73d677..7dcaa968 100644 --- a/target.go +++ b/target.go @@ -15,6 +15,11 @@ import ( "strings" ) +// TINYGOROOT is the path to the final location for checking tinygo files. If +// unset (by a -X ldflag), then sourceDir() will fallback to the original build +// directory. +var TINYGOROOT string + // Target specification for a given target. Used for bare metal targets. // // The target specification is mostly inspired by Rust: @@ -270,6 +275,14 @@ func sourceDir() string { return root } + if TINYGOROOT != "" { + if !isSourceDir(TINYGOROOT) { + fmt.Fprintln(os.Stderr, "error: TINYGOROOT was not set to the correct root") + os.Exit(1) + } + return TINYGOROOT + } + // Find root from executable path. path, err := os.Executable() if err != nil {