netgen
netgen copied to clipboard
Prevent creating malformed version
Let assume that I run a cmake with option -DNETGEN_VERSION_GIT="v6.2.2204" (or without this option at all) to avoid calling git which won't work when I've downloaded sources from GitHub as .zip file.
If I try to compile sources and run it, it fails with error like:
libc++abi: terminating with uncaught exception of type std::invalid_argument: stoi: no conversion
after some digging I've discovered that netgen_version.hpp looks like:
#ifndef NETGEN_VERSION_HPP_INCLUDED
#define NETGEN_VERSION_HPP_INCLUDED
#define NETGEN_VERSION "6.2.0-v6.2.0.0-v6.2.0.0"
#define NETGEN_VERSION_MAJOR 6
#define NETGEN_VERSION_MINOR 2
#define NETGEN_VERSION_PATCH 0
#define NETGEN_VERSION_TWEAK v6.2.0.0
#define NETGEN_VERSION_HASH "v6.2.0.0"
#endif // NETGEN_VERSION_HPP_INCLUDED
This is happened because string(REGEX REPLACE copied original string to target and replaces it by regex. If regex doesn't match => it still copied an original value.
So, this commit prevented this mess from happened.