Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 17 additions & 5 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ let package = Package(
name: "CSQLite",
targets: [
"CSQLite",
"CSQLiteExtensions",
]),
],
traits: [
Expand Down Expand Up @@ -277,19 +278,30 @@ let package = Package(
// Targets can depend on other targets in this package and products from dependencies.
.target(
name: "CSQLite",
cSettings: compileTimeOptions + platformConfiguration + features + [
cSettings: compileTimeOptions + platformConfiguration + features,
linkerSettings: [
.linkedLibrary("m"),
]),
.target(
name: "CSQLiteExtensions",
dependencies: [
"CSQLite",
],
cSettings: [
// For statically linking extensions
// https://sqlite.org/loadext.html#statically_linking_a_run_time_loadable_extension
.define("SQLITE_CORE", to: "1"),
],
linkerSettings: [
.linkedLibrary("m"),
]),
.testTarget(
name: "CSQLiteTests",
dependencies: [
"CSQLite",
])
]),
.testTarget(
name: "CSQLiteExtensionsTests",
dependencies: [
"CSQLiteExtensions",
]),
],
cLanguageStandard: .gnu11
)
22 changes: 17 additions & 5 deletions Package@swift-5.3.swift
Original file line number Diff line number Diff line change
Expand Up @@ -92,26 +92,38 @@ let package = Package(
name: "CSQLite",
targets: [
"CSQLite",
"CSQLiteExtensions",
]),
],
targets: [
// Targets are the basic building blocks of a package, defining a module or a test suite.
// Targets can depend on other targets in this package and products from dependencies.
.target(
name: "CSQLite",
cSettings: compileTimeOptions + platformConfiguration + features + [
cSettings: compileTimeOptions + platformConfiguration + features,
linkerSettings: [
.linkedLibrary("m"),
]),
.target(
name: "CSQLiteExtensions",
dependencies: [
"CSQLite",
],
cSettings: [
// For statically linking extensions
// https://sqlite.org/loadext.html#statically_linking_a_run_time_loadable_extension
.define("SQLITE_CORE", to: "1"),
],
linkerSettings: [
.linkedLibrary("m"),
]),
.testTarget(
name: "CSQLiteTests",
dependencies: [
"CSQLite",
])
]),
.testTarget(
name: "CSQLiteExtensionsTests",
dependencies: [
"CSQLiteExtensions",
]),
],
cLanguageStandard: .gnu11
)
79 changes: 0 additions & 79 deletions Sources/CSQLite/csqlite_shims.c
Original file line number Diff line number Diff line change
Expand Up @@ -290,82 +290,3 @@ int csqlite_sqlite3_vtab_uses_all_schemas(sqlite3 *db)
{
return sqlite3_vtab_config(db, SQLITE_VTAB_USES_ALL_SCHEMAS);
}

// MARK: - Database extensions

void sqlite3_carray_init(void);
int csqlite_sqlite3_auto_extension_carray()
{
return sqlite3_auto_extension(sqlite3_carray_init);
}

int csqlite_sqlite3_cancel_auto_extension_carray()
{
return sqlite3_cancel_auto_extension(sqlite3_carray_init);
}

void sqlite3_decimal_init(void);
int csqlite_sqlite3_auto_extension_decimal()
{
return sqlite3_auto_extension(sqlite3_decimal_init);
}

int csqlite_sqlite3_cancel_auto_extension_decimal()
{
return sqlite3_cancel_auto_extension(sqlite3_decimal_init);
}

void sqlite3_ieee_init(void);
int csqlite_sqlite3_auto_extension_ieee754()
{
return sqlite3_auto_extension(sqlite3_ieee_init);
}

int csqlite_sqlite3_cancel_auto_extension_ieee754()
{
return sqlite3_cancel_auto_extension(sqlite3_ieee_init);
}

void sqlite3_percentile_init(void);
int csqlite_sqlite3_auto_extension_percentile()
{
return sqlite3_auto_extension(sqlite3_percentile_init);
}

int csqlite_sqlite3_cancel_auto_extension_percentile()
{
return sqlite3_cancel_auto_extension(sqlite3_percentile_init);
}

void sqlite3_series_init(void);
int csqlite_sqlite3_auto_extension_series()
{
return sqlite3_auto_extension(sqlite3_series_init);
}

int csqlite_sqlite3_cancel_auto_extension_series()
{
return sqlite3_cancel_auto_extension(sqlite3_series_init);
}

void sqlite3_shathree_init(void);
int csqlite_sqlite3_auto_extension_sha3()
{
return sqlite3_auto_extension(sqlite3_shathree_init);
}

int csqlite_sqlite3_cancel_auto_extension_sha3()
{
return sqlite3_cancel_auto_extension(sqlite3_shathree_init);
}

void sqlite3_uuid_init(void);
int csqlite_sqlite3_auto_extension_uuid()
{
return sqlite3_auto_extension(sqlite3_uuid_init);
}

int csqlite_sqlite3_cancel_auto_extension_uuid()
{
return sqlite3_cancel_auto_extension(sqlite3_uuid_init);
}
38 changes: 0 additions & 38 deletions Sources/CSQLite/include/csqlite_shims.h
Original file line number Diff line number Diff line change
Expand Up @@ -139,41 +139,3 @@ int csqlite_sqlite3_vtab_config_innocuous(sqlite3 *db);
int csqlite_sqlite3_vtab_config_directonly(sqlite3 *db);
/// Equivalent to `sqlite3_vtab_config(db, SQLITE_VTAB_USES_ALL_SCHEMAS)`
int csqlite_sqlite3_vtab_uses_all_schemas(sqlite3 *db);

// MARK: - Database extensions
// See https://sqlite.org/loadext.html

/// Equivalent to `sqlite3_auto_extension(sqlite3_carray_init)`
int csqlite_sqlite3_auto_extension_carray(void);
/// Equivalent to `sqlite3_cancel_auto_extension(sqlite3_carray_init)`
int csqlite_sqlite3_cancel_auto_extension_carray(void);

/// Equivalent to `sqlite3_auto_extension(sqlite3_decimal_init)`
int csqlite_sqlite3_auto_extension_decimal(void);
/// Equivalent to `sqlite3_cancel_auto_extension(sqlite3_decimal_init)`
int csqlite_sqlite3_cancel_auto_extension_decimal(void);

/// Equivalent to `sqlite3_auto_extension(sqlite3_ieee_init)`
int csqlite_sqlite3_auto_extension_ieee754(void);
/// Equivalent to `sqlite3_cancel_auto_extension(sqlite3_ieee_init)`
int csqlite_sqlite3_cancel_auto_extension_ieee754(void);

/// Equivalent to `sqlite3_auto_extension(sqlite3_percentile_init)`
int csqlite_sqlite3_auto_extension_percentile(void);
/// Equivalent to `sqlite3_cancel_auto_extension(sqlite3_percentile_init)`
int csqlite_sqlite3_cancel_auto_extension_percentile(void);

/// Equivalent to `sqlite3_auto_extension(sqlite3_series_init)`
int csqlite_sqlite3_auto_extension_series(void);
/// Equivalent to `sqlite3_cancel_auto_extension(sqlite3_series_init)`
int csqlite_sqlite3_cancel_auto_extension_series(void);

/// Equivalent to `sqlite3_auto_extension(sqlite3_shathree_init)`
int csqlite_sqlite3_auto_extension_sha3(void);
/// Equivalent to `sqlite3_cancel_auto_extension(sqlite3_shathree_init)`
int csqlite_sqlite3_cancel_auto_extension_sha3(void);

/// Equivalent to `sqlite3_auto_extension(sqlite3_uuid_init)`
int csqlite_sqlite3_auto_extension_uuid(void);
/// Equivalent to `sqlite3_cancel_auto_extension(sqlite3_uuid_init)`
int csqlite_sqlite3_cancel_auto_extension_uuid(void);
1 change: 0 additions & 1 deletion Sources/CSQLite/include/module.modulemap
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
module CSQLite {
header "sqlite3.h"
header "sqlite3ext.h"
header "carray.h"
header "csqlite_shims.h"
export *
}
File renamed without changes.
96 changes: 96 additions & 0 deletions Sources/CSQLiteExtensions/csqlite_extensions.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
/*
** 2021-06-04
**
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
******************************************************************************
**
** Functions to manage automatic database extension registration from Swift.
*/

#include "csqlite_extensions.h"
#include "sqlite3.h"

// MARK: - Database extensions

void sqlite3_carray_init(void);
int csqlite_sqlite3_auto_extension_carray()
{
return sqlite3_auto_extension(sqlite3_carray_init);
}

int csqlite_sqlite3_cancel_auto_extension_carray()
{
return sqlite3_cancel_auto_extension(sqlite3_carray_init);
}

void sqlite3_decimal_init(void);
int csqlite_sqlite3_auto_extension_decimal()
{
return sqlite3_auto_extension(sqlite3_decimal_init);
}

int csqlite_sqlite3_cancel_auto_extension_decimal()
{
return sqlite3_cancel_auto_extension(sqlite3_decimal_init);
}

void sqlite3_ieee_init(void);
int csqlite_sqlite3_auto_extension_ieee754()
{
return sqlite3_auto_extension(sqlite3_ieee_init);
}

int csqlite_sqlite3_cancel_auto_extension_ieee754()
{
return sqlite3_cancel_auto_extension(sqlite3_ieee_init);
}

void sqlite3_percentile_init(void);
int csqlite_sqlite3_auto_extension_percentile()
{
return sqlite3_auto_extension(sqlite3_percentile_init);
}

int csqlite_sqlite3_cancel_auto_extension_percentile()
{
return sqlite3_cancel_auto_extension(sqlite3_percentile_init);
}

void sqlite3_series_init(void);
int csqlite_sqlite3_auto_extension_series()
{
return sqlite3_auto_extension(sqlite3_series_init);
}

int csqlite_sqlite3_cancel_auto_extension_series()
{
return sqlite3_cancel_auto_extension(sqlite3_series_init);
}

void sqlite3_shathree_init(void);
int csqlite_sqlite3_auto_extension_sha3()
{
return sqlite3_auto_extension(sqlite3_shathree_init);
}

int csqlite_sqlite3_cancel_auto_extension_sha3()
{
return sqlite3_cancel_auto_extension(sqlite3_shathree_init);
}

void sqlite3_uuid_init(void);
int csqlite_sqlite3_auto_extension_uuid()
{
return sqlite3_auto_extension(sqlite3_uuid_init);
}

int csqlite_sqlite3_cancel_auto_extension_uuid()
{
return sqlite3_cancel_auto_extension(sqlite3_uuid_init);
}
File renamed without changes.
File renamed without changes.
52 changes: 52 additions & 0 deletions Sources/CSQLiteExtensions/include/csqlite_extensions.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/*
** 2021-06-04
**
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
******************************************************************************
**
** Functions to manage automatic database extension registration from Swift.
*/

// MARK: - Database extensions
// See https://sqlite.org/loadext.html

/// Equivalent to `sqlite3_auto_extension(sqlite3_carray_init)`
int csqlite_sqlite3_auto_extension_carray(void);
/// Equivalent to `sqlite3_cancel_auto_extension(sqlite3_carray_init)`
int csqlite_sqlite3_cancel_auto_extension_carray(void);

/// Equivalent to `sqlite3_auto_extension(sqlite3_decimal_init)`
int csqlite_sqlite3_auto_extension_decimal(void);
/// Equivalent to `sqlite3_cancel_auto_extension(sqlite3_decimal_init)`
int csqlite_sqlite3_cancel_auto_extension_decimal(void);

/// Equivalent to `sqlite3_auto_extension(sqlite3_ieee_init)`
int csqlite_sqlite3_auto_extension_ieee754(void);
/// Equivalent to `sqlite3_cancel_auto_extension(sqlite3_ieee_init)`
int csqlite_sqlite3_cancel_auto_extension_ieee754(void);

/// Equivalent to `sqlite3_auto_extension(sqlite3_percentile_init)`
int csqlite_sqlite3_auto_extension_percentile(void);
/// Equivalent to `sqlite3_cancel_auto_extension(sqlite3_percentile_init)`
int csqlite_sqlite3_cancel_auto_extension_percentile(void);

/// Equivalent to `sqlite3_auto_extension(sqlite3_series_init)`
int csqlite_sqlite3_auto_extension_series(void);
/// Equivalent to `sqlite3_cancel_auto_extension(sqlite3_series_init)`
int csqlite_sqlite3_cancel_auto_extension_series(void);

/// Equivalent to `sqlite3_auto_extension(sqlite3_shathree_init)`
int csqlite_sqlite3_auto_extension_sha3(void);
/// Equivalent to `sqlite3_cancel_auto_extension(sqlite3_shathree_init)`
int csqlite_sqlite3_cancel_auto_extension_sha3(void);

/// Equivalent to `sqlite3_auto_extension(sqlite3_uuid_init)`
int csqlite_sqlite3_auto_extension_uuid(void);
/// Equivalent to `sqlite3_cancel_auto_extension(sqlite3_uuid_init)`
int csqlite_sqlite3_cancel_auto_extension_uuid(void);
5 changes: 5 additions & 0 deletions Sources/CSQLiteExtensions/include/module.modulemap
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module CSQLiteExtensions {
header "carray.h"
header "csqlite_extensions.h"
export *
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
** 2021-06-08
** 2024-05-24
**
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
Expand All @@ -14,7 +14,7 @@
*/

import XCTest
@testable import CSQLite
@testable import CSQLiteExtensions

final class CSQLiteExtensionTests: XCTestCase {
#if swift(<6.1) || OMIT_AUTOINIT
Expand Down