at 17.09-beta 2.6 kB view raw
1{ lib, stdenv, fetchurl, interactive ? false, readline ? null, ncurses ? null }: 2 3assert interactive -> readline != null && ncurses != null; 4 5stdenv.mkDerivation { 6 name = "sqlite-3.20.0"; 7 8 src = fetchurl { 9 url = "http://sqlite.org/2017/sqlite-autoconf-3200000.tar.gz"; 10 sha256 = "1876dapm1xx5aqd2d8l7ymmkd2z9rybh99rp5f5rd4zz57vcc51q"; 11 }; 12 13 outputs = [ "bin" "dev" "out" ]; 14 separateDebugInfo = stdenv.isLinux; 15 16 buildInputs = lib.optionals interactive [ readline ncurses ]; 17 18 configureFlags = [ "--enable-threadsafe" ] ++ lib.optional interactive "--enable-readline"; 19 20 NIX_CFLAGS_COMPILE = [ 21 "-DSQLITE_ENABLE_COLUMN_METADATA" 22 "-DSQLITE_ENABLE_DBSTAT_VTAB" 23 "-DSQLITE_ENABLE_JSON1" 24 "-DSQLITE_ENABLE_FTS3" 25 "-DSQLITE_ENABLE_FTS3_PARENTHESIS" 26 "-DSQLITE_ENABLE_FTS3_TOKENIZER" 27 "-DSQLITE_ENABLE_FTS4" 28 "-DSQLITE_ENABLE_FTS5" 29 "-DSQLITE_ENABLE_RTREE" 30 "-DSQLITE_ENABLE_STMT_SCANSTATUS" 31 "-DSQLITE_ENABLE_UNLOCK_NOTIFY" 32 "-DSQLITE_SOUNDEX" 33 "-DSQLITE_SECURE_DELETE" 34 ]; 35 36 # Test for features which may not be available at compile time 37 preBuild = '' 38 # Use pread(), pread64(), pwrite(), pwrite64() functions for better performance if they are available. 39 if cc -Werror=implicit-function-declaration -x c - -o "$TMPDIR/pread_pwrite_test" <<< \ 40 ''$'#include <unistd.h>\nint main()\n{\n pread(0, NULL, 0, 0);\n pwrite(0, NULL, 0, 0);\n return 0;\n}'; then 41 export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DUSE_PREAD" 42 fi 43 if cc -Werror=implicit-function-declaration -x c - -o "$TMPDIR/pread64_pwrite64_test" <<< \ 44 ''$'#include <unistd.h>\nint main()\n{\n pread64(0, NULL, 0, 0);\n pwrite64(0, NULL, 0, 0);\n return 0;\n}'; then 45 export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DUSE_PREAD64" 46 elif cc -D_LARGEFILE64_SOURCE -Werror=implicit-function-declaration -x c - -o "$TMPDIR/pread64_pwrite64_test" <<< \ 47 ''$'#include <unistd.h>\nint main()\n{\n pread64(0, NULL, 0, 0);\n pwrite64(0, NULL, 0, 0);\n return 0;\n}'; then 48 export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DUSE_PREAD64 -D_LARGEFILE64_SOURCE" 49 fi 50 51 # Necessary for FTS5 on Linux 52 export NIX_LDFLAGS="$NIX_LDFLAGS -lm" 53 54 echo "" 55 echo "NIX_CFLAGS_COMPILE = $NIX_CFLAGS_COMPILE" 56 echo "" 57 ''; 58 59 meta = { 60 homepage = http://www.sqlite.org/; 61 description = "A self-contained, serverless, zero-configuration, transactional SQL database engine"; 62 platforms = stdenv.lib.platforms.unix; 63 maintainers = with stdenv.lib.maintainers; [ eelco np ]; 64 }; 65}