From 559d2252e87e88a5c12d2314b151c2899081db32 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Sat, 1 Aug 2015 19:08:31 -0700 Subject: [PATCH] sqlite: Add feature flags, mostly taken from the gentoo ebuild --- pkgs/development/libraries/sqlite/default.nix | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix index d4f1d6bcee0..f043a37033a 100644 --- a/pkgs/development/libraries/sqlite/default.nix +++ b/pkgs/development/libraries/sqlite/default.nix @@ -12,9 +12,40 @@ stdenv.mkDerivation { buildInputs = lib.optionals interactive [ readline ncurses ]; - configureFlags = "--enable-threadsafe"; + configureFlags = [ "--enable-threadsafe" ]; - NIX_CFLAGS_COMPILE = "-DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_SECURE_DELETE=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1"; + NIX_CFLAGS_COMPILE = [ + "-DSQLITE_ENABLE_COLUMN_METADATA" + "-DSQLITE_ENABLE_DBSTAT_VTAB" + "-DSQLITE_ENABLE_FTS3" + "-DSQLITE_ENABLE_FTS3_PARENTHESIS" + "-DSQLITE_ENABLE_FTS4" + "-DSQLITE_ENABLE_RTREE" + "-DSQLITE_ENABLE_STMT_SCANSTATUS" + "-DSQLITE_ENABLE_UNLOCK_NOTIFY" + "-DSQLITE_SOUNDEX" + "-DSQLITE_SECURE_DELETE" + ]; + + # Test for features which may not be available at compile time + preBuild = '' + # Use pread(), pread64(), pwrite(), pwrite64() functions for better performance if they are available. + if cc -Werror=implicit-function-declaration -x c - -o "$TMPDIR/pread_pwrite_test" <<< \ + ''$'#include \nint main()\n{\n pread(0, NULL, 0, 0);\n pwrite(0, NULL, 0, 0);\n return 0;\n}'; then + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DUSE_PREAD" + fi + if cc -Werror=implicit-function-declaration -x c - -o "$TMPDIR/pread64_pwrite64_test" <<< \ + ''$'#include \nint main()\n{\n pread64(0, NULL, 0, 0);\n pwrite64(0, NULL, 0, 0);\n return 0;\n}'; then + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DUSE_PREAD64" + elif cc -D_LARGEFILE64_SOURCE -Werror=implicit-function-declaration -x c - -o "$TMPDIR/pread64_pwrite64_test" <<< \ + ''$'#include \nint main()\n{\n pread64(0, NULL, 0, 0);\n pwrite64(0, NULL, 0, 0);\n return 0;\n}'; then + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DUSE_PREAD64 -D_LARGEFILE64_SOURCE" + fi + + echo "" + echo "NIX_CFLAGS_COMPILE = $NIX_CFLAGS_COMPILE" + echo "" + ''; meta = { homepage = http://www.sqlite.org/;