2
0
mirror of synced 2025-02-24 15:28:28 +00:00

180 Commits

Author SHA1 Message Date
David Crawshaw
0d55c986b8 cmd/gomobile: make -n work with bind
Fixes golang/go#13323.

Change-Id: Ica213b7d06581ac7a0492184a903752cfa15d889
Reviewed-on: https://go-review.googlesource.com/17090
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-11-20 17:04:45 +00:00
Hyang-Ah (Hana) Kim
b39ed682d8 cmd/gomobile: sanitize android app package names
https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html

"This can occur if the domain name contains a hyphen or other special
character, if the package name begins with a digit or other character
that is illegal to use as the beginning of a Java name, or if the
package name contains a reserved Java keyword, such as "int". In this
event, the suggested convention is to add an underscore."

The sanitized name is used for the app package name and the default apk
file name.

Update golang/go#12273

Change-Id: I76d7f423e87c54a5bb7ab71ec251fd3a26da9722
Reviewed-on: https://go-review.googlesource.com/16875
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-11-18 17:26:55 +00:00
David Crawshaw
d4beed2e0a cmd/gomobile: load from export data, not source
Replace the vendored version of x/tools/go/loader with the standard
library's go/importer package. This reads the export data from
$GOPATH/pkg/pkgname.a instead of parsing and type checking the source
code. The "go install" subcommand is invoked just prior to reading
the export data to make sure the export data is up to date.

Not yet tested on darwin, but working for android builds.

Change-Id: I24aa60aa46b843d30bc5833e3035699900bf3df4
Reviewed-on: https://go-review.googlesource.com/16913
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-11-17 19:25:59 +00:00
David Crawshaw
f8cb2f0e7e cmd/gomobile: expose goVersion to subcommands
Pulled out of golang.org/cl/16913.

Change-Id: I041aba4e8cefed95ee2935139571140164b5d677
Reviewed-on: https://go-review.googlesource.com/17001
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-11-17 18:51:34 +00:00
David Crawshaw
a6a27b7fc9 cmd/gomobile: say why a version is unknown
Fixes golang/go#13238

Change-Id: Ib44f9833891d721843a0fa255d9a86f1c7d43902
Reviewed-on: https://go-review.googlesource.com/16929
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-11-17 12:58:04 +00:00
David Crawshaw
8835366576 cmd/gomobile: build android stdlib
Second attempt at the change reverted in golang.org/cl/16917.

The current code executes go install -buildmode=c-shared std, which
does nothing. (See golang/go#13234.)

Correctly compiling packages for android arm requires different
flags on Go 1.5 and 1.6, as we now build PIC. So we look for go1.5
in the output of "go version", and otherwise assume 1.6+.

Change-Id: If636f52be5019bd179483b8735630a98e6f8d201
Reviewed-on: https://go-review.googlesource.com/16928
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-11-16 15:38:01 +00:00
Hyang-Ah Hana Kim
4f9c718489 Revert "cmd/gomobile: avoid -buildmode for go install std"
This reverts commit b84795b4945bb0ca4d464ffff3cba37d2ff049c5.

See golang/go#13246

Change-Id: Ie8b89a9ac6e5b6906b3a4de21122d694cf7a2d0a
Reviewed-on: https://go-review.googlesource.com/16917
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-11-14 03:18:11 +00:00
David Crawshaw
daecc566fd cmd/gobind: load from export data, not source
Replace the vendored version of x/tools/go/loader with the standard
library's go/importer package. This reads the export data from
$GOPATH/pkg/pkgname.a instead of parsing and type checking the source
code. The "go install" subcommand is invoked just prior to reading the
export data to make sure the export data is up to date.

This has the advantage of relying entirely on the go tool for correctly
resolving and parsing dependencies of the package being bound. (For
example, a bound package can now depend on cgo.) It also removes a class
of bugs where the version of the loader we depend on can get out of sync
with the go tool. (For example, gobind now correctly handles vendor
dependencies.)

As a bonus, for packages with significant dependencies this approach
should also be noticeably faster as we do not need to parse and
typecheck all of the dependencies.

Change-Id: If9a431c137eae2071c1d89be88a4a6a61d6812fa
Reviewed-on: https://go-review.googlesource.com/16911
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-11-13 20:01:33 +00:00
David Crawshaw
b84795b494 cmd/gomobile: avoid -buildmode for go install std
Turns out that go install -buildmode=c-shared std does nothing. The go
tool filters all non-main packages from c-shared builds, which for the
standard library is all packages.

This may be a bug in the go tool. I'm not sure yet. But either way, to
make the gomobile tool work with Go 1.5, work around it here.

Change-Id: Ica1e7eeb0f40a21a2c78b0c55bdc54f133a32ee5
Reviewed-on: https://go-review.googlesource.com/16912
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-11-13 20:00:04 +00:00
Daniel Skinner
3b97f7024e cmd/gomobile: synthesize minSdkVersion for manifest
Fixes golang/go#13172

Change-Id: I16cab3f74f668ce3522a1a14c979aca5c988347c
Reviewed-on: https://go-review.googlesource.com/16843
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-11-13 09:00:34 +00:00
Hyang-Ah Hana Kim
1452f035be cmd/gomobile, asset: specify vanity import paths
Change-Id: I3740f3be3d229c308e12f94bb88d8c8b8a411d19
Reviewed-on: https://go-review.googlesource.com/16636
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-11-05 15:43:03 +00:00
Burcu Dogan
c6f2181dba cmd/gomobile: don't override the build tags
Fixes golang/go#13082.

Change-Id: I0956efb1045cc04dcda5034e2ff6e3089be192e0
Reviewed-on: https://go-review.googlesource.com/16433
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-10-28 20:22:40 +00:00
Burcu Dogan
5785cf5e17 cmd/gomobile: remove the unused Debug configuration
Change-Id: Ic55a3dd91d2b3baccf22de532d98a3d29f799df9
Reviewed-on: https://go-review.googlesource.com/16414
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-10-28 17:00:43 +00:00
Daniel Skinner
38a56c4998 cmd/gomobile: support manifest theme with new reference type
Style identifiers for included themes were selected based on
api level <= 9.

Fixes golang/go#13018

Change-Id: I6be19a90b65ad5cbd78ff73fe2d9a71b8e3908ca
Reviewed-on: https://go-review.googlesource.com/16159
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-10-22 15:26:47 +00:00
Daniel Skinner
103b3cfae8 cmd/gomobile: support manifest screenOrientation
Testing BinaryXML for the change was non-trivial as the first 4 bytes
of gomobile output did not match the latest version of aapt's output.
A new approach to testing compatibility was added based on how the
aapt tool pretty prints xmltree of manifest's contents.

Fixes golang/go#10943

Change-Id: I5c60af10931d9693dbeaff66f23a69042a78e8fa
Reviewed-on: https://go-review.googlesource.com/16150
Reviewed-by: David Crawshaw <crawshaw@golang.org>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-10-21 22:56:52 +00:00
Burcu Dogan
f1034a4131 cmd/gomobile: use the proper prefix when generating a bundle
Fixes golang/go#12960.

Change-Id: I97abdc3219e857a83908a360aa619089086795ac
Reviewed-on: https://go-review.googlesource.com/16026
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-10-19 16:14:39 +00:00
David Crawshaw
0303da803c cmd/gomobile: fix test for buildmode=c-shared
Added recently, but I forgot to update the test.

Fixes golang/go#12983

Change-Id: I668b20d74c6b91d9588e6f252939d36ae780bd77
Reviewed-on: https://go-review.googlesource.com/16052
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-10-19 14:40:54 +00:00
David Crawshaw
82d11f2f29 cmd/gomobile: build android stdlib as PIC
Fixes golang/go#12581

Change-Id: I9e462b76037f0f89f1d3e59b9aef899d21de925a
Reviewed-on: https://go-review.googlesource.com/15803
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-10-13 19:59:19 +00:00
Burcu Dogan
c58aba718c cmd/gomobile: title case framework bundles
Traditionally, framework bundles have title case names such as
CoreFoundation.framework and UIKIt.framework.

gomobile bind should generate framework bundles named similarly,
following this convention.

Change-Id: Ia6082ed351ddc6fc97e0435e24e5f79c5afbaea4
Reviewed-on: https://go-review.googlesource.com/15330
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-10-02 04:47:58 +00:00
David Crawshaw
560c1bec66 cmd/gomobile: print stderr on xcrun failure
The stderr includes a helpful note from Xcode about how to fix it.

Fixes golang/go#12515

Change-Id: I4eb944f29a7a3e39e2f4150c27a53e04d02e5d09
Reviewed-on: https://go-review.googlesource.com/15300
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-10-01 18:48:56 +00:00
Hyang-Ah (Hana) Kim
c3c5f8745b cmd/gomobile: fix minSdkVersion formatting for bind.
The fix for golang/go#12661 was incorrect.

Fixes golang/go#12809.

Change-Id: Ic2cfedcc99ced0241a5756fb36f6f9ae5a6b7287
Reviewed-on: https://go-review.googlesource.com/15270
Reviewed-by: Burcu Dogan <jbd@google.com>
2015-10-01 16:59:24 +00:00
Hyang-Ah (Hana) Kim
2cd6a4d2c6 cmd/gomobile: specify minSdkVersion for .aar file.
Fixes golang/go#12661.

Change-Id: I9f37159cd8090454bf2dd59126bece6647b9f3b8
Reviewed-on: https://go-review.googlesource.com/14883
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-09-30 19:08:35 +00:00
Burcu Dogan
8cf29b651f cmd/gomobile: add modulemaps to framework bundles for simpler imports
Modulemaps allow users to use the import directives without
providing the specific header file but by using a module name
in Objective-C and Swift.

  gomobile bind -target=ios golang.org/x/mobile/example/bind/hello

Add the generated framework to an Xcode project. You will be able
to import the library header and use the library by importing hello
in Swift.

  import hello
  // ...
  hello.GoHelloGreetings("burcu");

In Objective-C, you will be able to import with the module name
similarly by using the import directive below.

  #import hello

This CL also enables Go bindings to be used from Swift without an
Objective-C bridging header.

Fixes golang/go#12422

Change-Id: I7c60349caad100861d0b642ddfa873d7ada47598
Reviewed-on: https://go-review.googlesource.com/15044
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-09-28 16:36:07 +00:00
Burcu Dogan
ae2f847064 cmd/gomobile: skip the hidden asset files
gomobile builds apps with hidden files from the assets directory.
The final applications should skip files like .DS_Store, .gitignore,
etc. Therefore, walker needs to skip the hidden files.

Change-Id: Ibbf7010d525cc831a009f3680f84063f40ac570f
Reviewed-on: https://go-review.googlesource.com/14825
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-09-23 17:04:59 +00:00
Burcu Dogan
18875a7b5b cmd/gomobile: follow the symlink if assets is a symlink
Fixes golang/go#12713.

Change-Id: Ie63a48b2ab3f39d6481fab702e00c762587501b2
Reviewed-on: https://go-review.googlesource.com/14824
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-09-23 17:04:24 +00:00
Hyang-Ah (Hana) Kim
24e7a6212f cmd/gomobile: use ARC when compiling generated objective-c files.
Gobind -lang=objc generates code that assume use of ARC.
Set -fobjc-arc to explicitly enable ARC.

Change-Id: Ib0ec7b19773c112c01ed23cb00f1ec9d64946e6b
Reviewed-on: https://go-review.googlesource.com/14544
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-09-14 20:55:34 +00:00
Hyang-Ah (Hana) Kim
ffd5bae668 cmd/gomobile: add a dummy Info.plist for happy manual codesign.
Fixes golang/go#12604.

Change-Id: I94e94c32ce42022b58097c349fcbb90edb0a2f13
Reviewed-on: https://go-review.googlesource.com/14543
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-09-14 20:44:35 +00:00
David Crawshaw
1f77c34859 cmd/gomobile: copy libopenal.so explicitly
Fixes golang/go#12550.

Change-Id: I744729cfd702f0e044eac22858ee746096977665
Reviewed-on: https://go-review.googlesource.com/14474
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-09-11 14:46:26 +00:00
David Crawshaw
471eeebd99 cmd/gomobile: always display stdout from abd
Fixes golang/go#12418

Change-Id: Ie0f2e669b3e516787b548c69a624e9063cd7f68f
Reviewed-on: https://go-review.googlesource.com/14160
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-09-02 14:17:25 +00:00
Hyang-Ah (Hana) Kim
4a6caa5fd7 cmd/gomobile: bind allows custom package path/prefix.
New option -javapkg for -target=android, and -prefix for -target=ios.
Fixes golang/go#9660.

Change-Id: I9143f30672672527876524b38f450629452a3161
Reviewed-on: https://go-review.googlesource.com/14023
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-09-01 19:17:05 +00:00
David Crawshaw
0c8c4ad3bc cmd/gomobile: revert dex change made in 54c0a36
There is no change to GoNativeActivity.java in cl/14039, so there
should be no change to the generated dex file. Confirmed with go
generate in a clean client.

Change-Id: I37ad615716d6ab6cd6e492b2145e1a71228f79ae
Reviewed-on: https://go-review.googlesource.com/14078
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-08-31 13:19:12 +00:00
Burcu Dogan
54c0a36309 cmd/gomobile: *.aar and *.framework files are libraries
It seems like shared library terminology has left as a legacy
from the days bind command only supported Android and bind was
generating shared libraries as an output.

Additionally, rewording the mention of apks and apps.
These libraries aren't generated for apk or apps but Android IDE
or Xcode projects.

Change-Id: I46dd56ddccde2d2526fa9b69f700c48c5dd474db
Reviewed-on: https://go-review.googlesource.com/14039
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-08-31 05:15:54 +00:00
Burcu Dogan
1b518ad9d6 cmd/gomobile: capitalize the app name on android
Fixes golang/go#12376.

Change-Id: Ibc48d309a6f15953939550c271033d889721553c
Reviewed-on: https://go-review.googlesource.com/13982
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-08-28 15:23:09 +00:00
Hyang-Ah (Hana) Kim
c384607ef3 bind: support for custom java package name and objective-c prefix.
Introduce options -javapkg and -prefix for gobind command.

The following generates java class Testpkg with package name com.example.

gobind -lang=java -javapkg=com.example testpkg

The following generates objective-c files where function and type names
are prefixed with ExampleTestpkg.

gobind -lang=objc -prefix=Example testpkg

As discussed in golang/go#9660 and golang/go#12245.

Gomobile support is not yet implemented.

Change-Id: Ib9e39997ce915580a5a2e25643c0c28373f27ee1
Reviewed-on: https://go-review.googlesource.com/13969
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-08-28 13:57:06 +00:00
Hana Kim
979ebcea99 cmd/gomobile: make test pass in windows.
Change-Id: I189524ddf853b9fd0c5510878cfb2cf33b973345
Reviewed-on: https://go-review.googlesource.com/13875
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-08-24 21:39:25 +00:00
David Crawshaw
8bf23706cf cmd/gomobile: only install app pkgs on darwin
Unfortunately GLES is not a common package for a linux desktop
to have installed. To avoid bind-based users having to jump
through the hoop of installing GL, disable this performance
optimization on linux for now.

Change-Id: Ic00baef6237dca360f191ec291b6c165eda7ad6e
Reviewed-on: https://go-review.googlesource.com/13874
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-08-24 21:04:37 +00:00
David Crawshaw
128f53db6d cmd/gomobile: install common dev packages
I often forget to do this. I can't be the only one.

Change-Id: Ia5dfaa6811242758f996de614f80cb42badf327b
Reviewed-on: https://go-review.googlesource.com/13742
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-08-24 16:01:42 +00:00
Hyang-Ah Hana Kim
f9f0ffafe3 cmd/gomobile: reset readonly bits of downloaded files in Windows
os.Rename in init fails in Windows for various reasons. One of them
is the temporary files extracted from NDK, OpenAL archives. For
some reason, some of them have read-only properties.
(golang/go#12212)

> gomobile init
gomobile: rename
 C:\Users\foo\pkg\gomobile\work-427911983\openal\include\AL
 C:\Users\foo\pkg\gomobile\android-ndk-r10e\arm\sysroot\usr\include\AL:
 Access is denied.

We reset the read-only bits of all the extracted files.

Change-Id: Ib958cbedf1b7527ecb5b9318f23fe9437dc7c241
Reviewed-on: https://go-review.googlesource.com/12970
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-08-24 13:08:21 +00:00
Tim Cooijmans
78ac81ee2f cmd/gomobile: Fix issue in init when downloading full NDK.
Fixes an issue where the full NDK could not be downloaded due to a missing execute permission.

Fixes golang/go#12208

Change-Id: I6f432b5021b082693a02a293f50caf6da4d4e379
Reviewed-on: https://go-review.googlesource.com/13669
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-08-19 19:55:24 +00:00
David Crawshaw
377063dfa4 app: plumbing for physical android key events
This is only the first half of physical key event mapping. The
modifiers and hardware key codes will be in a followup CL. I'm
splitting this out because it covers two other parts of the problem:
first is maintaining a JNIEnv pointer for the main routine, the
second is access to the Android unicode key map. The NDK does not have
a method to give us the key mapping, so we get to it via
GoNativeActivity.

Tested with a USB keyboard. I'll attempt an abd-based unit test later,
but I suspect it will be difficult to set a device ID.

Change-Id: Ie93700d1f2a5d382a9b17cdd668cb4acaa6e4bcc
Reviewed-on: https://go-review.googlesource.com/13649
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-08-18 13:10:55 +00:00
David Crawshaw
df7e121d2f cmd/gomobile: cleanup and link to wiki docs
Change-Id: Iaaa5208c663f8d1ff8acf1a632b5fe05976d86a4
Reviewed-on: https://go-review.googlesource.com/13610
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-08-12 16:21:55 +00:00
Hyang-Ah (Hana) Kim
73792b1db2 bind: update doc to include objective-C interface type support.
Also mention the current limitation in byte slice binding.
golang/go#12113.

Change-Id: Ie75780c2d203431ca26a188dfdb8f000f6805c18
Reviewed-on: https://go-review.googlesource.com/13531
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-08-11 16:37:26 +00:00
Hyang-Ah (Hana) Kim
2a7a6f0949 cmd/gomobile: use the app names as bundle id in ios.
This fixes the bug - all apps built with gomobile build had the same
bundle id (org.golang.todo.main).

As part of this fix, rfc1034Label function is used to sanitize the app
name (in a similar way of 'rfc1034identifier' formatter). We use this
for Android app package name as well.

Change-Id: Iae1985614a55771bf1849fe66180c4ac736497d7
Reviewed-on: https://go-review.googlesource.com/13041
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-08-11 14:39:38 +00:00
David Crawshaw
a1723d5d95 cmd/gomobile: add SHA256 hashes for downloads
Change-Id: I063870b65be136f95d44c5c00c3be89015717c08
Reviewed-on: https://go-review.googlesource.com/13443
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-08-10 17:06:08 +00:00
David Crawshaw
fa69a4e270 cmd/gomobile: better AndroidManifest errors
Before:
	gomobile: EOF
After:
	gomobile: error parsing /Users/crawshaw/src/golang.org/x/mobile/example/basic/AndroidManifest.xml: EOF

Change-Id: I5e890e3ede5eef04c0a9f26a894bf450da19b3d9
Reviewed-on: https://go-review.googlesource.com/13442
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-08-10 12:29:32 +00:00
Hyang-Ah Hana Kim
18a718a447 cmd/gomobile: fix init test (linux)
Change-Id: I069991176c91e73255a3c92c19bb9f5eff94d681
Reviewed-on: https://go-review.googlesource.com/12980
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-07-31 14:47:41 +00:00
David Crawshaw
dbb9fceceb cmd/gomobile: update docs, remove iOS warning
This is not to say that iOS support in the gomobile tool is "ready",
but it is working well enough to qualify as the same level of
experimental as the rest of the tool.

Change-Id: I7aab7a5072b23f051501bbb6bbecdb9c449296a5
Reviewed-on: https://go-review.googlesource.com/12892
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-07-30 14:59:13 +00:00
David Crawshaw
b780379135 bind: vendor x/tools/go/loader
This breaks our dependency on the x/tools repository, which has a
tendency to change in unexpected ways. It also means we can use the
version of go/types that ships with Go 1.5.

Along the way, it appears that cgo processing has changed slightly.
The old check for cgo files apparently wasn't working, so I removed
it.

Change-Id: I14378e9df9cd65c5ab61b47728ba0d56f31cdf76
Reviewed-on: https://go-review.googlesource.com/12680
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-07-28 18:02:47 +00:00
David Crawshaw
23401e249d cmd/gomobile: skip test if keytool is bad
Looks like the binary is present on OS X even when Java is not
installed, and it returns an error when called.

Change-Id: Icbd42637f718a4fc05e65ea3973a584d1f24850e
Reviewed-on: https://go-review.googlesource.com/12743
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-07-28 16:36:02 +00:00
Hyang-Ah (Hana) Kim
af3e09ede0 cmd/gomobile: add -work flag.
In order to make the artifacts of go build command preserved under WORK
directory, this change modifies TMPDIR (TEMP/TMP for windows)
environment variables to point to gomobile's tmpdir if -work flag is set.

> gomobile init -work
WORK=/gopath/pkg/gomobile/work-276689736

> ls /gopath/pkg/gomobile/work-276689736
README			go-build823903592	openal
android-ndk-r10e	go-build858075903
go-build365743399	go-build921886344

> gomobile build -work golang.org/x/mobile/example/basic
WORK=/tmp/gomobile-work-863381843

> ls /tmp/gomobile-work-863381843
go-build102034516	libbasic.so

> gomobile bind -work github.com/hyangah/ivy
WORK=/tmp/gomobile-work-355100962

> ls /tmp/gomobile-work-355100962
android			go-build284034365	javac-output
androidlib		go_ivy

Change-Id: I2f467e0063bc1c8b8c636a8cd6d100e86a99a91a
Reviewed-on: https://go-review.googlesource.com/12720
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-07-28 13:37:12 +00:00