aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-12-18 12:12:29 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-12-18 12:12:29 +0200
commit0dbe4e64dd04df8cece55203d3b18cd63f080407 (patch)
tree0de71d5687b74cc062f968f11667c3a548cc27ff
parent0b69ab0367d83da4a86d9f9d429d72e00d9e8f7f (diff)
Add <brep/version>
-rw-r--r--brep/buildfile1
-rw-r--r--brep/version51
-rw-r--r--loader/loader.cxx6
3 files changed, 57 insertions, 1 deletions
diff --git a/brep/buildfile b/brep/buildfile
index dbe0bce..80949fe 100644
--- a/brep/buildfile
+++ b/brep/buildfile
@@ -24,6 +24,7 @@ lib{brep}: \
{hxx cxx}{ package-traits } \
{hxx }{ types } \
{hxx }{ utility } \
+{hxx }{ version } \
$libs
libso{brep}: cxx.export.poptions = -I$out_root -I$src_root
diff --git a/brep/version b/brep/version
new file mode 100644
index 0000000..8bcca9b
--- /dev/null
+++ b/brep/version
@@ -0,0 +1,51 @@
+// file : brep/version -*- C++ -*-
+// copyright : Copyright (c) 2014-2015 Code Synthesis Ltd
+// license : MIT; see accompanying LICENSE file
+
+#ifndef LIBBREP_VERSION // Note: using the version macro itself.
+
+#include <butl/version> // LIBBUTL_VERSION
+#include <bpkg/version> // LIBBPKG_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
+//
+// AABBCCDD
+#define LIBBREP_VERSION 10000
+#define LIBBREP_VERSION_STR "0.1.0"
+
+// For now these are the same.
+//
+#define BREP_VERSION LIBBREP_VERSION
+#define BREP_VERSION_STR LIBBREP_VERSION_STR
+
+// 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.
+//
+// AABBCCDD
+#if (LIBBUTL_VERSION < 10000 || \
+ LIBBUTL_VERSION > 10000)
+# error incompatible libbutl version
+#endif
+
+#if (LIBBPKG_VERSION < 10000 || \
+ LIBBPKG_VERSION > 10000)
+# error incompatible libbpkg version
+#endif
+
+#endif // LIBBREP_VERSION
diff --git a/loader/loader.cxx b/loader/loader.cxx
index 4512b8d..343c810 100644
--- a/loader/loader.cxx
+++ b/loader/loader.cxx
@@ -23,6 +23,7 @@
#include <brep/types>
#include <brep/utility>
+#include <brep/version>
#include <brep/package>
#include <brep/package-odb>
@@ -704,7 +705,10 @@ main (int argc, char* argv[])
//
if (ops.version ())
{
- cout << "brep-loader 0.1.0" << endl
+ cout << "brep-loader " << BREP_VERSION_STR << endl
+ << "libbrep " << LIBBREP_VERSION_STR << endl
+ << "libbpkg " << LIBBPKG_VERSION_STR << endl
+ << "libbutl " << LIBBUTL_VERSION_STR << endl
<< "Copyright (c) 2014-2015 Code Synthesis Ltd" << endl
<< "MIT; see accompanying LICENSE file" << endl;