mirror of
https://github.com/immich-app/sqlite-libs.git
synced 2026-09-30 13:22:53 +08:00
* ci * fix ios bump deps * use release please * resolve warnings * make renovate use fix
153 lines
6.4 KiB
Swift
153 lines
6.4 KiB
Swift
// swift-tools-version: 6.1
|
|
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "sqlite-libs",
|
|
platforms: [
|
|
.iOS(.v13),
|
|
.macOS(.v10_15),
|
|
.tvOS(.v13),
|
|
.watchOS(.v6),
|
|
],
|
|
products: [
|
|
.library(name: "GRDB", targets: ["GRDB"]),
|
|
.library(name: "SQLiteExtensions", targets: ["SQLiteExtensions"]),
|
|
.library(name: "SQLiteData", targets: ["SQLiteData"]),
|
|
],
|
|
dependencies: [
|
|
.package(url: "https://github.com/apple/swift-collections", from: "1.0.0"),
|
|
.package(url: "https://github.com/pointfreeco/swift-concurrency-extras", from: "1.0.0"),
|
|
.package(url: "https://github.com/pointfreeco/swift-dependencies", from: "1.9.0"),
|
|
.package(url: "https://github.com/pointfreeco/swift-perception", from: "2.0.0"),
|
|
.package(url: "https://github.com/pointfreeco/swift-sharing", from: "2.3.0"),
|
|
.package(url: "https://github.com/pointfreeco/swift-structured-queries", from: "0.30.0"),
|
|
.package(url: "https://github.com/pointfreeco/xctest-dynamic-overlay", from: "1.5.0"),
|
|
],
|
|
targets: [
|
|
.target(
|
|
name: "GRDBSQLite",
|
|
path: "Sources/SQLiteCustom",
|
|
exclude: ["sqlean/LICENSE"],
|
|
sources: [
|
|
"sqlite3.c",
|
|
"series.c",
|
|
"sqlean/sqlite3-uuid.c",
|
|
"sqlean/uuid/extension.c",
|
|
"sqlean/sqlite3-text.c",
|
|
"sqlean/text/extension.c",
|
|
"sqlean/text/bstring.c",
|
|
"sqlean/text/rstring.c",
|
|
"sqlean/text/runes.c",
|
|
"sqlean/text/utf8/case.c",
|
|
"sqlean/text/utf8/rune.c",
|
|
"sqlean/text/utf8/utf8.c",
|
|
],
|
|
publicHeadersPath: "include",
|
|
cSettings: [
|
|
.headerSearchPath("include"),
|
|
.define("SQLITE_EXTRA_INIT_MUTEXED", to: "sqlite_extensions_init"),
|
|
.define("SQLITE_ENABLE_SNAPSHOT"),
|
|
.define("SQLITE_ENABLE_FTS5"),
|
|
.define("SQLITE_ENABLE_PREUPDATE_HOOK"),
|
|
.define("SQLITE_ENABLE_RTREE"),
|
|
.define("SQLITE_THREADSAFE", to: "2"),
|
|
.define("SQLITE_DQS", to: "0"),
|
|
.define("SQLITE_DEFAULT_MEMSTATUS", to: "0"),
|
|
.define("SQLITE_LIKE_DOESNT_MATCH_BLOBS"),
|
|
.define("SQLITE_MAX_EXPR_DEPTH", to: "0"),
|
|
.define("SQLITE_OMIT_PROGRESS_CALLBACK"),
|
|
.define("SQLITE_OMIT_SHARED_CACHE"),
|
|
.define("SQLITE_USE_ALLOCA"),
|
|
.define("SQLITE_OMIT_DEPRECATED"),
|
|
.define("SQLITE_TEMP_STORE", to: "2"),
|
|
.define("SQLITE_ENABLE_STAT4"),
|
|
.define("SQLITE_CORE"),
|
|
.define("SQLITE_DEFAULT_CACHE_SIZE", to: "10000"),
|
|
.define("SQLITE_DEFAULT_WAL_SYNCHRONOUS"),
|
|
.define("SQLITE_DEFAULT_BUSY_TIMEOUT", to: "30000"),
|
|
.define("SQLITE_DEFAULT_FOREIGN_KEYS", to: "1"),
|
|
.define("SQLITE_ENABLE_PERCENTILE"),
|
|
.define("SQLITE_ENABLE_MATH_FUNCTIONS"),
|
|
.define("SQLITE_UNTESTABLE"),
|
|
.define("SQLITE_OMIT_TCL_VARIABLE"),
|
|
.define("SQLITE_HAVE_ISNAN"),
|
|
.define("SQLITE_HAVE_LOCALTIME_R"),
|
|
.define("SQLITE_HAVE_MALLOC_USABLE_SIZE"),
|
|
.define("SQLITE_HAVE_STRCHRNUL"),
|
|
.define("SQLITE_ENABLE_GEOPOLY"),
|
|
.define("SQLITE_ENABLE_DBSTAT_VTAB"),
|
|
.define("SQLITE_ENABLE_CARRAY"),
|
|
.define("SQLITE_STAT4_SAMPLES", to: "64"),
|
|
.define("NDEBUG", .when(configuration: .release)),
|
|
.headerSearchPath("sqlean"),
|
|
.headerSearchPath("sqlean/uuid"),
|
|
.headerSearchPath("sqlean/text"),
|
|
.headerSearchPath("sqlean/text/utf8"),
|
|
.unsafeFlags(["-Wno-ambiguous-macro", "-O3"]),
|
|
],
|
|
),
|
|
.target(
|
|
name: "GRDB",
|
|
dependencies: ["GRDBSQLite"],
|
|
path: "Sources/GRDB",
|
|
exclude: ["Documentation.docc", "PrivacyInfo.xcprivacy", "LICENSE"],
|
|
swiftSettings: [
|
|
.define("SQLITE_ENABLE_SNAPSHOT"),
|
|
.define("SQLITE_ENABLE_FTS5"),
|
|
.define("SQLITE_ENABLE_PREUPDATE_HOOK"),
|
|
.unsafeFlags(["-O"]),
|
|
]
|
|
),
|
|
.target(
|
|
name: "SQLiteExtensions",
|
|
dependencies: ["GRDBSQLite"],
|
|
path: "Sources/SQLiteExtensions",
|
|
exclude: [
|
|
"usearch/LICENSE",
|
|
"usearch/stringzilla/LICENSE",
|
|
"usearch/simsimd/LICENSE",
|
|
"usearch/fp16/LICENSE",
|
|
],
|
|
sources: [
|
|
"initialize-extensions.c",
|
|
"usearch/lib.cpp",
|
|
],
|
|
publicHeadersPath: "include",
|
|
cSettings: [
|
|
.define("SQLITE_CORE"),
|
|
.unsafeFlags(["-O3"]),
|
|
],
|
|
cxxSettings: [
|
|
.headerSearchPath("include"),
|
|
.headerSearchPath("usearch/include"),
|
|
.headerSearchPath("usearch/stringzilla/include"),
|
|
.headerSearchPath("usearch/simsimd/include"),
|
|
.headerSearchPath("usearch/fp16/include"),
|
|
.define("SQLITE_CORE"),
|
|
.define("USEARCH_USE_SIMSIMD"),
|
|
.define("USEARCH_USE_FP16LIB"),
|
|
.unsafeFlags(["-O3", "-ffast-math"]),
|
|
]
|
|
),
|
|
.target(
|
|
name: "SQLiteData",
|
|
dependencies: [
|
|
"GRDB",
|
|
.product(name: "ConcurrencyExtras", package: "swift-concurrency-extras"),
|
|
.product(name: "Dependencies", package: "swift-dependencies"),
|
|
.product(name: "IssueReporting", package: "xctest-dynamic-overlay"),
|
|
.product(name: "OrderedCollections", package: "swift-collections"),
|
|
.product(name: "Perception", package: "swift-perception"),
|
|
.product(name: "Sharing", package: "swift-sharing"),
|
|
.product(name: "StructuredQueriesSQLite", package: "swift-structured-queries"),
|
|
],
|
|
path: "Sources/SQLiteData",
|
|
exclude: ["LICENSE"],
|
|
swiftSettings: [.unsafeFlags(["-O"])]
|
|
),
|
|
],
|
|
cLanguageStandard: .c11,
|
|
cxxLanguageStandard: .cxx17
|
|
)
|