Files
sqlite-libs/Package.swift
T

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.12"),
.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
)