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