diff options
author | chriseth <c@ethdev.com> | 2015-10-06 20:13:07 +0800 |
---|---|---|
committer | chriseth <c@ethdev.com> | 2015-10-06 20:20:06 +0800 |
commit | 99351aebe0c9ebbb06e34c18ecc19bc0c87d9d54 (patch) | |
tree | fd0c7d5797454be93d4c767142ed6042ebf4d00f /libsolidity/Version.cpp | |
parent | 44e42bf52e481f4f653a669291812b4d31f06022 (diff) | |
download | dexon-solidity-99351aebe0c9ebbb06e34c18ecc19bc0c87d9d54.tar dexon-solidity-99351aebe0c9ebbb06e34c18ecc19bc0c87d9d54.tar.gz dexon-solidity-99351aebe0c9ebbb06e34c18ecc19bc0c87d9d54.tar.bz2 dexon-solidity-99351aebe0c9ebbb06e34c18ecc19bc0c87d9d54.tar.lz dexon-solidity-99351aebe0c9ebbb06e34c18ecc19bc0c87d9d54.tar.xz dexon-solidity-99351aebe0c9ebbb06e34c18ecc19bc0c87d9d54.tar.zst dexon-solidity-99351aebe0c9ebbb06e34c18ecc19bc0c87d9d54.zip |
Compiler version stamp.
Diffstat (limited to 'libsolidity/Version.cpp')
-rw-r--r-- | libsolidity/Version.cpp | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/libsolidity/Version.cpp b/libsolidity/Version.cpp index c6b5c509..09a6d84b 100644 --- a/libsolidity/Version.cpp +++ b/libsolidity/Version.cpp @@ -22,16 +22,19 @@ #include <libsolidity/Version.h> #include <string> +#include <libdevcore/CommonData.h> +#include <libdevcore/Common.h> #include <libevmasm/Version.h> +#include <libsolidity/Utils.h> #include <solidity/BuildInfo.h> -#include <libdevcore/Common.h> using namespace dev; using namespace dev::solidity; using namespace std; char const* dev::solidity::VersionNumber = ETH_PROJECT_VERSION; -extern string const dev::solidity::VersionString = + +string const dev::solidity::VersionString = string(dev::solidity::VersionNumber) + "-" + string(DEV_QUOTED(ETH_COMMIT_HASH)).substr(0, 8) + @@ -39,3 +42,32 @@ extern string const dev::solidity::VersionString = "/" DEV_QUOTED(ETH_BUILD_TYPE) "-" DEV_QUOTED(ETH_BUILD_PLATFORM) " linked to libethereum-" + eth::VersionStringLibEvmAsm; + +bytes dev::solidity::binaryVersion() +{ + bytes ret{0}; + size_t i = 0; + auto parseDecimal = [&]() + { + size_t ret = 0; + solAssert('0' <= VersionString[i] && VersionString[i] <= '9', ""); + for (; i < VersionString.size() && '0' <= VersionString[i] && VersionString[i] <= '9'; ++i) + ret = ret * 10 + (VersionString[i] - '0'); + return ret; + }; + ret.push_back(byte(parseDecimal())); + solAssert(i < VersionString.size() && VersionString[i] == '.', ""); + ++i; + ret.push_back(byte(parseDecimal())); + solAssert(i < VersionString.size() && VersionString[i] == '.', ""); + ++i; + ret.push_back(byte(parseDecimal())); + solAssert(i < VersionString.size() && VersionString[i] == '-', ""); + ++i; + solAssert(i + 7 < VersionString.size(), ""); + ret += fromHex(VersionString.substr(i, 8)); + solAssert(ret.size() == 1 + 3 + 4, ""); + + return ret; +} + |