github.com/hwaf/hwaf@v0.0.0-20140814122253-5465f73b20f1/cmd_waf_build.go (about) 1 package main 2 3 import ( 4 "os" 5 6 "github.com/gonuts/commander" 7 "github.com/gonuts/flag" 8 ) 9 10 func hwaf_make_cmd_waf_build() *commander.Command { 11 cmd := &commander.Command{ 12 Run: hwaf_run_cmd_waf_build, 13 UsageLine: "build", 14 Short: "build local project or packages", 15 Long: ` 16 build builds the local project or packages. 17 18 ex: 19 $ hwaf build 20 $ hwaf build --prefix=my-install-area 21 $ hwaf build --prefix=my-install-area --destdir=/tmp/dest 22 `, 23 Flag: *flag.NewFlagSet("hwaf-waf-build", flag.ExitOnError), 24 CustomFlags: true, 25 } 26 return cmd 27 } 28 29 func hwaf_run_cmd_waf_build(cmd *commander.Command, args []string) error { 30 var err error 31 //n := "hwaf-" + cmd.Name() 32 33 waf, err := g_ctx.WafBin() 34 if err != nil { 35 return err 36 } 37 38 subargs := []string{"build"} 39 run_tests := false 40 for _, arg := range args { 41 if arg == "check" { 42 arg = "--alltests" 43 run_tests = true 44 } 45 subargs = append(subargs, arg) 46 } 47 if !run_tests { 48 subargs = append(subargs[:1], append([]string{"--notests"}, subargs[1:]...)...) 49 } 50 51 sub := g_ctx.Command(waf, subargs...) 52 sub.Stdout = os.Stdout 53 sub.Stderr = os.Stderr 54 return sub.Run() 55 } 56 57 // EOF