mirror of
https://github.com/NGSolve/netgen.git
synced 2024-12-24 21:10:33 +05:00
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.
This commit is contained in:
parent
0a8bef493b
commit
40920f3ec3
@ -39,7 +39,7 @@ string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+\\-[0-9]+\\-([0-9a-z]+).*" "\\1"
|
||||
set(NETGEN_VERSION_SHORT ${NETGEN_VERSION_MAJOR}.${NETGEN_VERSION_MINOR}.${NETGEN_VERSION_PATCH})
|
||||
set(NETGEN_VERSION_LONG ${NETGEN_VERSION_SHORT}-${NETGEN_VERSION_TWEAK}-${NETGEN_VERSION_HASH})
|
||||
|
||||
if(NETGEN_VERSION_TWEAK)
|
||||
if(NETGEN_VERSION_TWEAK AND NOT NETGEN_VERSION_TWEAK STREQUAL git_version_string)
|
||||
# no release version - nightly build
|
||||
set(NETGEN_VERSION ${NETGEN_VERSION_LONG})
|
||||
else()
|
||||
|
Loading…
Reference in New Issue
Block a user