aboutsummaryrefslogtreecommitdiff
path: root/bpkg/version-impl.in
blob: 8d15e68d51a5278ab9721dc6bc29576a5b6c35ba (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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// file      : bpkg/version-impl.in -*- C++ -*-
// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
// license   : MIT; see accompanying LICENSE file

#ifndef BPKG_VERSION // Note: using the version macro itself.

// Note: using build2 standard versioning scheme. The numeric version format
// is AAABBBCCCDDDE where:
//
// AAA - major version number
// BBB - minor version number
// CCC - bugfix version number
// DDD - alpha / beta (DDD + 500) version number
// E   - final (0) / snapshot (1)
//
// When DDDE is not 0, 1 is subtracted from AAABBBCCC. For example:
//
// Version      AAABBBCCCDDDE
//
// 0.1.0        0000010000000
// 0.1.2        0000010010000
// 1.2.3        0010020030000
// 2.2.0-a.1    0020019990010
// 3.0.0-b.2    0029999995020
// 2.2.0-a.1.z  0020019990011
//
#define BPKG_VERSION       $bpkg.version.project_number$ULL
#define BPKG_VERSION_STR   "$bpkg.version.project$"
#define BPKG_VERSION_ID    "$bpkg.version.project_id$"

#define BPKG_VERSION_MAJOR $bpkg.version.major$
#define BPKG_VERSION_MINOR $bpkg.version.minor$
#define BPKG_VERSION_PATCH $bpkg.version.patch$

#define BPKG_PRE_RELEASE   $bpkg.version.pre_release$

#define BPKG_SNAPSHOT      $bpkg.version.snapshot_sn$ULL
#define BPKG_SNAPSHOT_ID   "$bpkg.version.snapshot_id$"

#include <butl/version>

$libbutl.check(LIBBUTL_VERSION, LIBBUTL_SNAPSHOT)$

#include <bpkg/version>

$libbpkg.check(LIBBPKG_VERSION, LIBBPKG_SNAPSHOT)$

#include <odb/version.hxx>

$libodb.check(LIBODB_VERSION, LIBODB_SNAPSHOT)$

#include <odb/sqlite/version.hxx>

$libodb-sqlite.check(LIBODB_SQLITE_VERSION, LIBODB_SQLITE_SNAPSHOT)$

// User agent.
//
#if   defined(_WIN32)
# if defined(__MINGW32__)
#  define BPKG_OS "MinGW"
# else
#  define BPKG_OS "Windows"
# endif
#elif defined(__linux)
#  define BPKG_OS "GNU/Linux"
#elif defined(__APPLE__)
#  define BPKG_OS "MacOS"
#elif defined(__CYGWIN__)
#  define BPKG_OS "Cygwin"
#elif defined(__FreeBSD__)
#  define BPKG_OS "FreeBSD"
#elif defined(__OpenBSD__)
#  define BPKG_OS "OpenBSD"
#elif defined(__NetBSD__)
#  define BPKG_OS "NetBSD"
#elif defined(__sun)
#  define BPKG_OS "Solaris"
#elif defined(__hpux)
#  define BPKG_OS "HP-UX"
#elif defined(_AIX)
#  define BPKG_OS "AIX"
#elif defined(__unix)
#  define BPKG_OS "Unix"
#elif defined(__posix)
#  define BPKG_OS "Posix"
#else
#  define BPKG_OS "Other"
#endif

#define BPKG_USER_AGENT                                              \
  "bpkg/" BPKG_VERSION_STR " (" BPKG_OS "; +https://build2.org)"     \
  " libbpkg/" LIBBPKG_VERSION_STR                                    \
  " libbutl/" LIBBUTL_VERSION_STR

#endif // BPKG_VERSION