Skip to content

Commit 6ed6262

Browse files
committed
Refactor the SQLite import
We can not use `#if Trait` because Xcode does not enable those compiler flags. Always count on Apple for delivering the best quality software. So now we import the default SPM SQLite last, after all other cases have been excluded. The GRDB framework (GRDB.xcodeproj and GRDB via CocoaPods) is distinct from the default SPM trait, so we detect it with GRDBFRAMEWORK.
1 parent fbad7fb commit 6ed6262

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+283
-161
lines changed

GRDB.swift.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Pod::Spec.new do |s|
2121
ss.framework = 'Foundation'
2222
ss.library = 'sqlite3'
2323
ss.xcconfig = {
24-
'OTHER_SWIFT_FLAGS' => '$(inherited) -D SQLITE_ENABLE_FTS5',
24+
'OTHER_SWIFT_FLAGS' => '$(inherited) -D SQLITE_ENABLE_FTS5 -D GRDBFRAMEWORK',
2525
}
2626
end
2727

GRDB/Core/Configuration.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
// Import C SQLite functions
2-
#if SWIFT_PACKAGE
3-
import GRDBSQLite
4-
#elseif GRDBCIPHER
2+
#if GRDBCIPHER // CocoaPods (SQLCipher subspec)
53
import SQLCipher
6-
#elseif !GRDBCUSTOMSQLITE && !GRDBCIPHER
4+
#elseif GRDBFRAMEWORK // GRDB.xcodeproj or CocoaPods (standard subspec)
75
import SQLite3
6+
#elseif GRDBCUSTOMSQLITE // GRDBCustom Framework
7+
// #elseif SomeTrait
8+
// import ...
9+
#else // Default SPM trait must be the default. It impossible to detect from Xcode.
10+
import GRDBSQLite
811
#endif
912

1013
#if !canImport(Darwin)

GRDB/Core/Database+Schema.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
// Import C SQLite functions
2-
#if SWIFT_PACKAGE
3-
import GRDBSQLite
4-
#elseif GRDBCIPHER
2+
#if GRDBCIPHER // CocoaPods (SQLCipher subspec)
53
import SQLCipher
6-
#elseif !GRDBCUSTOMSQLITE && !GRDBCIPHER
4+
#elseif GRDBFRAMEWORK // GRDB.xcodeproj or CocoaPods (standard subspec)
75
import SQLite3
6+
#elseif GRDBCUSTOMSQLITE // GRDBCustom Framework
7+
// #elseif SomeTrait
8+
// import ...
9+
#else // Default SPM trait must be the default. It impossible to detect from Xcode.
10+
import GRDBSQLite
811
#endif
912

1013
extension Database {

GRDB/Core/Database+Statements.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
// Import C SQLite functions
2-
#if SWIFT_PACKAGE
3-
import GRDBSQLite
4-
#elseif GRDBCIPHER
2+
#if GRDBCIPHER // CocoaPods (SQLCipher subspec)
53
import SQLCipher
6-
#elseif !GRDBCUSTOMSQLITE && !GRDBCIPHER
4+
#elseif GRDBFRAMEWORK // GRDB.xcodeproj or CocoaPods (standard subspec)
75
import SQLite3
6+
#elseif GRDBCUSTOMSQLITE // GRDBCustom Framework
7+
// #elseif SomeTrait
8+
// import ...
9+
#else // Default SPM trait must be the default. It impossible to detect from Xcode.
10+
import GRDBSQLite
811
#endif
912

1013
import Foundation

GRDB/Core/Database.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
// Import C SQLite functions
2-
#if SWIFT_PACKAGE
3-
import GRDBSQLite
4-
#elseif GRDBCIPHER
2+
#if GRDBCIPHER // CocoaPods (SQLCipher subspec)
53
import SQLCipher
6-
#elseif !GRDBCUSTOMSQLITE && !GRDBCIPHER
4+
#elseif GRDBFRAMEWORK // GRDB.xcodeproj or CocoaPods (standard subspec)
75
import SQLite3
6+
#elseif GRDBCUSTOMSQLITE // GRDBCustom Framework
7+
// #elseif SomeTrait
8+
// import ...
9+
#else // Default SPM trait must be the default. It impossible to detect from Xcode.
10+
import GRDBSQLite
811
#endif
912

1013
import Foundation

GRDB/Core/DatabaseCollation.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
// Import C SQLite functions
2-
#if SWIFT_PACKAGE
3-
import GRDBSQLite
4-
#elseif GRDBCIPHER
2+
#if GRDBCIPHER // CocoaPods (SQLCipher subspec)
53
import SQLCipher
6-
#elseif !GRDBCUSTOMSQLITE && !GRDBCIPHER
4+
#elseif GRDBFRAMEWORK // GRDB.xcodeproj or CocoaPods (standard subspec)
75
import SQLite3
6+
#elseif GRDBCUSTOMSQLITE // GRDBCustom Framework
7+
// #elseif SomeTrait
8+
// import ...
9+
#else // Default SPM trait must be the default. It impossible to detect from Xcode.
10+
import GRDBSQLite
811
#endif
912

1013
import Foundation

GRDB/Core/DatabaseError.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
// Import C SQLite functions
2-
#if SWIFT_PACKAGE
3-
import GRDBSQLite
4-
#elseif GRDBCIPHER
2+
#if GRDBCIPHER // CocoaPods (SQLCipher subspec)
53
import SQLCipher
6-
#elseif !GRDBCUSTOMSQLITE && !GRDBCIPHER
4+
#elseif GRDBFRAMEWORK // GRDB.xcodeproj or CocoaPods (standard subspec)
75
import SQLite3
6+
#elseif GRDBCUSTOMSQLITE // GRDBCustom Framework
7+
// #elseif SomeTrait
8+
// import ...
9+
#else // Default SPM trait must be the default. It impossible to detect from Xcode.
10+
import GRDBSQLite
811
#endif
912

1013
import Foundation

GRDB/Core/DatabaseFunction.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
// Import C SQLite functions
2-
#if SWIFT_PACKAGE
3-
import GRDBSQLite
4-
#elseif GRDBCIPHER
2+
#if GRDBCIPHER // CocoaPods (SQLCipher subspec)
53
import SQLCipher
6-
#elseif !GRDBCUSTOMSQLITE && !GRDBCIPHER
4+
#elseif GRDBFRAMEWORK // GRDB.xcodeproj or CocoaPods (standard subspec)
75
import SQLite3
6+
#elseif GRDBCUSTOMSQLITE // GRDBCustom Framework
7+
// #elseif SomeTrait
8+
// import ...
9+
#else // Default SPM trait must be the default. It impossible to detect from Xcode.
10+
import GRDBSQLite
811
#endif
912

1013
/// A custom SQL function or aggregate.

GRDB/Core/DatabaseSnapshotPool.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
#if SQLITE_ENABLE_SNAPSHOT
22
// Import C SQLite functions
3-
#if SWIFT_PACKAGE
4-
import GRDBSQLite
5-
#elseif GRDBCIPHER
3+
#if GRDBCIPHER // CocoaPods (SQLCipher subspec)
64
import SQLCipher
7-
#elseif !GRDBCUSTOMSQLITE && !GRDBCIPHER
5+
#elseif GRDBFRAMEWORK // GRDB.xcodeproj or CocoaPods (standard subspec)
86
import SQLite3
7+
#elseif GRDBCUSTOMSQLITE // GRDBCustom Framework
8+
// #elseif SomeTrait
9+
// import ...
10+
#else // Default SPM trait must be the default. It impossible to detect from Xcode.
11+
import GRDBSQLite
912
#endif
1013

1114
/// A database connection that allows concurrent accesses to an unchanging

GRDB/Core/DatabaseValue.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
// Import C SQLite functions
2-
#if SWIFT_PACKAGE
3-
import GRDBSQLite
4-
#elseif GRDBCIPHER
2+
#if GRDBCIPHER // CocoaPods (SQLCipher subspec)
53
import SQLCipher
6-
#elseif !GRDBCUSTOMSQLITE && !GRDBCIPHER
4+
#elseif GRDBFRAMEWORK // GRDB.xcodeproj or CocoaPods (standard subspec)
75
import SQLite3
6+
#elseif GRDBCUSTOMSQLITE // GRDBCustom Framework
7+
// #elseif SomeTrait
8+
// import ...
9+
#else // Default SPM trait must be the default. It impossible to detect from Xcode.
10+
import GRDBSQLite
811
#endif
912

1013
import Foundation

0 commit comments

Comments
 (0)