build: dev support checkLinkArgs/CheckLLFiles/GenLLFiles
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user