stephencelis / SQLite.swift

A type-safe, Swift-language layer over SQLite3.
MIT License
9.7k stars 1.56k forks source link

Removing C-family sources for the iOS platform on SPM #1104

Closed aaronsky closed 2 years ago

aaronsky commented 2 years ago

Hey folks, this might be a bit of a stretch so let me explain.

When developing an iOS app using the new Swift Playgrounds App project format, one of two things can occur when using this package as a dependency. If developing inside Xcode, you will receive a warning that the C-family sources in SQLiteObjc are not supported in the Swift Playgrounds app (but will still build successfully because Xcode is capable enough at compiling Objective-C 😛). If developing within the Swift Playgrounds 4 iPad app, you will not be able to compile per the aforementioned warning. This should be true of any targets in the package graph containing C-family sources, but the only one I was cursorily able to identify was SQLiteObjc.

The workaround here is clearly to eject into an Xcode project, but I wanted to experiment more with a new development workflow and I was hoping to avoid that option. I also have no idea how trivial it is to convert the code in the SQLiteObjc target to Swift. Hopefully by raising this issue we can have a dialogue around what options there are – I'm also open to taking on PR responsibilities if a plan is drawn. Thanks!

jberkel commented 2 years ago

The C code is only needed for the tokenizer integration. It's probably not used in most cases, and it's for an older version of FTS, FTS3. Perhaps it could be deprecated/removed in a future version, or at least moved to a separate package. Converting to Swift is not possible.

felipevaladares commented 2 years ago

any news about this? i'm having the same issue as https://github.com/stephencelis/SQLite.swift/issues/1079