aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build/b.cxx5
-rw-r--r--build/version39
2 files changed, 42 insertions, 2 deletions
diff --git a/build/b.cxx b/build/b.cxx
index 9a88721..3eab437 100644
--- a/build/b.cxx
+++ b/build/b.cxx
@@ -16,9 +16,10 @@
#include <iostream>
#include <system_error>
-#include <butl/version>
#include <butl/filesystem>
+#include <build/version>
+
#include <build/types>
#include <build/spec>
#include <build/operation>
@@ -66,7 +67,7 @@ main (int argc, char* argv[])
//
if (ops.version ())
{
- cout << "build2 0.1.0.a1" << endl
+ cout << "build2 " << BUILD_VERSION_STR<< endl
<< "libbutl " << LIBBUTL_VERSION_STR << endl
<< "Copyright (c) 2014-2015 Code Synthesis Ltd" << endl
<< "This is free software released under the MIT license." << endl;
diff --git a/build/version b/build/version
new file mode 100644
index 0000000..770cf99
--- /dev/null
+++ b/build/version
@@ -0,0 +1,39 @@
+// file : build/version -*- C++ -*-
+// copyright : Copyright (c) 2014-2015 Code Synthesis Ltd
+// license : MIT; see accompanying LICENSE file
+
+#ifndef BUILD_VERSION // Note: using the version macro itself.
+
+#include <butl/version> // LIBBUTL_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
+//
+
+// Generally, we expect minor versions to be source code backwards-
+// compatible, thought we might have a minimum version requirement.
+//
+// AABBCCDD
+#if (LIBBUTL_VERSION < 9901 || \
+ LIBBUTL_VERSION > 990000)
+# error incompatible libbutl version
+#endif
+
+// AABBCCDD
+#define BUILD_VERSION 9901
+#define BUILD_VERSION_STR "0.1.0.a1"
+
+#endif // BUILD_VERSION