| 14 | ) |
| 15 | |
| 16 | func gopyMakeCmdGen() *commander.Command { |
| 17 | cmd := &commander.Command{ |
| 18 | Run: gopyRunCmdGen, |
| 19 | UsageLine: "gen <go-package-name> [other-go-package...]", |
| 20 | Short: "generate (C)Python language bindings for Go", |
| 21 | Long: ` |
| 22 | gen generates (C)Python language bindings for Go package(s). |
| 23 | |
| 24 | ex: |
| 25 | $ gopy gen [options] <go-package-name> [other-go-package...] |
| 26 | $ gopy gen github.com/go-python/gopy/_examples/hi |
| 27 | `, |
| 28 | Flag: *flag.NewFlagSet("gopy-gen", flag.ExitOnError), |
| 29 | } |
| 30 | |
| 31 | cmd.Flag.String("vm", "python", "path to python interpreter") |
| 32 | cmd.Flag.String("output", "", "output directory for bindings") |
| 33 | cmd.Flag.String("name", "", "name of output package (otherwise name of first package is used)") |
| 34 | cmd.Flag.String("main", "", "code string to run in the go main() function in the cgo library") |
| 35 | cmd.Flag.String("package-prefix", ".", "custom package prefix used when generating import "+ |
| 36 | "statements for generated package") |
| 37 | cmd.Flag.Bool("rename", false, "rename Go symbols to python PEP snake_case") |
| 38 | cmd.Flag.Bool("no-warn", false, "suppress warning messages, which may be expected") |
| 39 | cmd.Flag.Bool("no-make", false, "do not generate a Makefile, e.g., when called from Makefile") |
| 40 | cmd.Flag.Bool("dynamic-link", false, "whether to link output shared library dynamically to Python") |
| 41 | cmd.Flag.String("build-tags", "", "build tags to be passed to `go build`") |
| 42 | return cmd |
| 43 | } |
| 44 | |
| 45 | func gopyRunCmdGen(cmdr *commander.Command, args []string) error { |
| 46 | var err error |