summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2014-12-08 16:21:15 +0100
committerKonstantin Käfer <mail@kkaefer.com>2014-12-08 16:21:15 +0100
commite11c073e518139ca1729ea1e4a76c215b9abca53 (patch)
tree655373dab92ecf9ed4a6b899468268b2fdf9b2f9 /scripts
parentd04d75abaee12bff4779b0e898dd04ec784d2c4f (diff)
downloadqtlocation-mapboxgl-e11c073e518139ca1729ea1e4a76c215b9abca53.tar.gz
report version number in user agent string
refs #628
Diffstat (limited to 'scripts')
-rw-r--r--scripts/build-version.py80
1 files changed, 80 insertions, 0 deletions
diff --git a/scripts/build-version.py b/scripts/build-version.py
new file mode 100644
index 0000000000..3b70f93749
--- /dev/null
+++ b/scripts/build-version.py
@@ -0,0 +1,80 @@
+#!/usr/bin/env python
+
+import sys, os, errno
+
+
+output_dir = sys.argv[1]
+tag = map(int, sys.argv[2].split('.'))
+rev = sys.argv[3]
+
+
+def mkdir_p(path):
+ try:
+ os.makedirs(path)
+ except OSError as exc: # Python >2.5
+ if exc.errno == errno.EEXIST and os.path.isdir(path):
+ pass
+ else: raise
+
+
+header = """// NOTE: DO NOT CHANGE THIS FILE. IT IS AUTOMATICALLY GENERATED.
+#ifndef MBGL_UTIL_VERSION
+#define MBGL_UTIL_VERSION
+
+#define MBGL_VERSION 0x{major:02x}{minor:02x}{patch:02x}
+#define MBGL_VERSION_STRING "{major}.{minor}.{patch}"
+#define MBGL_VERSION_MAJOR {major}
+#define MBGL_VERSION_MINOR {minor}
+#define MBGL_VERSION_PATCH {patch}
+#define MBGL_VERSION_REV "{rev}"
+
+namespace mbgl {{
+namespace version {{
+
+extern const int major, minor, patch;
+extern const char *revision;
+extern const char *string;
+extern const unsigned int number;
+
+}}
+}}
+
+#endif
+""".format(
+ major = tag[0],
+ minor = tag[1],
+ patch = tag[2],
+ rev = rev
+)
+
+header_path = os.path.join(output_dir, 'include/mbgl/util/version.hpp')
+mkdir_p(os.path.dirname(header_path))
+with open(header_path, 'w') as f: f.write(header)
+
+source = """// NOTE: DO NOT CHANGE THIS FILE. IT IS AUTOMATICALLY GENERATED.
+#include <mbgl/util/version.hpp>
+
+namespace mbgl {{
+namespace version {{
+
+const int major = {major};
+const int minor = {minor};
+const int patch = {patch};
+const char *revision = "{rev}";
+const char *string = "{major}.{minor}.{patch}";
+const unsigned int number = 0x{major:02x}{minor:02x}{patch:02x};
+
+}}
+}}
+""".format(
+ major = tag[0],
+ minor = tag[1],
+ patch = tag[2],
+ rev = rev
+)
+
+# Note: We can't use version.cpp since libuv already has a file named version.c.
+# Having another one here would overwrite that file and cause missing symbols errors.
+source_path = os.path.join(output_dir, 'src/mbgl/util/mbgl_version.cpp')
+mkdir_p(os.path.dirname(source_path))
+with open(source_path, 'w') as f: f.write(source)