|
1 | 1 | // swift-tools-version: 5.9 |
2 | 2 | import PackageDescription |
3 | 3 |
|
| 4 | +// SQLite is provided by the Apple SDK on Darwin; on Linux we need a system library. |
| 5 | +#if canImport(Darwin) |
| 6 | +let sqliteSystemLibTargets: [Target] = [] |
| 7 | +let sqliteNioExtraDeps: [Target.Dependency] = [] |
| 8 | +let sqliteNioLinkerSettings: [LinkerSetting] = [.linkedLibrary("sqlite3")] |
| 9 | +#else |
| 10 | +let sqliteSystemLibTargets: [Target] = [ |
| 11 | + .systemLibrary(name: "CSQLite", pkgConfig: "sqlite3", |
| 12 | + providers: [.apt(["libsqlite3-dev"])]), |
| 13 | +] |
| 14 | +let sqliteNioExtraDeps: [Target.Dependency] = [.target(name: "CSQLite")] |
| 15 | +let sqliteNioLinkerSettings: [LinkerSetting] = [] |
| 16 | +#endif |
| 17 | + |
4 | 18 | let package = Package( |
5 | 19 | name: "sql-nio", |
6 | 20 | platforms: [ |
@@ -86,9 +100,9 @@ let package = Package( |
86 | 100 | .product(name: "NIOCore", package: "swift-nio"), |
87 | 101 | .product(name: "NIOPosix", package: "swift-nio"), |
88 | 102 | .product(name: "Logging", package: "swift-log"), |
89 | | - ], |
| 103 | + ] + sqliteNioExtraDeps, |
90 | 104 | swiftSettings: swiftSettings, |
91 | | - linkerSettings: [.linkedLibrary("sqlite3")] |
| 105 | + linkerSettings: sqliteNioLinkerSettings |
92 | 106 | ), |
93 | 107 |
|
94 | 108 | // ── Tests ───────────────────────────────────────────────────────────── |
@@ -130,7 +144,7 @@ let package = Package( |
130 | 144 | ], |
131 | 145 | swiftSettings: swiftSettings |
132 | 146 | ), |
133 | | - ] |
| 147 | + ] + sqliteSystemLibTargets |
134 | 148 | ) |
135 | 149 |
|
136 | 150 | var swiftSettings: [SwiftSetting] { [ |
|
0 commit comments