# file : build/bootstrap.build # copyright : not copyrighted - public domain project = libsqlite3 # SQLite releases usually have 3-component versions but once in a while they # will make a 4-component release for what appears to be important bug fixes # only. So instead of dragging the fourth component around (and confusing a # lot of people in the process) we will always have three components and will # handle an occasional bugfix release with a revision. # # See also: https://www.sqlite.org/versionnumbers.html # # The SQLite documentation says that as long as the major version stays the # same, then it is backwards-compatible. And since we have the major version # already embedded into the library name, it doesn't make much sense to repeat # it. # # Note, however, that the binary-compatible API doesn't mean all the builds of # SQLite are binary-compatible since they can be built with different sets of # enabled/disabled functionality. In fact, one easy way to break backwards- # compatibility is to disable some feature that was previously enabled. # # So what we seem to need is not an ABI version but an ABI id that identifies # a specific set of features. And this will not be easy/possible if we want # to use platform-native versioning (e.g., libsqlite3.so. on Linux). The # only way to make this work would be to "reserve" some range for build2-based # builds (e.g., 1000-2000 so that we will have libsqlite3.so.1000; that sure # looks weird). # # Another alternative is to use platform-neutral versioning by embedding the # id into the library name, similar to '3'. This is probably better since # there is no "newer" semantics here. While ideally we should use something # like -build2-0 (i.e., "build2 build, id 0"), that will look rather ugly. So # we will use just the number but start with -1 in order not to clash with .0 # used by the autotools build (which becomes -0 on, e.g., Windows; I don't # believe it will ever be incremented though). # abi_major = 1 using version using config using dist using test using install