compiler: pass -cflags and -ldflags to tinygo CLI command

Signed-off-by: Ron Evans <ron@hybridgroup.com>
This commit is contained in:
Ron Evans
2018-12-11 10:37:27 +01:00
committed by Ayke van Laethem
parent 8734732d0c
commit cb648d8ae1
2 changed files with 20 additions and 1 deletions
+2 -1
View File
@@ -32,7 +32,8 @@ func init() {
type Config struct {
Triple string // LLVM target triple, e.g. x86_64-unknown-linux-gnu (empty string means default)
GC string // garbage collection strategy
CFlags []string // flags to pass to cgo
CFlags []string // cflags to pass to cgo
LDFlags []string // ldflags to pass to cgo
DumpSSA bool // dump Go SSA, for compiler debugging
Debug bool // add debug symbols for gdb
RootDir string // GOROOT for TinyGo
+18
View File
@@ -34,6 +34,8 @@ type BuildConfig struct {
debug bool
printSizes string
initInterp bool
cFlags []string
ldFlags []string
}
// Helper function for Compiler object.
@@ -41,10 +43,16 @@ func Compile(pkgName, outpath string, spec *TargetSpec, config *BuildConfig, act
if config.gc == "" && spec.GC != "" {
config.gc = spec.GC
}
// Append command line passed CFlags and LDFlags
spec.CFlags = append(spec.CFlags, config.cFlags...)
spec.LDFlags = append(spec.LDFlags, config.ldFlags...)
compilerConfig := compiler.Config{
Triple: spec.Triple,
GC: config.gc,
CFlags: spec.CFlags,
LDFlags: spec.LDFlags,
Debug: config.debug,
DumpSSA: config.dumpSSA,
RootDir: sourceDir(),
@@ -497,6 +505,8 @@ func main() {
ocdOutput := flag.Bool("ocd-output", false, "print OCD daemon output during debug")
initInterp := flag.Bool("initinterp", true, "enable/disable partial evaluator of generated IR")
port := flag.String("port", "/dev/ttyACM0", "flash port")
cFlags := flag.String("cflags", "", "additional cflags for compiler")
ldFlags := flag.String("ldflags", "", "additional ldflags for linker")
if len(os.Args) < 2 {
fmt.Fprintln(os.Stderr, "No command-line arguments supplied.")
@@ -516,6 +526,14 @@ func main() {
initInterp: *initInterp,
}
if *cFlags != "" {
config.cFlags = strings.Split(*cFlags, " ")
}
if *ldFlags != "" {
config.ldFlags = strings.Split(*ldFlags, " ")
}
os.Setenv("CC", "clang -target="+*target)
switch command {