From fdc3a7a04b6f567391950f95411b9d8e4aea1153 Mon Sep 17 00:00:00 2001 From: Joseph Bielawski Date: Sun, 3 Sep 2023 15:49:15 +0200 Subject: [PATCH] Add snappy extension --- config/ext.json | 13 +++++++++- config/lib.json | 15 ++++++++++- config/source.json | 22 +++++++++++++++- src/SPC/builder/extension/snappy.php | 17 +++++++++++++ src/SPC/builder/linux/library/snappy.php | 12 +++++++++ src/SPC/builder/macos/library/snappy.php | 12 +++++++++ src/SPC/builder/unix/library/snappy.php | 32 ++++++++++++++++++++++++ 7 files changed, 120 insertions(+), 3 deletions(-) create mode 100644 src/SPC/builder/extension/snappy.php create mode 100644 src/SPC/builder/linux/library/snappy.php create mode 100644 src/SPC/builder/macos/library/snappy.php create mode 100644 src/SPC/builder/unix/library/snappy.php diff --git a/config/ext.json b/config/ext.json index 4cd15da2..00f60518 100644 --- a/config/ext.json +++ b/config/ext.json @@ -325,6 +325,17 @@ "libxml2" ] }, + "snappy": { + "type": "external", + "source": "ext-snappy", + "arg-type": "custom", + "lib-depends": [ + "snappy" + ], + "ext-suggest": [ + "apcu" + ] + }, "snmp": { "type": "builtin", "arg-type": "with", @@ -490,4 +501,4 @@ "zstd" ] } -} \ No newline at end of file +} diff --git a/config/lib.json b/config/lib.json index 490450d5..ebcbe668 100644 --- a/config/lib.json +++ b/config/lib.json @@ -510,5 +510,18 @@ "zstd.h", "zstd_errors.h" ] + }, + "snappy": { + "source": "snappy", + "static-libs-unix": [ + "libsnappy.a" + ], + "headers-unix": [ + "snappy-c.h", + "snappy-sinksource.h", + "snappy.h", + "snappy-stubs-internal.h", + "snappy-stubs-public.h" + ] } -} \ No newline at end of file +} diff --git a/config/source.json b/config/source.json index 324292a1..2f1e2e41 100644 --- a/config/source.json +++ b/config/source.json @@ -80,6 +80,16 @@ "path": "LICENSE" } }, + "ext-snappy": { + "type": "git", + "path": "php-src/ext/snappy", + "rev": "master", + "url": "https://github.com/kjdev/php-ext-snappy", + "license": { + "type": "file", + "path": "LICENSE" + } + }, "ext-ssh2": { "type": "url", "url": "https://pecl.php.net/get/ssh2", @@ -401,6 +411,16 @@ "path": "COPYING" } }, + "snappy": { + "type": "git", + "repo": "google/snappy", + "rev": "main", + "url": "https://github.com/google/snappy", + "license": { + "type": "file", + "path": "COPYING" + } + }, "sqlite": { "type": "url", "url": "https://www.sqlite.org/2023/sqlite-autoconf-3410100.tar.gz", @@ -476,4 +496,4 @@ "path": "LICENSE" } } -} \ No newline at end of file +} diff --git a/src/SPC/builder/extension/snappy.php b/src/SPC/builder/extension/snappy.php new file mode 100644 index 00000000..065b33a7 --- /dev/null +++ b/src/SPC/builder/extension/snappy.php @@ -0,0 +1,17 @@ +source_dir . '/cmake/build'); + + shell()->cd($this->source_dir . '/cmake/build') + ->exec( + "{$this->builder->configure_env} cmake " . + "{$this->builder->makeCmakeArgs()} " . + '-DSNAPPY_BUILD_TESTS=OFF ' . + '-DSNAPPY_BUILD_BENCHMARKS=OFF ' . + '../..' + ) + ->exec("cmake --build . -j {$this->builder->concurrency}") + ->exec('make install DESTDIR=' . BUILD_ROOT_PATH); + } +}