ssrf-version.h and rebuilding

Lubomir I. Ivanov neolit123 at gmail.com
Fri Feb 6 13:41:50 PST 2015


hello,

in terms of our current scheme for updating ssrf-version.h, with each
git HEAD change one potential small issue is present where the macros
from the file itself are used on compile time by a number of files.
this forces recompilation of said files into object code even if they
effectively search for the same literals in the pool of the
executable.

to solve the issue, i suggest the introduction of a version.c /
version.h pair which is a simple abstraction layer on top of the
generated ssrf-version.h. (more files, i know...)

by changing the git HEAD, version.c will be the only object code that
has to be recompiled and the file itself will hold a simple API in the
lines of:

const char *get_version();
const char *get_version_git();
const char *get_version_canonical();

it will be exposed via version.h and such that all the affected files
can use instead of the macros. the macros will be still available via
ssrf-version.h, but should not be used directly, especially in
complicated C++/Qt files.

what this will do is to ensure that a version string is only retrieved
via a controlled branch (i.e. one of the 3 functions above). such
branches will be the only direct access points to the literal pool and
thus the recompilation process will be simplified.

will such a patch be accepted? comments?

lubomir
--


More information about the subsurface mailing list