Commit Graph

79 Commits

Author SHA1 Message Date
Greg d8552bcf9d Use strict unmarshal for configuration file, to detect typos in
config directives. Do not panic on failed regexp in AST parsing,
instead return &ast.Unknown{} for further debugging. Add debutast:
directive to print context when AST nodes are not recognized.
2019-06-03 11:07:12 -04:00
Greg 4f0cdf4d1a Some AST tweaks and add astfile: config option to read AST from a file
instead of running Clang. Attempt to port to MacOS Mojave.
2019-06-01 15:10:51 -04:00
Greg a7df3a4e71 Enable -fobjc-arc for AST generation when arc=true in nswrap.yaml.
This still doesn't work
2019-05-31 16:28:51 -04:00
Greg e29ae58a9c Add experimental "arc" directive to nswrap.yaml to experiment
with enabling Objective-C automatic reference counting. Bindings
currently will not compile with this turned on.
2019-05-31 12:42:52 -04:00
Greg 5a5a4f9406 AST tweaks and new tests. 2019-05-31 10:21:04 -04:00
Greg 96edbba641 Documentation updates. 2019-05-29 22:57:10 -04:00
Greg 8ce3b6a6de Remove dependencies, improve documentation. 2019-05-29 22:36:49 -04:00
Greg 370a2eb604 Package name tweaks. 2019-05-29 13:26:22 -04:00
Greg 9230222634 Merge branch 'master' of https://git.wow.st/gmp/nswrap 2019-05-29 13:15:31 -04:00
gmp a94969338b Move main command to the main package directory. 2019-05-29 13:14:26 -04:00
gmp 7bcd25bb05 Move main command to the main package directory. 2019-05-29 13:13:04 -04:00
Greg a2d0f9bc4f Change domain name in package path. 2019-05-29 12:57:53 -04:00
Greg 749fd503dd Add README.md and LICENSE. 2019-05-29 00:03:51 -04:00
Greg 2f4d76c6af Better handling of slice size vs. capacity in pointers to pointers. 2019-05-29 00:02:27 -04:00
Greg 840a055a11 Clean up variadic functions and methods. 2019-05-28 20:04:39 -04:00
Greg 1cc0f0e26a Handle pointers to pointers as Go slices. 2019-05-28 15:52:16 -04:00
Greg 86b27e6c42 Simplify polymorphic implementation, bug fix to variadic functions. 2019-05-28 13:20:44 -04:00
Greg 154a2fac14 Disambiguate all class and instance method names. 2019-05-28 13:03:23 -04:00
Greg d086c0fdfe Intermediate commit to work on polymorphic method handling. 2019-05-27 13:47:59 -04:00
Greg 86ff14b533 A few small fixes. 2019-05-24 15:40:01 -04:00
Greg 34fbcec965 Subclasses can have new methods in addition to overriding existing
methods (first draft).
2019-05-24 12:36:01 -04:00
Greg 38c7856b89 Bug fix and start improvements to subclassing. 2019-05-24 00:12:46 -04:00
Greg a616761475 Change Go types to plain structs instead of pointers to structs.
Add methods for protocols that Objective-C interfaces claim to
implement. Separate class methods from instance methods in
internal data structures. Add layout constraints with visual
formats to examples/app. Fix typedefs for wrapped objective-c
object types.
2019-05-23 16:31:47 -04:00
Greg 4f6930002d First draft that handles subclasses and improvements to delegate
implementation.
2019-05-21 16:26:52 -04:00
Greg 8de87cddb7 Performance improvements (do not parse addresses or locations unless
location tracking is enabled). Allow profiling option. Add some
comments and clean-ups to types/*.go.
2019-05-11 23:03:56 -04:00
Greg 49fd749fe3 Use C.GoBytes() in examples/bluetooth. 2019-05-10 02:35:52 -04:00
Greg 2fe435f137 Bug fix: delete exports.go if it is not needed.
Clean up some warnings around deprecated methods and sending
the "initialize" message to NSObject.
2019-05-10 02:23:07 -04:00
Greg dcb7105fca Complete the Delegates wrapper. Disambiguate polymorphic methods.
Bluetooth example is now a functioning heart rate monitor. Additional
bug fixes in Go types (instances where *Id needs to be used instead
of NSObject).
2019-05-10 02:00:56 -04:00
Greg 0de9249e6a Update .gitignore. 2019-05-09 22:35:21 -04:00
Greg e7e2c2c7b6 Begin moving the bluetooth example to the new delegates system. 2019-05-09 22:33:06 -04:00
Greg 44b3b75e23 Complete implementation of delegates. Update app example with an
NSApplicationDelegate.
2019-05-09 22:05:04 -04:00
Greg 0d2321d516 Add autorelease helpers. 2019-05-09 13:33:28 -04:00
Greg b00ecd4ac0 Switch from toml to yaml for configuration files. Begin scaffolding
for Protocols and Delegates.
2019-05-09 12:25:45 -04:00
Greg cccbfbbc00 Autorelease all objective-C objects constructed using "alloc".
Clean up type-related comments in generated code. Do not use
pointers to Go interfaces as receivers, use pointer to Id instead.
2019-05-09 08:52:35 -04:00
Greg ea34821fe6 Add a button to examples/app. 2019-05-07 15:49:43 -04:00
Greg 1c5c61308c Add SelectorHelpers() so you can send named selectors to Objective-C. 2019-05-07 15:17:23 -04:00
Greg 8ed05fb451 Work around cgo (or Clang dwarf) bug with incorrect struct size
calculation by returning void pointers for NS object constructors.
Expand examples/app to start building menus.
2019-05-07 14:48:06 -04:00
Greg 511f2f1968 Improve type handling for enums. Handle "__kindof" qualifiers.
Add examples/app. Allow VisibilityAttr "Hidden".
2019-05-06 13:21:36 -04:00
Greg 959b87342e Return Golang bools from Objective-C functions that return BOOL.
Move nswrap command to cmd/nswrap.
2019-05-06 09:00:38 -04:00
Greg 717c7e76fe Change name of New* functions to *Alloc to mimic Objective-C's
nested alloc/init call idiom.
2019-05-04 23:32:57 -04:00
Greg eced251710 Create GoString helper methods for anything that has a "WithString"
method. Multiple bug fixes in type system, fixed parsing of id,
instancename and instancetype, allow NullableAnnotations after
generic lists (e.g. "id<ObjectType> _Nullable"). Helper function
to identify types that are function pointers.
2019-05-03 13:14:30 -04:00
Greg 8ea3d57cf0 Fix bug in examples/bluetooth/ble/ble_delegate: deleted references
to unused scanCallback property.
2019-05-02 14:22:20 -04:00
Greg c5a523a8b8 Add bluetooth example. 2019-05-02 14:17:11 -04:00
Greg 758ea40679 Add constants for C enum types. Add NSEnumerator helper. Fix
bugs in Go class names. Add "Frameworks" option to nswrap.toml.
Improve handling of ast.EnumDecl and ast.EnumConstantDecl.
2019-05-02 14:14:29 -04:00
Greg 9b71889a69 Include type qualifiers and nullability attributes in Objective-C
function return types. Add NSEnumerator to examples/foundation.
2019-05-01 13:58:20 -04:00
Greg 11366be6d0 Convert *Id to any wrapped type. Shorten names for class methods
that return an instance of the class. Fix return types for Go
interfaces.
2019-05-01 12:34:29 -04:00
Greg 57ad898945 Bug fix: Process types before converting to go function parameter
lists.
2019-05-01 11:01:50 -04:00
Greg be92b200ad Handle functions identified by regexp in nswrap.toml config
file. Handle inherited class methods.
2019-05-01 10:58:29 -04:00
Greg 380fee39bf Update foundation example to query whether the array contains
specified objects.
2019-04-30 10:34:56 -04:00
Greg e6232bdccb Fix VaArgs configuration. 2019-04-30 09:21:54 -04:00