From 5bd0ecea5e437deda7848584d92acd9af95912ff Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Mon, 22 Jun 2020 20:57:35 +0200 Subject: [PATCH] cmd/gogio: add -tags flag for supplying extra tags to the build Signed-off-by: Elias Naur --- cmd/gogio/androidbuild.go | 1 + cmd/gogio/help.go | 2 ++ cmd/gogio/iosbuild.go | 2 +- cmd/gogio/jsbuild.go | 1 + cmd/gogio/main.go | 3 +++ 5 files changed, 8 insertions(+), 1 deletion(-) diff --git a/cmd/gogio/androidbuild.go b/cmd/gogio/androidbuild.go index dc0a766b..924a9b06 100644 --- a/cmd/gogio/androidbuild.go +++ b/cmd/gogio/androidbuild.go @@ -203,6 +203,7 @@ func compileAndroid(tmpDir string, tools *androidTools, bi *buildInfo) (err erro "build", "-ldflags=-w -s "+bi.ldflags, "-buildmode=c-shared", + "-tags", bi.tags, "-o", libFile, bi.pkg, ) diff --git a/cmd/gogio/help.go b/cmd/gogio/help.go index fffcd6f7..1cd41f73 100644 --- a/cmd/gogio/help.go +++ b/cmd/gogio/help.go @@ -34,6 +34,8 @@ and archive. Buildmode exe outputs an .ipa file for iOS or tvOS, an .apk file for Android or a directory with the WebAssembly module and support files for a browser. +The -ldflags and -tags flags pass extra linker flags and tags to the go tool. + As a special case for iOS or tvOS, specifying a path that ends with ".app" will output an app directory suitable for a simulator. diff --git a/cmd/gogio/iosbuild.go b/cmd/gogio/iosbuild.go index 49bfac99..b6b8eb8f 100644 --- a/cmd/gogio/iosbuild.go +++ b/cmd/gogio/iosbuild.go @@ -411,7 +411,7 @@ func archiveIOS(tmpDir, target, frameworkRoot string, bi *buildInfo) error { "-ldflags=-s -w "+bi.ldflags, "-buildmode=c-archive", "-o", lib, - "-tags", "ios", + "-tags", "ios "+bi.tags, bi.pkg, ) lipo.Args = append(lipo.Args, lib) diff --git a/cmd/gogio/jsbuild.go b/cmd/gogio/jsbuild.go index b44be5e2..733afee3 100644 --- a/cmd/gogio/jsbuild.go +++ b/cmd/gogio/jsbuild.go @@ -22,6 +22,7 @@ func buildJS(bi *buildInfo) error { "go", "build", "-ldflags="+bi.ldflags, + "-tags="+bi.tags, "-o", filepath.Join(out, "main.wasm"), bi.pkg, ) diff --git a/cmd/gogio/main.go b/cmd/gogio/main.go index 5c28d489..2af7273c 100644 --- a/cmd/gogio/main.go +++ b/cmd/gogio/main.go @@ -33,12 +33,14 @@ var ( keepWorkdir = flag.Bool("work", false, "print the name of the temporary work directory and do not delete it when exiting.") linkMode = flag.String("linkmode", "", "set the -linkmode flag of the go tool") extraLdflags = flag.String("ldflags", "", "extra flags to the Go linker") + extraTags = flag.String("tags", "", "extra tags to the Go tool") ) type buildInfo struct { name string pkg string ldflags string + tags string target string appID string version int @@ -96,6 +98,7 @@ func mainErr() error { dir: dir, version: *version, minsdk: *minsdk, + tags: *extraTags, } if bi.appID == "" { bi.appID = appIDFromPackage(pkgPath)