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

1029 Commits

Author SHA1 Message Date
Hajime Hoshi
b558ed8633 all: update go.mod
The latest x/tools includes the fix
https://go-review.googlesource.com/c/tools/+/192330 for
golang/go#33937.

Updates golang/go#33937

Change-Id: I4af068315fb16aa3d526214f89e4005d792d0c49
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/194497
Run-TryBot: Hajime Hoshi <hajimehoshi@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2019-09-10 18:44:05 +00:00
Hajime Hoshi
c6da959549 bind/java, bind/objc: do not use module for reverse binding
Reverse binding is not available with Go module, and some tests
fail due to this. This CL suppresses the errors by disabling Go
modules explicitly.

Updates golang/go#27234

Change-Id: I7483c1dab468548a2efa05ca426addf5c3d97b6e
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/192599
Run-TryBot: Hajime Hoshi <hajimehoshi@gmail.com>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-08-30 20:13:51 +00:00
Hajime Hoshi
cafc553e1a cmd/gobind: fix build-tag, CGO and load trybot failures
* Correctly format build tags to pass into go/packages
* Removes CGO_ENABLED=0 from a packages.Load configuration
* Calls go/packages.Load twice to work around a build cache
* staleness issue

These bugs were introduced by CL 189597.

Updates golang/go#27234.
Updates golang/go#33687.

Change-Id: I3ae6737bf53bbecda0c7e25885b9c6aea5779332
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/190479
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
2019-08-26 17:01:11 +00:00
Hajime Hoshi
30c70e3810 all: use GOROOT/bin/go instead of go everywhere
This is a non-test code version of CL 191517.

Using 'go' command in tests is confusing when using a different version
of Go (e.g., go1.13rc1). Use GOROOT/bin/go so that the same Go is used.

Change-Id: Id5937cfa6dd6d3164d5f774e3fc0fd15b7f613b5
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/191518
Run-TryBot: Hajime Hoshi <hajimehoshi@gmail.com>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2019-08-23 17:37:32 +00:00
Hajime Hoshi
fe31116dde all: use GOROOT/bin/go instead of go for tests
Using 'go' command in tests is confusing when using a different version
of Go (e.g., go1.13rc1). Use GOROOT/bin/go so that the same Go is used.

Change-Id: I0ca297207acc5e7fd8b291f544302f6c7b0d38e1
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/191517
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com>
2019-08-23 15:22:30 +00:00
Hajime Hoshi
e8b3e6111d internal/importers: replace go/build usages with go/packages
This CL is a pure refactoring to replace go/build usage with
golang.org/x/tools/go/packages. This is a preparation for Go
modules.

Updates golang/go#27234

Change-Id: I3e6a30b962da1a64bc43a89a7f02c03d559f86d3
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/189597
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2019-08-14 14:30:26 +00:00
Hajime Hoshi
597adff16a x/mobile: update dependencies
Change-Id: I830b0afbd9ac67a24302e56b3109a8b822e16b46
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/188837
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2019-08-06 16:23:12 +00:00
Nigel Tao
d2bd2a29d0 gl: provide dummy impl when cgo is disabled
The dummy implementation doesn't do anything (at runtime), but it does
compile (when CGO_ENABLED=0), which e.g. unbreaks some build bots.

The work_other.go file is new, faking what's in work.go.

The changes to the other (existing) files simply re-order the
GOOS-related build constraints to be in a consistent order (alphabetical
order), the same as the existing order in work.go.

Fixes golang/go#32837

Change-Id: I19a196d4307b9ebc2f770fe41e1aec717a699288
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/185017
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Nigel Tao <nigeltao@golang.org>
2019-07-19 00:42:57 +00:00
Tim Cooijmans
e47acb2ca7 bind/java: Do not get ApplicationContext via reflection, ask for it when needed.
Previously any library created using gobind used reflection to get the ApplicationContext. The methods used are disallowed in Android 9 causing any library to crash.  However the ApplictionContext is not required and only needed when using RunOnJvm. This change adds an method to set the ApplicationContext when needed, but will not get it by default by using reflection.

Fixes #31364

Change-Id: I83ce69f3b4b59d2cc4a275928f0439e5e4651ba8
GitHub-Last-Rev: b563af1d7fa8f4b3e62751ce9a78c8e2f291d232
GitHub-Pull-Request: golang/mobile#31
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/175103
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2019-07-11 16:50:09 +00:00
Junda Liu
6fa95d984e bind: keep package function comments in java file
previously package level function comments are ignored. this change
keeps the comment in generated java files

Change-Id: I86dcd93b1026c4455d2c4782cbc9f30b514b3107
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/181038
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2019-06-07 21:45:18 +00:00
Mark Villacampa
32b2708ab1 cmd/bind: add remaining Objc nullability specifiers
The `TestObjcSeqWrappers` test is failing because there are some missing nullability specifiers:

```
mobile master❯ go test -v ./bind/objc -run TestObjcSeqWrappers
=== RUN   TestObjcSeqWrappers
--- FAIL: TestObjcSeqWrappers (5.45s)
    seq_test.go:80: tmpdir = /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/bind-objc-seq-test-434219564
    seq_test.go:98: gomobile: darwin-arm: go build -tags aaa bbb ios -buildmode=c-archive -o /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/objcpkg-arm.a gobind failed: exit status 2
        # gobind
        In file included from /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/interfaces_darwin.go:5:
        In file included from /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/interfaces.h:8:
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:26:30: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:26:30: note: insert '_Nullable' if the pointer may be null
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:26:30: note: insert '_Nonnull' if the pointer should never be null
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:28:11: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:28:11: note: insert '_Nullable' if the pointer may be null
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:28:11: note: insert '_Nonnull' if the pointer should never be null
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:38:32: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:38:32: note: insert '_Nullable' if the pointer may be null
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:38:32: note: insert '_Nonnull' if the pointer should never be null
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:39:23: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:39:34: note: insert '_Nullable' if the pointer may be null
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:39:34: note: insert '_Nonnull' if the pointer should never be null
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:50:35: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:50:35: note: insert '_Nullable' if the pointer may be null
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:50:35: note: insert '_Nonnull' if the pointer should never be null
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:52:29: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:52:29: note: insert '_Nullable' if the pointer may be null
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:52:29: note: insert '_Nonnull' if the pointer should never be null
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:52:70: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:52:70: note: insert '_Nullable' if the pointer may be null
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:52:70: note: insert '_Nonnull' if the pointer should never be null
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:58:52: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:58:52: note: insert '_Nullable' if the pointer may be null
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:58:52: note: insert '_Nonnull' if the pointer should never be null
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:58:26: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:58:26: note: insert '_Nullable' if the pointer may be null
        /var/folders/cm/184j3xgn311dhh1tpm6cbmyr0000gn/T/gomobile-work-254743475/src/gobind/Objcpkg.objc.h:58:26: note: insert '_Nonnull' if the pointer should never be null

    seq_test.go:99: failed to run gomobile bind: exit status 1
FAIL
FAIL	golang.org/x/mobile/bind/objc	5.454s
```

I've decided to set them as `_Nullable`. Even if the implementation seems to raise an exception in case the object is `NULL` in all the cases I've checked, .e.g.:

```objc
- (NSDate * _Nullable)getSelf {
	int32_t refnum = go_seq_go_to_refnum(self._ref);
	int32_t _self = go_seq_to_refnum(self);
	int32_t r0 = proxyobjcpkg_GoNSDate_GetSelf(refnum, _self);
	NSDate* _ret0_ = nil;
	GoSeqRef* _ret0__ref = go_seq_from_refnum(r0);
	if (_ret0__ref != NULL) {
		_ret0_ = _ret0__ref.obj;
		if (_ret0_ == nil) {
			LOG_FATAL(@"unexpected NULL reference");
		}
	}
	return _ret0_;
}
```

Because there are cases where we are overriding a method in the superclass that might have different nullability specifiers, .e.g.: 6621de06e1/bind/testdata/testpkg/objcpkg/classes.go (L65)

And I haven't found an easy way to detect those.

Change-Id: I6386e48b1042a234f981fc7c351f54354ebb6cc9
GitHub-Last-Rev: 1cddbaaf785f9daeb1d210e1b6fe17b8ae860698
GitHub-Pull-Request: golang/mobile#32
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/176137
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2019-05-09 16:48:39 +00:00
Chotepud Teo
ab05907dce cmd/gomobile: add arg to set android api level
Fixes golang/go#31905

Change-Id: Icee0ece2e78028fa4afd8b273b86e4eed404d99a
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/176077
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2019-05-09 16:47:12 +00:00
Hana Kim
12c8d8ccab cmd/gomobile: update doc
Ran `gomobile help documentation doc.go`

Change-Id: Ie7f89349520393e63a8d72495d69c299e3218876
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/176157
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-05-09 15:01:47 +00:00
Daniel Lublin
3e0bab5405 cmd/gomobile: fall back to $ANDROID_NDK_HOME for the NDK path
After trying $ANDROID_HOME/ndk-bundle, we also try $ANDROID_NDK_HOME.

ANDROID_NDK_HOME is advised in this NDK sample code wiki:
https://github.com/googlesamples/android-ndk/wiki
Mentioned in the Bazel buildsystem Android app tutorial:
https://docs.bazel.build/versions/master/tutorial/android-app.html

On Ubuntu, the google-android-ndk-installer leaves the NDK in
/usr/lib/android-ndk, and it seems to be up to the user to set
ANDROID_NDK_HOME.

On Arch Linux, the android-ndk package installs the NDK into /opt/android-ndk
and sets ANDROID_NDK_HOME to there using an /etc/profile.d/file

Fixes golang/go#31461

Change-Id: I9f7f7e24b19e0047419f9725b67bd6daf2b1d328
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/171938
Run-TryBot: Elias Naur <mail@eliasnaur.com>
Reviewed-by: Elias Naur <mail@eliasnaur.com>
2019-04-15 19:13:53 +00:00
Juan Pablo Civile
28c689b77b bind: annotate all remaining ObjC types for nullability
From Xcode 10.2 onwards, these annotations are required in all interface
declarations. The behaviour can be disabled, but since we were already
annotated most types it made sense to just annotate the rest.

Change-Id: Iacd09a2fea4dfb3e22fec97cf4ca22966fc783bf
GitHub-Last-Rev: a431572a83ea8b29f55813bcdafc9a00f8d15972
GitHub-Pull-Request: golang/mobile#29
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/171957
Reviewed-by: Elias Naur <mail@eliasnaur.com>
2019-04-12 20:20:09 +00:00
Elias Naur
167ebed0ec cmd/gomobile: require NDK r19c and delete workaround for NDK r19b
The prebuilt toolchains introduced in NDK r19b didn't work on Windows.
NDK r19c contains a fix, so remove our workaround and check for r19c
on Windows.

Change-Id: I3bcfedbc156f10c3cab8e74dcbd7de68575669e7
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/168067
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-27 16:31:28 +00:00
Elias Naur
9487ef54b9 cmd/gomobile: enable bitcode
Add -fembed-bitcode to the host compiler and linker to instruct it
to add bitcode to object files.

Updates golang/go#22395

Change-Id: Ie0297079f27c9b5b8ea55e0a36067dc768342986
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/168062
Run-TryBot: Elias Naur <mail@eliasnaur.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-03-19 15:52:45 +00:00
Elias Naur
6bd122906c bind,bind/testdata: skip conflicting Java constructors
Our Java proxy class defines a constructor which takes a single int
that is the reference number of the Go peer. However, in Go, constructors
of the form NewT(i int32) *T generate the same signature as the internal
constructor.

The longer fix is to avoid using a constructor for initializing
proxies. This CL simply skips clashing Go constructors.

Reported in https://groups.google.com/forum/#!topic/golang-nuts/EKC_gEjaQH4

Change-Id: I1153f71d8b5a757c499b3ce6e18e2ea5d22dc9e5
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/167660
Run-TryBot: Elias Naur <mail@eliasnaur.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2019-03-18 16:40:15 +00:00
Elias Naur
cde3d952bc cmd/gomobile: explicitly disable modules
Gomobile doesn't support modules.

Updates golang/go#27234

Change-Id: I426db1600eafd4a9ddc7eb239f5f264756f1ba35
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/167659
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-03-16 15:04:07 +00:00
Elias Naur
f2ef6f42b7 bind/java: deflake testJavaRefKeep
Retry a few times to ensure the garbage collector collects what
we expect. Also merge and remove testJavaRefGC which was identical
except for one line.

Updates golang/go#30785

Change-Id: Id6c541b41fe483633c40eeea712c1f43b647e4f4
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/167657
Run-TryBot: Elias Naur <mail@eliasnaur.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-14 16:44:39 +00:00
Bryan C. Mills
a4d62f3683 all: add go.mod
Commands run:
	go mod init
	go mod edit -go=1.11
	go mod tidy
	go list -m all
	go test ./...

Updates golang/go#30228
Updates golang/go#27234

Change-Id: Ibf3b104bfaa037e1a94a5327b5a56983d9744e73
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/167180
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-03-13 03:55:08 +00:00
Bryan C. Mills
f0d57f48df all: set GO111MODULE=off explicitly in bind tests
Updates golang/go#27234
Updates golang/go#30228

Change-Id: Ibe281480398ff9d8c27657f399159885a75f646e
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/167179
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-13 03:07:56 +00:00
Elias Naur
d3739f865f cmd/gobind: fix tests on the linux-amd64-longtest builder
The builder doesn't have javap nor the Android fonts installed.

Change-Id: Ia3965be967482aa76b0c8c83b951deb30ebe5645
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/167057
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2019-03-12 15:16:09 +00:00
Elias Naur
d2e1c1c4a6 cmd/gomobile: improve NDK version detection
Look for the compiler directly, not just the existence of the
directory containing.

Fixes golang/go#30637

Change-Id: Iae4429406da8622e7085bf3701c0f84d5c95d2fd
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/165937
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2019-03-07 20:28:46 +00:00
Elias Naur
874a4fb9cd app,exp,gl: fix build
Ignore deprecation warning for OpenGL and replace deprecated enum
names.

Change-Id: Ie07c566f1b28610add074dc4da8ab66399cef94b
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/165578
Run-TryBot: Elias Naur <mail@eliasnaur.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-06 14:40:52 +00:00
Elias Naur
56dec8b502 cmd/gomobile: fix tests on builders
The naïve string matching of GOROOT fails on the builders where
GOROOT is a string prefix og GOPATH.

We're not manipulating GOROOT in the tools anymore so do the easiest
thing and delete GOROOT matching.

Change-Id: I194883b9c25f38e2bfdd3eb0ccc9fade76f45549
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/165579
Run-TryBot: Elias Naur <mail@eliasnaur.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-06 14:38:14 +00:00
Elias Naur
9ce7b04580 cmd/gomobile: fix tests
Change-Id: Ifb7f27faa274b5935896395e74ecbb29156b2253
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/165577
Run-TryBot: Elias Naur <mail@eliasnaur.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-06 00:21:39 +00:00
Juan Pablo Civile
b826ec11c3 bind: annotate ObjC types with nullability annotations
This highly improves interop with Swift. It would map all
pointers as implicitly unwrapped optionals, which skip all
null safety checks. Adding `_Nullable` to pointer types
makes swift map them as optionals.

Also constructors are now nullable since it's valid to return nil from
Go code.

Change-Id: If0506bb80f31bf36f11522c16a1e66d77be935f8
GitHub-Last-Rev: bd6c30f7f50ef5ea5797b07073f0a4a70d545025
GitHub-Pull-Request: golang/mobile#26
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/159477
Run-TryBot: Elias Naur <mail@eliasnaur.com>
Reviewed-by: Elias Naur <mail@eliasnaur.com>
2019-03-05 23:50:31 +00:00
Elias Naur
b8c6dab863 all: skip or fix tests for GOOS=android
Some x/mobile tests are designed to run from a host with a device
or emulator attached. Some fail if they run directly from a device,
which is the case when GOOS=android.

Fix the tests by skipping them or adjusting them to work on GOOS=android.

Remove gomobile environment naïve variable expansion for $HOME; on
Android devices HOME=/ so every path separator is replaced with
$HOME.

Fixes golang/go#30482

Change-Id: I553e708226922f6284163f0b7d7b1011a9502e34
Reviewed-on: https://go-review.googlesource.com/c/164799
Run-TryBot: Elias Naur <mail@eliasnaur.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-02 06:36:18 +00:00
Elias Naur
3ac37b7f94 cmd/gomobile: bump default iOS minimum version to 7.0
Recent Xcode versions are unable to build C++ files if the minimum
iOS version is below 7.0. Bump the default version to 7.0; it is
ancient and users can override it with -iosversion.

Fixes golang/go#29969

Change-Id: I4e35e021e0fa10c1681df1073efa73700c3aae69
Reviewed-on: https://go-review.googlesource.com/c/164800
Run-TryBot: Elias Naur <mail@eliasnaur.com>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2019-03-01 22:35:04 +00:00
Elias Naur
246a99880f cmd/gomobile: work around broken Windows NDK compiler scripts
Fixes golang/go#30415

Change-Id: I6cda312f465e05d28601432845c3c3d0f7a85605
Reviewed-on: https://go-review.googlesource.com/c/164177
Run-TryBot: Elias Naur <mail@eliasnaur.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-01 19:41:37 +00:00
Elias Naur
e6099be231 cmd/gomobile: add generated package names to proguard.txt
No test as I couldn't figure out how to persuade gradle test to
strip classes.

Fixes golang/go#30251

Change-Id: I7dca9169a4a8eb31b981ad49047a6bdfa6f6efd7
Reviewed-on: https://go-review.googlesource.com/c/164798
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-01 16:18:23 +00:00
Elias Naur
2c6ea15e35 cmd/gobind,cmd/gomobile: don't go install binaries
Use a temporary location for the gobind and gomobile binaries
during tests.

This avoids depending on the go install path being in PATH and avoids
overwriting any existing gobind or gomobile binary the user have installed.

For the android x/mobile builder.

Change-Id: I98a6767fcff642a7143efc3eeb2cb3aa1f1719cc
Reviewed-on: https://go-review.googlesource.com/c/164797
Run-TryBot: Elias Naur <mail@eliasnaur.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-01 16:17:44 +00:00
Elias Naur
ca80213619 cmd/gomobile: use the NDK r19b prebuilt toolchains
To use the NDK before version r19b standalone toolchains had to be
generated. Version r19b added prebuilt standalone toolchains.

Use the prebuilt for gomobile build and gomobile bind and
stop generating toolchains during gomobile init.

gomobile init is now only necessary for building OpenAL for
gomobile build programs.

This change is not compatible with NDK versions < r19b, but the
user is instructed how to upgrade when running gomobile build or
gomobile bind.

Change-Id: I96953298ecce42402459a9dd15169c09fe6b6f8b
Reviewed-on: https://go-review.googlesource.com/c/163378
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2019-02-22 14:21:12 +00:00
Elias Naur
8b05ea26b5 bind/testdata: support JDK 8 for the reverse binding golden tests
The Character.Subset Java class changed between JDK 8 and JDK 11
which is the default JDK on my system. To avoid the golden tests
depend on the JDK version, drop the reference to the Character.Subset
class.
The inner class case is covered by the bind/java runtime tests.

For the upcoming Android container builders.

Change-Id: I05897ff7de7970633176207305099153de2f208c
Reviewed-on: https://go-review.googlesource.com/c/163377
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2019-02-22 13:51:28 +00:00
Steeve Morin
a421117049 bind: always include ref.h in generated ObjC headers
Current generated headers work because they require `ref.h` to be loaded beforehand by the bridging header. However, in some cases where the bridging header is generated by another tool (such as Bazel), the order can't be guaranteed.

Fix that by explicitly importing `ref.h` in the headers that need it.

Change-Id: I444453a0ebdf53e14ba1b5290f7cc7084eaf2c07
GitHub-Last-Rev: e1e1e915bf0428d871cb1a268c8456cf7051d383
GitHub-Pull-Request: golang/mobile#28
Reviewed-on: https://go-review.googlesource.com/c/159758
Reviewed-by: Elias Naur <mail@eliasnaur.com>
2019-01-27 14:38:45 +00:00
Federico Bond
feefccb6c1 bind: ignore type aliases to basic types
Fixes golang/go#29559

Change-Id: Iffaac239e5c9a9e53f4e292b4d9bf669d5084e1f
GitHub-Last-Rev: c5d4a4823d2bf60fa7bff09ab7bbdc9235c49d67
GitHub-Pull-Request: golang/mobile#25
Reviewed-on: https://go-review.googlesource.com/c/159417
Reviewed-by: Elias Naur <mail@eliasnaur.com>
2019-01-25 20:10:28 +00:00
Elias Naur
07b47c2b9c internal/importers/objc: fix parsing of newer clang output
Two things broke the clang ast dump parser:

- clang -cc1 didn't parse headers in iPhone mode automatically anymore.
  Add the -triple argument to force it.
- Source positions in the dumps can now contain <scratch space>.

Change-Id: I5d561f781355021f60c94d59e20bf1c1eee76d2a
Reviewed-on: https://go-review.googlesource.com/c/159678
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2019-01-25 20:03:37 +00:00
Elias Naur
58b5a00d9a bind: fix tests for the always enabled go cache
The go tool requires either HOME or GOCACHE set, but tests invoking
go install only passed GOPATH. Pass the inherited environment as well.

While here, update the reverse generated java.go.golden file with
additions from the latest Android SDK.

Change-Id: I3567dcc30e588b20266e9ba01d17a0ee547919bc
Reviewed-on: https://go-review.googlesource.com/c/159677
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2019-01-25 17:36:33 +00:00
Juan Pablo Civile
9f4912738d bind: use property syntax for ObjC
The current header generation uses old style Objective C
getters/setters. This causes Swift to incorrectly bridge properties as
methods. Using @property lets you write goObj.str = "value" (vs
goObj.setStr("value")).

Change-Id: I99d63743623734414edd50343dbdded52bdf2bf5
GitHub-Last-Rev: fb0ad7ec50d25ae5aa75ed729b04b95b99672f04
GitHub-Pull-Request: golang/mobile#27
Reviewed-on: https://go-review.googlesource.com/c/159618
Reviewed-by: Elias Naur <mail@eliasnaur.com>
2019-01-25 17:33:52 +00:00
Elias Naur
dc07713565 cmd/gomobile: require -bundleid set for -target=ios
The default, org.golang.todo, is not available outside Google
and the resulting error is confusing.

Fixes golang/go#26615

Change-Id: I417a2f83bc3755628f1f3541a061c9272eb318c0
Reviewed-on: https://go-review.googlesource.com/c/156498
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-01-07 16:22:57 +00:00
Elias Naur
9a2b4796a4 cmd/gomobile: bump required Go version to 1.10
Go 1.9 is probably enough, but I'm not willing to support it.

Fixes golang/go#29486

Change-Id: I6dac22dbbd527d6668c5951d9060617efb758b96
Reviewed-on: https://go-review.googlesource.com/c/156137
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-01-03 14:45:51 +00:00
Tobias Klauser
ca3c58166e all: use "reports whether" in godoc comments
Go documentation style for boolean funcs is to say:

    // Foo reports whether ...
    func Foo() bool

rather than "returns true if" or "returns whether".

Change-Id: I5d01c45a8867b47462ed142a49ad51bf0a319ce1
Reviewed-on: https://go-review.googlesource.com/c/151957
Reviewed-by: Elias Naur <elias.naur@gmail.com>
2018-11-30 13:31:20 +00:00
Tadas V
a27dd33d35 cmd/gomobile: use the correct case for the generated Universe.objc.h file
Fixes golang/go#28335

Change-Id: Ia6ef4a5e9c426d810770459632ab276eea9cab8f
GitHub-Last-Rev: 47d9c16539e6fd0e154d45e39248240650877356
GitHub-Pull-Request: golang/mobile#24
Reviewed-on: https://go-review.googlesource.com/c/144117
Reviewed-by: Elias Naur <elias.naur@gmail.com>
2018-10-26 06:21:14 +00:00
Elias Naur
92f3b9caf7 misc,example/bind/hello: remove the Gradle plugin
And replace the plugin with instructions for rebuilding the .aar files
for the bind and ivy examples.

While here, fix a compile error in the Ivy example caused by gomobile
no longer prepending org.golang. to its generated Java packages by
default.

Fixes golang/go#25314
Fixes golang/go#28098
Fixes golang/go#25184

Change-Id: Iaccdd50850a185414ebcf21427cfd7f625c6a298
Reviewed-on: https://go-review.googlesource.com/c/141057
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2018-10-10 16:34:05 +00:00
Elias Naur
920b52be60 cmd/gomobile: bump minimum sdk version and update gradle for NDK 18
NDK 18 drops support for API levels below 16. Bump it to 16.

NDK 18 also needs a newer version of the Android gradle plugin.
Update the bind example and test build.gradle files.

Change-Id: I71499c88b48c43b2d4da50e415cb0b0dcbbbed75
Reviewed-on: https://go-review.googlesource.com/136775
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2018-09-22 16:38:55 +00:00
Tadas
f9c332960c bind: add support for Objective-C unsigned char to reverse bindings
Fixes golang/go#27723

Change-Id: I706f784736aea87e095a1dafdf9acf2b4590846c
GitHub-Last-Rev: 5e416702eb04dab5890487f3ee2a1581f394d8fd
GitHub-Pull-Request: golang/mobile#23
Reviewed-on: https://go-review.googlesource.com/135875
Reviewed-by: Elias Naur <elias.naur@gmail.com>
2018-09-18 11:09:15 +00:00
Elias Naur
756a47a9b9 bind: fix generated JNI name for Go packages with underscores
Fixes golang/go#27669

Change-Id: Id4071e14fe2a35b2b54801af9d0161f08f3e9e9c
Reviewed-on: https://go-review.googlesource.com/135755
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2018-09-17 20:17:38 +00:00
Tadas
3409effab8 bind: pass correct arguments to fromSlice and toSlice
Fixes golang/go#27705

Change-Id: I6d26b02b49a9904a4d949e5ca5a9d234f6092ea4
GitHub-Last-Rev: 9b9314fed184247f69a5f7e567f502b22aa5b135
GitHub-Pull-Request: golang/mobile#22
Reviewed-on: https://go-review.googlesource.com/135423
Reviewed-by: Elias Naur <elias.naur@gmail.com>
2018-09-17 19:10:04 +00:00
Tadas
18ac050e90 cmd/gomobile: make the minimum iOS sdk version configurable
Fixes #27680

Change-Id: I8af5c120aaa2ddbf03fc8832b60c293aca77b1e6
GitHub-Last-Rev: 22f5d033fc29b94b4fea8c4b77f4cdcd2f66226c
GitHub-Pull-Request: golang/mobile#21
Reviewed-on: https://go-review.googlesource.com/135415
Reviewed-by: Elias Naur <elias.naur@gmail.com>
2018-09-15 07:57:13 +00:00