summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--odb/odb/generator.cxx4
-rw-r--r--odb/odb/odb.cxx9
-rw-r--r--odb/odb/version.hxx.in4
3 files changed, 17 insertions, 0 deletions
diff --git a/odb/odb/generator.cxx b/odb/odb/generator.cxx
index 6348234..f0b92ab 100644
--- a/odb/odb/generator.cxx
+++ b/odb/odb/generator.cxx
@@ -519,8 +519,12 @@ generate (options const& ops,
//
hxx << "#include <odb/version.hxx>" << endl
<< endl
+#if 1
+ << "#if ODB_VERSION != " << ODB_VERSION << "UL" << endl
+#else
<< "#if LIBODB_VERSION_FULL != " << ODB_COMPILER_VERSION << "ULL || \\" << endl
<< " LIBODB_SNAPSHOT != " << ODB_COMPILER_SNAPSHOT << "ULL" << endl
+#endif
<< "#error ODB runtime version mismatch" << endl
<< "#endif" << endl
<< endl;
diff --git a/odb/odb/odb.cxx b/odb/odb/odb.cxx
index 2f2a75d..9899262 100644
--- a/odb/odb/odb.cxx
+++ b/odb/odb/odb.cxx
@@ -955,10 +955,19 @@ main (int argc, char* argv[])
// version is a pre-release but having it always won't hurt (it
// will be 0 for final versions).
//
+ // After some experience with requiring the exact version match we
+ // found it just too tedious and went back to only comparing the
+ // interface version (we could support both with an option; see
+ // also similar code in generator.cxx).
+ //
os << "#include <odb/version.hxx>" << endl
<< endl
+#if 1
+ << "#if ODB_VERSION != " << ODB_VERSION << "UL" << endl
+#else
<< "#if LIBODB_VERSION_FULL != " << ODB_COMPILER_VERSION << "ULL"
" || LIBODB_SNAPSHOT != " << ODB_COMPILER_SNAPSHOT << "ULL" << endl
+#endif
<< "# error incompatible ODB compiler and runtime " <<
"versions" << endl
<< "#endif" << endl
diff --git a/odb/odb/version.hxx.in b/odb/odb/version.hxx.in
index a131c03..2bf2ae7 100644
--- a/odb/odb/version.hxx.in
+++ b/odb/odb/version.hxx.in
@@ -47,4 +47,8 @@
//
#define ODB_COMPILER_VERSION_OLD 2049976
+// ODB interface version: minor, major, and alpha/beta versions.
+//
+#define ODB_VERSION 20476
+
#endif // ODB_COMPILER_VERSION