From 1d50611d9aa6f34cab5293514172d24eb44e26cc Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sat, 29 Apr 2017 15:57:32 +0200 Subject: Rename inner sqlite3/ to libsqlite3/ --- libsqlite3/buildfile | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 libsqlite3/buildfile (limited to 'libsqlite3/buildfile') diff --git a/libsqlite3/buildfile b/libsqlite3/buildfile new file mode 100644 index 0000000..b3b1015 --- /dev/null +++ b/libsqlite3/buildfile @@ -0,0 +1,80 @@ +# file : libsqlite3/buildfile +# copyright : not copyrighted - public domain + +lib{sqlite3}: {h c}{sqlite3} h{sqlite3ext} + +# See bootstrap.build for details. +# +if $version.pre_release + lib{sqlite3}: bin.lib.version = @"-$version.project_id" +else + lib{sqlite3}: bin.lib.version = @"-$abi_major" + +# The set of features we enable by default is inspired by Debian, Fedora, and +# the official documentation. +# +# Note that we "prefix" them to what might have been specified by the user so +# that it is possible to override the defaults by specifying them as =0 (it's +# also the reason we use cc.* instead of c.*, the former comes first). +# +# PREUPDATE_HOOK is required by SESSION +# +# -DSQLITE_ENABLE_SESSION=1 removed for now due to bug in 3.14.1. +# +# Note that if disabling any previously-released features, then will need to +# increment abi_major. +# +cc.poptions =+ \ +-DSQLITE_THREADSAFE=1 \ +-DSQLITE_ENABLE_FTS4=1 \ +-DSQLITE_ENABLE_FTS5=1 \ +-DSQLITE_ENABLE_RTREE=1 \ +-DSQLITE_ENABLE_JSON1=1 \ +-DSQLITE_SECURE_DELETE=1 \ +-DSQLITE_ENABLE_DBSTAT_VTAB=1 \ +-DSQLITE_ENABLE_UNLOCK_NOTIFY=1 \ +-DSQLITE_ENABLE_LOAD_EXTENSION=1 \ +-DSQLITE_ENABLE_PREUPDATE_HOOK=1 \ +-DSQLITE_ENABLE_COLUMN_METADATA=1 \ +-DSQLITE_ENABLE_FTS3_PARENTHESIS=1 + +if ($c.target.class != "windows") +{ + cc.poptions =+ -DHAVE_USLEEP=1 + + # SQLITE_THREADSAFE requres -lpthread + # SQLITE_ENABLE_LOAD_EXTENSION requires -ldl + # SQLITE_ENABLE_FTS5 requires -lm (calls log(1)) + # + # You may be wondering why we didn't import them instead. While it would be + # almost equivalent, there is a subtle difference: if we import them, then + # build2 will start selecting static/shared libraries and we probably don't + # want that here. These libraries are in a sense an extension of -lc and we + # want them to be linked in the same way as -lc (e.g., the user will have to + # specify -static to force static linking and so on). + # + # We also assume these are implementation dependencies (so there is no + # c.export.libs listing them). + # + c.libs += -lpthread -lm + + if ($c.target.class != "bsd") + c.libs += -ldl +} + +# Both Debian and Fedora add this so gotta be important. +# +if ($c.id != "msvc") + c.coptions += -fno-strict-aliasing + +# It would have been cleaner to handle this in a header but that will require +# modifying sqlite3.h. Note that this is also sub-optimal if we are not using +# an export stub (no dllimport). +# +lib{sqlite3}: cc.export.poptions = "-I$src_base" + +if ($c.target.class == "windows") +{ + objs{*}: c.poptions += '-DSQLITE_API=__declspec(dllexport)' + libs{sqlite3}: cc.export.poptions += '-DSQLITE_API=__declspec(dllimport)' +} -- cgit v1.1