Commit 8565e1b4 by Maarten L. Hekkelman

Better version string

parent bfc71337
...@@ -343,21 +343,30 @@ class version_info : public version_info_base ...@@ -343,21 +343,30 @@ class version_info : public version_info_base
public: public:
using implementation_type = T; using implementation_type = T;
protected: struct register_object
version_info()
{ {
auto &s_head = head(); register_object()
static instance s_next{ {
implementation_type::name(), auto &s_head = version_info_base::head();
implementation_type::version(), static instance s_next{
implementation_type::build_number(), implementation_type::name(),
implementation_type::git_tag(), implementation_type::version(),
implementation_type::revision_date(), implementation_type::build_number(),
s_head }; implementation_type::git_tag(),
s_head = &s_next; implementation_type::revision_date(),
} 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) inline void write_version_string(std::ostream &os, bool verbose)
{ {
version_info_base::write(os, verbose); version_info_base::write(os, verbose);
...@@ -373,7 +382,7 @@ class version_info_@IDENT_PREFIX@impl : public version_info<version_info_@IDENT_ ...@@ -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 int build_number() { return k@VAR_PREFIX@BuildNumber; }
static constexpr const char *git_tag() { return k@VAR_PREFIX@RevisionGitTag; } static constexpr const char *git_tag() { return k@VAR_PREFIX@RevisionGitTag; }
static constexpr const char *revision_date() { return k@VAR_PREFIX@RevisionDate; } 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) configure_file("${VERSION_STRING_DATA}/${file_name}.in" "${dir}/${file_name}" @ONLY)
endfunction() endfunction()
......
...@@ -56,7 +56,6 @@ extern CIFPP_EXPORT int VERBOSE; ...@@ -56,7 +56,6 @@ extern CIFPP_EXPORT int VERBOSE;
// the git 'build' number // the git 'build' number
std::string get_version_nr(); std::string get_version_nr();
// std::string get_version_date();
// -------------------------------------------------------------------- // --------------------------------------------------------------------
// Code helping with terminal i/o // 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