Skip to content

Conversation

catap
Copy link

@catap catap commented Dec 7, 2022

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.

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant