Use autolinking on Apple platforms to prevent the need to link with sqlite3 explicitly #120
+83
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
On Apple platforms an explicit linking configuration is usually not required, because
clang
andswiftc
compilers embed linker commands into.o
files they produce. These linker commands can be printed out viaotool -l /path/to/object | grep -A 4 LC_LINKER_OPTION
.This MR uses this technique to remove the requirement to explicitly link with
-lsqlite3
on Apple platforms by embeddingLC_LINKER_OPTION
command into object files produced by K/N. This may be most useful for projects that link against K/N static libraries in Xcode, but should also remove the need for consumer side linker configuration.As an integration test, I disabled explicit linking in sqldelight and ran the tests I could find against this MR: 1, 2