Skip to content

Commit a57ad4a

Browse files
authored
Bundle regexp (#2160)
2 parents 7cadded + c6adb65 commit a57ad4a

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

libsql-ffi/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,15 @@ sqlean-extension-fuzzy = []
4040
sqlean-extension-math = []
4141
sqlean-extension-stats = []
4242
sqlean-extension-text = []
43+
sqlean-extension-regexp = []
4344
sqlean-extensions = [
4445
"sqlean-extension-uuid",
4546
"sqlean-extension-crypto",
4647
"sqlean-extension-fuzzy",
4748
"sqlean-extension-math",
4849
"sqlean-extension-stats",
4950
"sqlean-extension-text",
51+
"sqlean-extension-regexp",
5052
]
5153
libsql-disable-checkpoint-downgrade = []
5254
libsql-checkpoint-only-full= []

libsql-ffi/build.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,13 @@ pub fn build_bundled(out_dir: &str, out_path: &Path) {
252252
sqlean_patterns.push("uuid/*.c");
253253
}
254254

255+
if cfg!(feature = "sqlean-extension-regexp") {
256+
enabled_extensions.push("regexp");
257+
sqlean_patterns.push("regexp/*.c");
258+
sqlean_patterns.push("regexp/pcre2/pcre2_internal.h");
259+
sqlean_patterns.push("regexp/pcre2/*.c");
260+
}
261+
255262
if sqlean_patterns.is_empty() {
256263
cfg.file(format!("{BUNDLED_DIR}/src/sqlite3.c"));
257264
} else {
@@ -263,6 +270,12 @@ pub fn build_bundled(out_dir: &str, out_path: &Path) {
263270
sqlean_sources.extend(glob(&full_pattern).unwrap().filter_map(Result::ok));
264271
}
265272

273+
if cfg!(feature = "sqlean-extension-regexp") {
274+
// PCRE2 needs some macroses defined externally in constants.h file
275+
cfg.flag("-include")
276+
.flag(format!("{BUNDLED_DIR}/sqlean/regexp/constants.h"));
277+
}
278+
266279
cfg.files(sqlean_sources);
267280

268281
let sqlean = Path::new(&env::var("OUT_DIR").unwrap()).join("sqlite3-sqlean-generated.c");

libsql-sys/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,5 @@ sqlean-extension-fuzzy = ["libsql-ffi/sqlean-extension-fuzzy"]
3131
sqlean-extension-math = ["libsql-ffi/sqlean-extension-math"]
3232
sqlean-extension-stats = ["libsql-ffi/sqlean-extension-stats"]
3333
sqlean-extension-text = ["libsql-ffi/sqlean-extension-text"]
34+
sqlean-extension-regexp = ["libsql-ffi/sqlean-extension-regexp"]
3435
sqlean-extensions = ["libsql-ffi/sqlean-extensions"]

0 commit comments

Comments
 (0)