aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build/root.build2
-rw-r--r--buildfile5
-rw-r--r--manifest2
-rw-r--r--msvc-common/msvc-filter.cxx2
-rw-r--r--msvc-common/version-impl.in44
5 files changed, 53 insertions, 2 deletions
diff --git a/build/root.build b/build/root.build
index 47e4683..833ec58 100644
--- a/build/root.build
+++ b/build/root.build
@@ -10,3 +10,5 @@ hxx{*}: extension =
ixx{*}: extension = ixx
txx{*}: extension = txx
cxx{*}: extension = cxx
+
+cxx.poptions =+ "-I$src_root"
diff --git a/buildfile b/buildfile
index e496afd..c2d94e3 100644
--- a/buildfile
+++ b/buildfile
@@ -48,7 +48,10 @@ msvc-common/:
{
import libs = libbutl%lib{butl}
- exe{msvc-filter}: cxx{msvc-filter} $libs
+ exe{msvc-filter}: cxx{msvc-filter} hxx{version-impl} $libs
+
+ hxx{version-impl}: in{version-impl} $src_root/file{manifest}
+ hxx{version-impl}: dist = true
}
# Don't install INSTALL file.
diff --git a/manifest b/manifest
index 321fa0a..e8a9b54 100644
--- a/manifest
+++ b/manifest
@@ -12,4 +12,4 @@ build-email: builds@build2.org
requires: c++14
depends: * build2 >= 0.5.0-
depends: * bpkg >= 0.5.0-
-depends: libbutl == [0.5.0-b.0.1 0.5.0-b.1)
+depends: libbutl [0.5.0-b.0.1 0.5.0-b.1)
diff --git a/msvc-common/msvc-filter.cxx b/msvc-common/msvc-filter.cxx
index 85cd3b9..93e3ad4 100644
--- a/msvc-common/msvc-filter.cxx
+++ b/msvc-common/msvc-filter.cxx
@@ -20,6 +20,8 @@
#include <butl/process>
#include <butl/fdstream>
+#include <msvc-common/version-impl>
+
using namespace std;
using namespace butl;
diff --git a/msvc-common/version-impl.in b/msvc-common/version-impl.in
new file mode 100644
index 0000000..3e787f3
--- /dev/null
+++ b/msvc-common/version-impl.in
@@ -0,0 +1,44 @@
+// file : msvc-common/version-impl.in -*- C++ -*-
+// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+// license : MIT; see accompanying LICENSE file
+
+#ifndef MSVC_FILTER_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 MSVC_FILTER_VERSION $msvc-linux.version.project_number$ULL
+#define MSVC_FILTER_VERSION_STR "$msvc-linux.version.project$"
+#define MSVC_FILTER_VERSION_ID "$msvc-linux.version.project_id$"
+
+#define MSVC_FILTER_VERSION_MAJOR $msvc-linux.version.major$
+#define MSVC_FILTER_VERSION_MINOR $msvc-linux.version.minor$
+#define MSVC_FILTER_VERSION_PATCH $msvc-linux.version.patch$
+
+#define MSVC_FILTER_PRE_RELEASE $msvc-linux.version.pre_release$
+
+#define MSVC_FILTER_SNAPSHOT $msvc-linux.version.snapshot_sn$ULL
+#define MSVC_FILTER_SNAPSHOT_ID "$msvc-linux.version.snapshot_id$"
+
+#include <butl/version>
+
+$libbutl.check(LIBBUTL_VERSION, LIBBUTL_SNAPSHOT)$
+
+#endif // MSVC_FILTER_VERSION