mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-03 06:01:52 +08:00
[dev] Do not generate bindings in the dev app itself (#1899)
* [dev] Pass skip bindings to the building process * [dev] Do not generate bindings in the dev app itself This is done outside during `wails dev` bootstrapping and fast regeneration seems to sometime cause locking problems on Windows.
This commit is contained in:
parent
953e67e7ed
commit
f5549db85d
@ -160,6 +160,7 @@ func AddSubcommand(app *clir.Cli, w io.Writer) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
buildOptions := generateBuildOptions(flags)
|
buildOptions := generateBuildOptions(flags)
|
||||||
|
buildOptions.SkipBindings = flags.skipBindings
|
||||||
buildOptions.Logger = logger
|
buildOptions.Logger = logger
|
||||||
|
|
||||||
userTags, err := buildtags.Parse(flags.tags)
|
userTags, err := buildtags.Parse(flags.tags)
|
||||||
@ -169,7 +170,7 @@ func AddSubcommand(app *clir.Cli, w io.Writer) error {
|
|||||||
|
|
||||||
buildOptions.UserTags = userTags
|
buildOptions.UserTags = userTags
|
||||||
|
|
||||||
if !flags.skipBindings {
|
if !buildOptions.SkipBindings {
|
||||||
if flags.verbosity == build.VERBOSE {
|
if flags.verbosity == build.VERBOSE {
|
||||||
LogGreen("Generating Bindings...")
|
LogGreen("Generating Bindings...")
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,6 @@ import (
|
|||||||
"github.com/wailsapp/wails/v2/internal/fs"
|
"github.com/wailsapp/wails/v2/internal/fs"
|
||||||
"github.com/wailsapp/wails/v2/internal/logger"
|
"github.com/wailsapp/wails/v2/internal/logger"
|
||||||
"github.com/wailsapp/wails/v2/internal/menumanager"
|
"github.com/wailsapp/wails/v2/internal/menumanager"
|
||||||
"github.com/wailsapp/wails/v2/internal/project"
|
|
||||||
pkglogger "github.com/wailsapp/wails/v2/pkg/logger"
|
pkglogger "github.com/wailsapp/wails/v2/pkg/logger"
|
||||||
"github.com/wailsapp/wails/v2/pkg/options"
|
"github.com/wailsapp/wails/v2/pkg/options"
|
||||||
)
|
)
|
||||||
@ -193,10 +192,6 @@ func CreateApp(appoptions *options.App) (*App, error) {
|
|||||||
}
|
}
|
||||||
appBindings := binding.NewBindings(myLogger, appoptions.Bind, bindingExemptions, false)
|
appBindings := binding.NewBindings(myLogger, appoptions.Bind, bindingExemptions, false)
|
||||||
|
|
||||||
err = generateBindings(appBindings)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
eventHandler := runtime.NewEvents(myLogger)
|
eventHandler := runtime.NewEvents(myLogger)
|
||||||
ctx = context.WithValue(ctx, "events", eventHandler)
|
ctx = context.WithValue(ctx, "events", eventHandler)
|
||||||
messageDispatcher := dispatcher.NewDispatcher(ctx, myLogger, appBindings, eventHandler)
|
messageDispatcher := dispatcher.NewDispatcher(ctx, myLogger, appBindings, eventHandler)
|
||||||
@ -223,37 +218,6 @@ func CreateApp(appoptions *options.App) (*App, error) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func generateBindings(bindings *binding.Bindings) error {
|
|
||||||
|
|
||||||
cwd, err := os.Getwd()
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
projectConfig, err := project.Load(cwd)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if projectConfig.WailsJSDir == "" {
|
|
||||||
projectConfig.WailsJSDir = filepath.Join(cwd, "frontend")
|
|
||||||
}
|
|
||||||
|
|
||||||
targetDir := filepath.Join(projectConfig.WailsJSDir, "wailsjs", "go")
|
|
||||||
err = os.RemoveAll(targetDir)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
_ = fs.MkDirs(targetDir)
|
|
||||||
|
|
||||||
err = bindings.GenerateGoBindings(targetDir)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func tryInferAssetDirFromFS(assets iofs.FS) (string, error) {
|
func tryInferAssetDirFromFS(assets iofs.FS) (string, error) {
|
||||||
if _, isEmbedFs := assets.(embed.FS); !isEmbedFs {
|
if _, isEmbedFs := assets.(embed.FS); !isEmbedFs {
|
||||||
// We only infer the assetdir for embed.FS assets
|
// We only infer the assetdir for embed.FS assets
|
||||||
|
Loading…
Reference in New Issue
Block a user