Implement llgo build mode support (#1197)
- Add BuildMode type with three build modes: exe, c-archive, c-shared - Restrict buildmode flag to llgo build command only (not run/install/test) - Implement build mode specific linker arguments: - c-shared: use -shared -fPIC flags - c-archive: use ar tool to create static archive - exe: default executable mode - Add normalizeOutputPath function for platform-specific file naming conventions - Generate C header files for library modes - Fix buildmode flag conflict by removing from PassArgs - Add comprehensive test coverage for all build modes - Resolve duplicate logic between defaultAppExt and normalizeOutputPath 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -39,6 +39,7 @@ func init() {
|
||||
|
||||
flags.AddCommonFlags(&Cmd.Flag)
|
||||
flags.AddBuildFlags(&Cmd.Flag)
|
||||
flags.AddBuildModeFlags(&Cmd.Flag)
|
||||
flags.AddEmulatorFlags(&Cmd.Flag)
|
||||
flags.AddEmbeddedFlags(&Cmd.Flag)
|
||||
flags.AddOutputFlags(&Cmd.Flag)
|
||||
@@ -51,7 +52,10 @@ func runCmd(cmd *base.Command, args []string) {
|
||||
}
|
||||
|
||||
conf := build.NewDefaultConf(build.ModeBuild)
|
||||
flags.UpdateConfig(conf)
|
||||
if err := flags.UpdateBuildConfig(conf); err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
mockable.Exit(1)
|
||||
}
|
||||
|
||||
args = cmd.Flag.Args()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user