diff --git a/v2/cmd/wails/internal/commands/dev/dev.go b/v2/cmd/wails/internal/commands/dev/dev.go index 3e878d75..ba1fd3db 100644 --- a/v2/cmd/wails/internal/commands/dev/dev.go +++ b/v2/cmd/wails/internal/commands/dev/dev.go @@ -120,7 +120,11 @@ func AddSubcommand(app *clir.Cli, w io.Writer) error { return err } - err = runCommand(cwd, true, "wails", "generate", "module") + if flags.tags != "" { + err = runCommand(cwd, true, "wails", "generate", "module", "-tags", flags.tags) + } else { + err = runCommand(cwd, true, "wails", "generate", "module") + } if err != nil { return err } @@ -134,7 +138,7 @@ func AddSubcommand(app *clir.Cli, w io.Writer) error { buildOptions := generateBuildOptions(flags) buildOptions.Logger = logger - buildOptions.UserTags = parseUserTags(flags.tags) + buildOptions.UserTags = internal.ParseUserTags(flags.tags) var debugBinaryProcess *process.Process = nil @@ -266,18 +270,6 @@ func generateBuildOptions(flags devFlags) *build.Options { } } -// parseUserTags takes the string form of tags and converts to a slice of strings -func parseUserTags(tagString string) []string { - userTags := make([]string, 0) - for _, tag := range strings.Split(tagString, " ") { - thisTag := strings.TrimSpace(tag) - if thisTag != "" { - userTags = append(userTags, thisTag) - } - } - return userTags -} - // loadAndMergeProjectConfig reconciles flags passed to the CLI with project config settings and updates // the project config if necessary func loadAndMergeProjectConfig(cwd string, flags *devFlags) (*project.Project, error) { diff --git a/v2/cmd/wails/internal/commands/generate/module.go b/v2/cmd/wails/internal/commands/generate/module.go index 012c3bfd..9bf03ac7 100644 --- a/v2/cmd/wails/internal/commands/generate/module.go +++ b/v2/cmd/wails/internal/commands/generate/module.go @@ -2,17 +2,21 @@ package generate import ( "github.com/leaanthony/clir" + "github.com/wailsapp/wails/v2/cmd/wails/internal" "github.com/wailsapp/wails/v2/internal/shell" "io" "os" "path/filepath" "runtime" + "strings" ) // AddModuleCommand adds the `module` subcommand for the `generate` command func AddModuleCommand(app *clir.Cli, parent *clir.Command, w io.Writer) error { command := parent.NewSubCommand("module", "Generate wailsjs modules") + var tags string + command.StringFlag("tags", "tags to pass to Go compiler (quoted and space separated)", &tags) command.Action(func() error { @@ -29,7 +33,10 @@ func AddModuleCommand(app *clir.Cli, parent *clir.Command, w io.Writer) error { return err } - _, _, err = shell.RunCommand(cwd, "go", "build", "-tags", "bindings", "-o", filename) + tagList := internal.ParseUserTags(tags) + tagList = append(tagList, "bindings") + + _, _, err = shell.RunCommand(cwd, "go", "build", "-tags", strings.Join(tagList, ","), "-o", filename) if err != nil { return err } diff --git a/v2/cmd/wails/internal/tags.go b/v2/cmd/wails/internal/tags.go new file mode 100644 index 00000000..42743028 --- /dev/null +++ b/v2/cmd/wails/internal/tags.go @@ -0,0 +1,15 @@ +package internal + +import "strings" + +// ParseUserTags takes the string form of tags and converts to a slice of strings +func ParseUserTags(tagString string) []string { + userTags := make([]string, 0) + for _, tag := range strings.Split(tagString, " ") { + thisTag := strings.TrimSpace(tag) + if thisTag != "" { + userTags = append(userTags, thisTag) + } + } + return userTags +}