forked from metabolist/GRDB.swift
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPackage.swift
120 lines (116 loc) · 4.59 KB
/
Package.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
// swift-tools-version:5.7
// The swift-tools-version declares the minimum version of Swift required to build this package.
import Foundation
import PackageDescription
// Don't rely on those environment variables. They are ONLY testing conveniences:
// $ SQLITE_ENABLE_FTS5=1 SQLITE_ENABLE_PREUPDATE_HOOK=1 make test_SPM
var swiftSettings: [SwiftSetting] = []
var cSettings: [CSetting] = []
if ProcessInfo.processInfo.environment["SQLITE_ENABLE_FTS5"] == "1" {
swiftSettings.append(.define("SQLITE_ENABLE_FTS5"))
}
if ProcessInfo.processInfo.environment["SQLITE_ENABLE_PREUPDATE_HOOK"] == "1" {
swiftSettings.append(.define("SQLITE_ENABLE_PREUPDATE_HOOK"))
cSettings.append(.define("GRDB_SQLITE_ENABLE_PREUPDATE_HOOK"))
}
// Don't rely on this environment variable. It is only a convenience:
// $ make docs-localhost
var dependencies: [PackageDescription.Package.Dependency] = []
if ProcessInfo.processInfo.environment["GRDB_DOCC_PLUGIN"] == "1" {
dependencies.append(.package(url: "https://github.com/apple/swift-docc-plugin", from: "1.0.0"))
}
let package = Package(
name: "GRDB",
defaultLocalization: "en", // for tests
platforms: [
.iOS(.v11),
.macOS(.v10_13),
.tvOS(.v11),
.watchOS(.v4),
],
products: [
.library(name: "GRDB", targets: ["GRDB"]),
.library(name: "GRDB-dynamic", type: .dynamic, targets: ["GRDB"]),
],
dependencies: dependencies,
targets: [
.target(
name: "GRDB",
dependencies: ["SQLCipher"],
path: "GRDB",
cSettings: [
.define("SQLITE_HAS_CODEC"),
.define("SQLITE_TEMP_STORE", to: "2"),
.define("SQLITE_SOUNDEX"),
.define("SQLITE_THREADSAFE"),
.define("SQLITE_ENABLE_RTREE"),
.define("SQLITE_ENABLE_STAT3"),
.define("SQLITE_ENABLE_STAT4"),
.define("SQLITE_ENABLE_COLUMN_METADATA"),
.define("SQLITE_ENABLE_MEMORY_MANAGEMENT"),
.define("SQLITE_ENABLE_LOAD_EXTENSION"),
.define("SQLITE_ENABLE_FTS4"),
.define("SQLITE_ENABLE_FTS4_UNICODE61"),
.define("SQLITE_ENABLE_FTS3_PARENTHESIS"),
.define("SQLITE_ENABLE_UNLOCK_NOTIFY"),
.define("SQLITE_ENABLE_JSON1"),
.define("SQLITE_ENABLE_FTS5"),
.define("SQLCIPHER_CRYPTO_CC"),
.define("HAVE_USLEEP", to: "1"),
.define("SQLITE_MAX_VARIABLE_NUMBER", to: "99999")
],
swiftSettings: [
.define("SQLITE_HAS_CODEC"),
.define("GRDBCIPHER"),
.define("SQLITE_ENABLE_FTS5")
]),
.target(
name: "SQLCipher",
cSettings: [
.define("NDEBUG"),
.define("SQLITE_HAS_CODEC"),
.define("SQLITE_TEMP_STORE", to: "2"),
.define("SQLITE_SOUNDEX"),
.define("SQLITE_THREADSAFE"),
.define("SQLITE_ENABLE_RTREE"),
.define("SQLITE_ENABLE_STAT3"),
.define("SQLITE_ENABLE_STAT4"),
.define("SQLITE_ENABLE_COLUMN_METADATA"),
.define("SQLITE_ENABLE_MEMORY_MANAGEMENT"),
.define("SQLITE_ENABLE_LOAD_EXTENSION"),
.define("SQLITE_ENABLE_FTS4"),
.define("SQLITE_ENABLE_FTS4_UNICODE61"),
.define("SQLITE_ENABLE_FTS3_PARENTHESIS"),
.define("SQLITE_ENABLE_UNLOCK_NOTIFY"),
.define("SQLITE_ENABLE_JSON1"),
.define("SQLITE_ENABLE_FTS5"),
.define("SQLCIPHER_CRYPTO_CC"),
.define("HAVE_USLEEP", to: "1"),
.define("SQLITE_MAX_VARIABLE_NUMBER", to: "99999"),
.define("HAVE_GETHOSTUUID", to: "0"),
.unsafeFlags(["-w"])
]),
.testTarget(
name: "GRDBTests",
dependencies: ["GRDB"],
path: "Tests",
exclude: [
"CocoaPods",
"Crash",
"CustomSQLite",
"GRDBTests/getThreadsCount.c",
"Info.plist",
"Performance",
"SPM",
"generatePerformanceReport.rb",
"parsePerformanceTests.rb",
],
resources: [
.copy("GRDBTests/Betty.jpeg"),
.copy("GRDBTests/InflectionsTests.json"),
],
cSettings: cSettings,
swiftSettings: swiftSettings)
],
swiftLanguageVersions: [.v5]
)