# file : build/bootstrap.build # copyright : Copyright (c) 2016-2017 Code Synthesis Ltd # license : GPLv2 with FOSS License Exception; see accompanying COPYING file project = libmysqlclient using version using config using dist using test using install # The MySQL client library ABI version number has the .. # form. The major number is increased for backwards-incompatible API changes, # the minor number for backwards-compatible ones (for example, for adding a new # function), and the patch number is typically increased for each package # release, being in a sense redundant. Increase of the version component resets # the rightmost ones to zero. See also: # # http://mysqlserverteam.com/the-client-library-part-2-the-version-number/ # # There is no way to deduce the ABI version from the release version. Moreover # the MySQL release history demonstrates their lack of correlation: # # release ABI # ... # 5.6.37 18.1.0 # 5.7.1 18.0.0 (presumably a bug) # 5.7.2 18.1.0 # ... # 5.7.5 18.3.0 # 5.7.6 20.0.0 # ... # # So we will have to obtain the ABI version from SHARED_LIB_*_VERSION variable # values in cmake/mysql_version.cmake for each package release. Also check that # the protocol version still correct (PROTOCOL_VERSION varible), # if ($version.major == 5 && $version.minor == 7 && $version.patch == 20) { abi_major = 20 abi_minor = 3 protocol_version = 10 } else fail "increment the ABI version?" # To make sure the library is fully (backward and forward) compatible with # programs it is linked to, we will use the original ABI major and minor # numbers, dropping the redundant patch number, # abi_version = $abi_major.$abi_minor