blob: 1137155c2015739428489aeeca8bdbbbb82f83c1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# 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 <major>.<minor>.<patch>
# 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
|