Commit Graph

84 Commits

Author SHA1 Message Date
Greg 90166a4379 Bug fixes. Read availability attributes when adding interfaces and
categories. Memory leak fixes. Add "autorelease" confiruation directive.
Fix parameter types for subclass method overriding.
2019-06-06 00:22:07 -04:00
Greg 50b9387a91 Add frameworkdirs: directive to allow the user to point to directories
where Objective-C frameworks can be found. Rework the cgoFlags. Search
Objective-C protocols when looking for subclass methods to override.
2019-06-04 21:18:06 -04:00
Greg f93a893060 Bug fix in Objective-C method signature parsing. 2019-06-04 13:01:51 -04:00
Greg 773886e0f1 Complete unit tests for nswrap/types. 2019-06-04 11:27:46 -04:00
Greg a251e7382e Improve test coverage. 2019-06-04 00:14:04 -04:00
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