Update versioning

This commit is contained in:
Arkshine
2014-12-08 01:39:10 +01:00
parent 2bba5ce69a
commit 3594c11238
7 changed files with 154 additions and 66 deletions

View File

@ -13,7 +13,7 @@ argv = [
os.path.join(builder.buildPath, 'includes'),
]
outputs = [
os.path.join(builder.buildFolder, 'includes', 'amxmodx_version.h'),
os.path.join(builder.buildFolder, 'includes', 'amxmodx_version_auto.h'),
os.path.join(builder.buildFolder, 'includes', 'amxmodx_version.inc'),
]

View File

@ -60,29 +60,27 @@ def output_version_headers():
if tag != "":
fullstring += "-{0}".format(tag)
if tag == "dev":
fullstring += "+{0}".format(shorthash)
fullstring += "+{0}".format(count)
with open(os.path.join(OutputFolder, 'amxmodx_version.h'), 'w') as fp:
with open(os.path.join(OutputFolder, 'amxmodx_version_auto.h'), 'w') as fp:
fp.write("""
#ifndef _AMXMODX_AUTO_VERSION_INFORMATION_H_
#define _AMXMODX_AUTO_VERSION_INFORMATION_H_
#define SVN_VERSION_STRING "{fullstring}"
#define SVN_VERSION_DWORD {major}, {minor}, {release}, 0
#define SVN_VERSION_PRODUCT "{product}"
#define SVN_VERSION SVN_VERSION_STRING
#define SVN_BUILD_ID "{count}:{longhash}"
#define AMXX_BUILD_TAG \"{0}\"
#define AMXX_BUILD_CSET \"{1}\"
#define AMXX_BUILD_MAJOR \"{2}\"
#define AMXX_BUILD_MINOR \"{3}\"
#define AMXX_BUILD_RELEASE \"{4}\"
#define AMXX_BUILD_LOCAL_REV \"{6}\"
#define AMXX_BUILD_UNIQUEID "{6}:" AMXX_BUILD_CSET
#define AMXX_VERSION_STRING \"{5}\"
#define AMXX_VERSION_FILE {2},{3},{4},0
#endif // _AMXMODX_AUTO_VERSION_INFORMATION_H_
""".format(
fullstring = fullstring,
major = major,
minor = minor,
release = release,
product = product,
count = count,
longhash = longhash
))
""".format(tag, shorthash, major, minor, release, fullstring, count))
version_num = int(major) * 100 + int(minor) * 10 + int(release)
with open(os.path.join(OutputFolder, 'amxmodx_version.inc'), 'w') as fp:
@ -92,13 +90,23 @@ def output_version_headers():
#endif
#define _amxmodx_version_included
#define AMXX_VERSION {major}.{minor}{release}
#define AMXX_VERSION_NUM {version_num}
#define AMXX_VERSION_TAG \"{tag}\"
#define AMXX_VERSION_CSET \"{shorthash}\"
#define AMXX_VERSION_MAJOR \"{major}\"
#define AMXX_VERSION_MINOR \"{minor}\"
#define AMXX_VERSION_RELEASE \"{release}\"
#define AMXX_VERSION_LOCAL_REV \"{count}\"
#define AMXX_VERSION {major}.{minor}{release}
#define AMXX_VERSION_NUM {version_num}
stock const AMXX_VERSION_STR[] = "{fullstring}";
""".format(
tag = tag,
shorthash = shorthash,
major = major,
minor = minor,
release = release,
count = count,
version_num = version_num,
fullstring = fullstring
))

View File

@ -0,0 +1,15 @@
# vim: sts=2 ts=8 sw=2 tw=99 et ft=python:
import os
lib = builder.compiler.StaticLibrary('version')
lib.compiler.includes += [
os.path.join(builder.sourcePath, 'public'),
]
lib.compiler.defines.remove('AMXX_USE_VERSIONLIB')
lib.compiler.sourcedeps += AMXX.generated_headers
lib.sources += [
'versionlib.cpp'
]
task = builder.Add(lib)
rvalue = task.binary

View File

@ -0,0 +1,8 @@
#include <amxmodx_version.h>
#include <versionlib.h>
const char *AMXX_LOCAL_REV = AMXX_BUILD_LOCAL_REV;
const char *AMXX_SHA = AMXX_BUILD_CSET;
const char *AMXX_VERSION = AMXX_VERSION_STRING;
const char *AMXX_BUILD_TIME = __DATE__ " " __TIME__;

View File

@ -0,0 +1,24 @@
#ifndef _INCLUDE_AMXX_VERSIONLIB_H_
#define _INCLUDE_AMXX_VERSIONLIB_H_
#if !defined(AMXX_USE_VERSIONLIB)
// These get defined in amxmodx_version.h since
// versionlib does not use versionlib.
#undef AMXX_LOCAL_REV
#undef AMXX_CSET
#undef AMXX_VERSION
#undef AMXX_BUILD_TIME
#endif
#ifdef __cplusplus
#define EXTERN_C extern "C"
#else
#define EXTERN_C extern
#endif
EXTERN_C const char *AMXX_LOCAL_REV;
EXTERN_C const char *AMXX_SHA;
EXTERN_C const char *AMXX_VERSION;
EXTERN_C const char *AMXX_BUILD_TIME;
#endif // _INCLUDE_AMXX_VERSIONLIB_H_