aboutsummaryrefslogtreecommitdiff
path: root/bbot/bbot-version
diff options
context:
space:
mode:
Diffstat (limited to 'bbot/bbot-version')
-rw-r--r--bbot/bbot-version81
1 files changed, 81 insertions, 0 deletions
diff --git a/bbot/bbot-version b/bbot/bbot-version
new file mode 100644
index 0000000..84dc85d
--- /dev/null
+++ b/bbot/bbot-version
@@ -0,0 +1,81 @@
+// file : bbot/bbot-version -*- C++ -*-
+// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+// license : MIT; see accompanying LICENSE file
+
+#ifndef BBOT_VERSION // Note: using the version macro itself.
+
+#include <butl/version> // LIBBUTL_VERSION
+#include <bbot/version> // LIBBBOT_VERSION
+
+// Version format is AABBCCDD where
+//
+// AA - major version number
+// BB - minor version number
+// CC - bugfix version number
+// DD - alpha / beta (DD + 50) version number
+//
+// When DD is not 00, 1 is subtracted from AABBCC. For example:
+//
+// Version AABBCCDD
+// 2.0.0 02000000
+// 2.1.0 02010000
+// 2.1.1 02010100
+// 2.2.0-a1 02019901
+// 3.0.0-b2 02999952
+//
+#define BBOT_VERSION 49901
+#define BBOT_VERSION_STR "0.5.0-a1"
+
+// Generally, we expect minor versions to be source code backwards-
+// compatible, thought we might have a minimum version requirement.
+//
+// Note: does not apply during early development.
+//
+#if LIBBUTL_VERSION != 49901
+# error incompatible libbutl version
+#endif
+
+#if LIBBBOT_VERSION != 49901
+# error incompatible libbbot version
+#endif
+
+// User agent.
+//
+#if defined(_WIN32)
+# if defined(__MINGW32__)
+# define BBOT_OS "MinGW"
+# else
+# define BBOT_OS "Windows"
+# endif
+#elif defined(__linux)
+# define BBOT_OS "GNU/Linux"
+#elif defined(__APPLE__)
+# define BBOT_OS "MacOS"
+#elif defined(__CYGWIN__)
+# define BBOT_OS "Cygwin"
+#elif defined(__FreeBSD__)
+# define BBOT_OS "FreeBSD"
+#elif defined(__OpenBSD__)
+# define BBOT_OS "OpenBSD"
+#elif defined(__NetBSD__)
+# define BBOT_OS "NetBSD"
+#elif defined(__sun)
+# define BBOT_OS "Solaris"
+#elif defined(__hpux)
+# define BBOT_OS "HP-UX"
+#elif defined(_AIX)
+# define BBOT_OS "AIX"
+#elif defined(__unix)
+# define BBOT_OS "Unix"
+#elif defined(__posix)
+# define BBOT_OS "Posix"
+#else
+# define BBOT_OS "Other"
+#endif
+
+#define BBOT_USER_AGENT \
+ "bbot/" BBOT_VERSION_STR " (" BBOT_OS "; +https://build2.org)" \
+ " libbbot/" LIBBBOT_VERSION_STR \
+ " libbutl/" LIBBUTL_VERSION_STR
+
+#endif // BBOT_VERSION