This will help us catch cases wherein we inadvertently create a circular dependency between component libraries. Right now it only checks inheritance and typedefs, but this can be expanded in the future.
Also, sorts the module initialization by dependency topology. This isn't very important right now, but having this guarantee might help when refactoring module initialization in the future.
Typedefs are evidently always considered "fully defined", so we need to add another condition to the database merging code to prefer the type that is marked "global" when merging two types.
The binary path we get from /proc/self/exe isn't very useful; the path to the .apk is barely more useful but it still doesn't make a whole lot of sense. It might make more sense to set it to the path of the native .so that is being loaded by NativeActivity.
- allow setting API target with --target=android-21
- always link to libpython on Android, seems to be necessary
- support aarch64 (arm64-v8 ABI) architecture
- enable building on an Android machine (tested in termux)
[skip ci]
Gets rid of properties defined as both MAKE_SEQ_PROPERTY/MAKE_MAP_PROPERTY, which are just a bad idea. Instead, adds a way for map properties to define a separate "keys" interface.
Fixes: #203
This remove support for coercing non-ReferenceCounted types that are neither default-constructible nor move-assignable, but it turns out none of the classes we really need it for matches that.
It further cuts down on the amount of code that is being generated to support coercion in cases where it makes absolutely no sense.
* handle static methods with explicit self
* fix len() and __setitem__ of mapping types
* fix inheritance of __getattr__ and __setattr__
* fix overload resolution error with nullptr_t arguments
* bool overloads now come after float/double overloads
* record whether class is final in interrogatedb
* add Dtool_EmptyTuple
* optimization for final classes: no need for downcast