To continue this thread: I managed to annotate a bunch of C APIs with modulename.apinotes. This works with Xcode (to a certain degree - pointers, enums, and especially OpaquePointers are tricky). I’m now trying to build my package with SwiftPM and it doesn’t seem to recognise the apinotes file.
@Doug Gregor, would you be able to advise as to whether apinotes works with SwiftPM (on Linux) and whether it requires some extra settings that I may be unaware of? Thanks and best regards for the weekend, Geordie > Am 08.05.2017 um 00:51 schrieb Geordie Jay <geo...@gmail.com>: > > I'm having the same issue. The renames seem to work, as in they disappear > from the global scope with a fixit to rename to the new (namespaced) version > if I type in the name manually, but they don't appear as static members of > the enum type, regardless of how I call them. Would appreciate some help with > this too. > > Cheers, > Geordie > Rick Mann <rm...@latencyzero.com <mailto:rm...@latencyzero.com>> schrieb am > So. 7. Mai 2017 um 23:06: > I'm trying to use apinotes for this third-party C library (call it > "Lib.dylib"). It has an enum lgs_error_t: > > typedef enum { > lgs_error_none = 0, > lgs_error_invalid_handle = -1, > lgs_error_null = -2, > lgs_error_invalid_parameter = -3, > lgs_error_invalid_operation = -4, > lgs_error_queue_full = -5 > } lgs_error_t; > > So I wrote apinotes ("Lib.apinotes") that look like this, next to the .dylib, > and part of my Xcode iOS app target: > > Enumerators: > # lgs_error_t > > - Name: lgs_error_none > SwiftName: lgs_error_t.none > - Name: lgs_error_invalid_handle > SwiftName: lgs_error_t.invalidHandle > - Name: lgs_error_null > SwiftName: lgs_error_t.nullParameter > - Name: lgs_error_invalid_parameter > SwiftName: lgs_error_t.invalideParameter > - Name: lgs_error_invalid_operation > SwiftName: lgs_error_t.invalidOperation > - Name: lgs_error_queue_full > SwiftName: lgs_error_t.queueFull > > But this line of code fails: > > var err: lgs_error_t = .nullParameter > Type 'lgs_error_t' has no member 'nullParameter' > > Am I missing something else? > > > On May 4, 2017, at 16:55 , Douglas Gregor via swift-users > > <swift-users@swift.org <mailto:swift-users@swift.org>> wrote: > > > > > >> On May 3, 2017, at 4:10 PM, Geordie J via swift-users > >> <swift-users@swift.org <mailto:swift-users@swift.org>> wrote: > >> > >> Hi everyone, > >> > >> I’m about to start on another big project with Swift on Android and would > >> like to annotate that JNI headers as much as possible before I do: > >> specifically I’d like to make _Nonnull and CF_SWIFT_NAME annotations to > >> the headers found in a user's jni.h. > >> > >> The question is: is it possible to annotate headers this without changing > >> the original header files? Specifically I’m looking for an options that > >> allows annotations in a separate file, probably one that is read when > >> loading the package’s module.modulemap. > >> > >> I’d like to distribute the annotations in a SwiftPM package that also > >> exposes the original (hopefully annotated) headers. Up until now I’ve been > >> using Swift to override methods in code, but this isn’t as clean or > >> extensible and I fear it may have other (particularly performance) > >> implications. > >> > >> I guess the alternative would be to just maintain and distribute a > >> modified version of jni.h with the annotations, but that would be a "last > >> resort” option. > > > > > > This is the role of API notes, which you can see here: > > > > https://github.com/apple/swift/tree/master/apinotes > > <https://github.com/apple/swift/tree/master/apinotes> > > > > with some rough documentation-in-source here: > > > > > > https://github.com/apple/swift-clang/blob/stable/lib/APINotes/APINotesYAMLCompiler.cpp > > > > <https://github.com/apple/swift-clang/blob/stable/lib/APINotes/APINotesYAMLCompiler.cpp> > > > > - Doug > > > > _______________________________________________ > > swift-users mailing list > > swift-users@swift.org <mailto:swift-users@swift.org> > > https://lists.swift.org/mailman/listinfo/swift-users > > <https://lists.swift.org/mailman/listinfo/swift-users> > > > -- > Rick Mann > rm...@latencyzero.com <mailto:rm...@latencyzero.com> > >
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users