Commit 8565e1b4 by Maarten L. Hekkelman

Better version string

parent bfc71337
......@@ -343,10 +343,11 @@ class version_info : public version_info_base
public:
using implementation_type = T;
protected:
version_info()
struct register_object
{
register_object()
{
auto &s_head = head();
auto &s_head = version_info_base::head();
static instance s_next{
implementation_type::name(),
implementation_type::version(),
......@@ -356,8 +357,16 @@ class version_info : public version_info_base
s_head };
s_head = &s_next;
}
};
template<register_object&> struct referrence_object;
static register_object s_registered_object;
static referrence_object<s_registered_object> s_referrenced_object;
};
template<typename T> typename version_info<T>::register_object version_info<T>::s_registered_object;
inline void write_version_string(std::ostream &os, bool verbose)
{
version_info_base::write(os, verbose);
......@@ -373,7 +382,7 @@ class version_info_@IDENT_PREFIX@impl : public version_info<version_info_@IDENT_
static constexpr int build_number() { return k@VAR_PREFIX@BuildNumber; }
static constexpr const char *git_tag() { return k@VAR_PREFIX@RevisionGitTag; }
static constexpr const char *revision_date() { return k@VAR_PREFIX@RevisionDate; }
} s_@IDENT_PREFIX@instance;
};
]])
configure_file("${VERSION_STRING_DATA}/${file_name}.in" "${dir}/${file_name}" @ONLY)
endfunction()
......
......@@ -56,7 +56,6 @@ extern CIFPP_EXPORT int VERBOSE;
// the git 'build' number
std::string get_version_nr();
// std::string get_version_date();
// --------------------------------------------------------------------
// Code helping with terminal i/o
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment