8c29982153
This reverts commit adee5315265cc46aa6a3057071527abb16e1cd94. Turns out one of the "other things" is a dealbreaker. We only create kegs using a formula's canonical name. However, we do not check that this is the case when mapping existing kegs back to formula objects, and thus a keg with a name that happens to be an alias can fool Homebrew into thinking the canonically-named keg exists. So anything that enumerates kegs and then tries to do stuff with the resulting formula objects will just break. This is obviously worse than the debugger being broken, so reverting this for the time being.
76 lines
2.8 KiB
Ruby
76 lines
2.8 KiB
Ruby
require 'formula'
|
|
|
|
class SqliteFunctions < Formula
|
|
url 'http://www.sqlite.org/contrib/download/extension-functions.c?get=25', :using => :nounzip
|
|
sha1 'c68fa706d6d9ff98608044c00212473f9c14892f'
|
|
version '2010-01-06'
|
|
end
|
|
|
|
class SqliteDocs < Formula
|
|
url 'http://www.sqlite.org/sqlite-doc-3071400.zip'
|
|
sha1 '38a8e9a4fa515f7aa6df7d31e58bd0ec60658031'
|
|
version '3.7.14.1'
|
|
end
|
|
|
|
class Sqlite < Formula
|
|
homepage 'http://sqlite.org/'
|
|
url 'http://sqlite.org/sqlite-autoconf-3071401.tar.gz'
|
|
sha1 'c464e0e3efe98227c6546b9b1e786b51b8b642fc'
|
|
version '3.7.14.1'
|
|
|
|
depends_on 'readline' => :recommended
|
|
|
|
option :universal
|
|
option 'with-docs', 'Install HTML documentation'
|
|
option 'without-rtree' 'Disable the R*Tree index module'
|
|
option 'with-fts', 'Enable the FTS module'
|
|
option 'with-functions', 'Enable more math and string functions for SQL queries'
|
|
|
|
def install
|
|
ENV.append 'CPPFLAGS', "-DSQLITE_ENABLE_RTREE" unless build.include? "without-rtree"
|
|
ENV.append 'CPPFLAGS', "-DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS" if build.include? "with-fts"
|
|
|
|
# enable these options by default
|
|
ENV.append 'CPPFLAGS', "-DSQLITE_ENABLE_COLUMN_METADATA"
|
|
ENV.append 'CPPFLAGS', "-DSQLITE_ENABLE_STAT3"
|
|
|
|
ENV.universal_binary if build.universal?
|
|
|
|
system "./configure", "--prefix=#{prefix}", "--disable-dependency-tracking", "--enable-dynamic-extensions"
|
|
system "make install"
|
|
|
|
if build.include? "with-functions"
|
|
SqliteFunctions.new.brew { mv 'extension-functions.c?get=25', buildpath/'extension-functions.c' }
|
|
system ENV.cc, "-fno-common",
|
|
"-dynamiclib",
|
|
"extension-functions.c",
|
|
"-o", "libsqlitefunctions.dylib",
|
|
*ENV.cflags.split
|
|
lib.install "libsqlitefunctions.dylib"
|
|
end
|
|
|
|
SqliteDocs.new.brew { doc.install Dir['*'] } if build.include? "with-docs"
|
|
end
|
|
|
|
def caveats
|
|
if build.include? 'with-functions' then <<-EOS.undent
|
|
Usage instructions for applications calling the sqlite3 API functions:
|
|
|
|
In your application, call sqlite3_enable_load_extension(db,1) to
|
|
allow loading external libraries. Then load the library libsqlitefunctions
|
|
using sqlite3_load_extension; the third argument should be 0.
|
|
See http://www.sqlite.org/cvstrac/wiki?p=LoadableExtensions.
|
|
Select statements may now use these functions, as in
|
|
SELECT cos(radians(inclination)) FROM satsum WHERE satnum = 25544;
|
|
|
|
Usage instructions for the sqlite3 program:
|
|
|
|
If the program is built so that loading extensions is permitted,
|
|
the following will work:
|
|
sqlite> SELECT load_extension('#{lib}/libsqlitefunctions.dylib');
|
|
sqlite> select cos(radians(45));
|
|
0.707106781186548
|
|
EOS
|
|
end
|
|
end
|
|
end
|