--- emacsql-sqlite.el.orig 2018-10-31 17:50:07 UTC +++ emacsql-sqlite.el @@ -27,11 +27,7 @@ (file-name-directory (or load-file-name buffer-file-name)) "Directory where EmacSQL is installed.") -(defvar emacsql-sqlite-executable - (expand-file-name (if (memq system-type '(windows-nt cygwin ms-dos)) - "sqlite/emacsql-sqlite.exe" - "sqlite/emacsql-sqlite") - emacsql-sqlite-data-root) +(defvar emacsql-sqlite-executable "%%PREFIX%%/bin/emacsql-sqlite" "Path to the EmacSQL backend (this is not the sqlite3 shell).") (defvar emacsql-sqlite-reserved @@ -82,6 +78,7 @@ http://www.sqlite.org/lang_keywords.html") (emacsql-wait connection) (emacsql connection [:pragma (= busy-timeout $s1)] (/ (* emacsql-global-timeout 1000) 2)) + (emacsql connection [:pragma (= foreign_keys 1)]) (emacsql-register connection))) (cl-defun emacsql-sqlite (file &key debug) @@ -143,11 +140,11 @@ If called with non-nil ASYNC the return value is meani (let* ((cc (executable-find "cc")) (src (expand-file-name "sqlite" emacsql-sqlite-data-root)) (files (mapcar (lambda (f) (expand-file-name f src)) - '("sqlite3.c" "emacsql.c"))) + '("emacsql.c"))) (cflags (list (format "-I%s" src) (format "-O%d" (or o-level 2)))) (ldlibs (if (memq system-type '(windows-nt berkeley-unix)) - (list "-lm") - (list "-lm" "-ldl"))) + (list "-lm" "-lsqlite3") + (list "-lm" "-ldl" "-lsqlite3"))) (options (emacsql-sqlite-compile-switches)) (output (list "-o" emacsql-sqlite-executable)) (arguments (nconc cflags options files ldlibs output)))