build: dev support checkLinkArgs/CheckLLFiles/GenLLFiles

This commit is contained in:
visualfc
2025-08-21 17:00:00 +08:00
parent 6de3bdcdd9
commit 96c7afcf3a
6 changed files with 54 additions and 57 deletions

View File

@@ -47,11 +47,7 @@ func runCmd(cmd *base.Command, args []string) {
}
conf := build.NewDefaultConf(build.ModeBuild)
conf.Tags = flags.Tags
conf.Verbose = flags.Verbose
conf.OutFile = flags.OutputFile
conf.Target = flags.Target
conf.AbiMode = build.AbiMode(flags.AbiMode)
flags.UpdateConfig(conf)
args = cmd.Flag.Args()

View File

@@ -3,6 +3,7 @@ package flags
import (
"flag"
"github.com/goplus/llgo/internal/build"
"github.com/goplus/llgo/internal/buildenv"
)
@@ -17,6 +18,9 @@ var BuildEnv string
var Tags string
var Target string
var AbiMode int
var CheckLinkArgs bool
var CheckLLFiles bool
var GenLLFiles bool
func AddBuildFlags(fs *flag.FlagSet) {
fs.BoolVar(&Verbose, "v", false, "Verbose mode")
@@ -25,8 +29,9 @@ func AddBuildFlags(fs *flag.FlagSet) {
fs.StringVar(&Target, "target", "", "Target platform (e.g., rp2040, wasi)")
if buildenv.Dev {
fs.IntVar(&AbiMode, "abi", 2, "ABI mode (default 2). 0 = none, 1 = cfunc, 2 = allfunc.")
} else {
AbiMode = 2
fs.BoolVar(&CheckLinkArgs, "check-linkargs", false, "check link args valid")
fs.BoolVar(&CheckLLFiles, "check-llfiles", false, "check .ll files valid")
fs.BoolVar(&GenLLFiles, "gen-llfiles", false, "generate .ll files for pkg export")
}
}
@@ -35,3 +40,21 @@ var Gen bool
func AddCmpTestFlags(fs *flag.FlagSet) {
fs.BoolVar(&Gen, "gen", false, "Generate llgo.expect file")
}
func UpdateConfig(conf *build.Config) {
conf.Tags = Tags
conf.Verbose = Verbose
conf.Target = Target
switch conf.Mode {
case build.ModeBuild:
conf.OutFile = OutputFile
case build.ModeCmpTest:
conf.GenExpect = Gen
}
if buildenv.Dev {
conf.AbiMode = build.AbiMode(AbiMode)
conf.CheckLinkArgs = CheckLinkArgs
conf.CheckLLFiles = CheckLLFiles
conf.GenLL = GenLLFiles
}
}

View File

@@ -45,9 +45,7 @@ func runCmd(cmd *base.Command, args []string) {
}
conf := build.NewDefaultConf(build.ModeInstall)
conf.Tags = flags.Tags
conf.Verbose = flags.Verbose
conf.AbiMode = build.AbiMode(flags.AbiMode)
flags.UpdateConfig(conf)
args = cmd.Flag.Args()
_, err := build.Do(args, conf)

View File

@@ -68,11 +68,7 @@ func runCmdEx(cmd *base.Command, args []string, mode build.Mode) {
}
conf := build.NewDefaultConf(mode)
conf.Tags = flags.Tags
conf.Verbose = flags.Verbose
conf.GenExpect = flags.Gen
conf.Target = flags.Target
conf.AbiMode = build.AbiMode(flags.AbiMode)
flags.UpdateConfig(conf)
args = cmd.Flag.Args()
args, runArgs, err := parseRunArgs(args)

View File

@@ -27,10 +27,7 @@ func runCmd(cmd *base.Command, args []string) {
}
conf := build.NewDefaultConf(build.ModeTest)
conf.Tags = flags.Tags
conf.Verbose = flags.Verbose
conf.Target = flags.Target
conf.AbiMode = build.AbiMode(flags.AbiMode)
flags.UpdateConfig(conf)
args = cmd.Flag.Args()
_, err := build.Do(args, conf)