You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

66 lines
1.9 KiB

/**
* @file: storm-version.h
* @author: Sebastian Junges
*
* @since October 7, 2014
*/
#pragma once
#include <string>
#include <sstream>
namespace storm
{
namespace utility {
struct StormVersion
{
/// The major version of StoRM
const static unsigned versionMajor;
/// The minor version of StoRM
const static unsigned versionMinor;
/// The patch version of StoRM
const static unsigned versionPatch;
/// The short hash of the git commit this build is bases on
const static std::string gitRevisionHash;
/// How many commits passed since the tag was last set
const static unsigned commitsAhead;
/// 0 iff there no files were modified in the checkout, 1 else
const static unsigned dirty;
/// The system which has compiled storm
const static std::string systemName;
/// The system version which has compiled storm
const static std::string systemVersion;
/// The build type that was used to build storm
const static std::string buildType;
/// The compiler version that was used to build storm
const static std::string cxxCompiler;
static std::string shortVersionString() {
std::stringstream sstream;
sstream << "StoRM " << versionMajor << "." << versionMinor << "." << versionPatch;
return sstream.str();
}
static std::string longVersionString() {
std::stringstream sstream;
sstream << "Version: " << versionMajor << "." << versionMinor << "." << versionPatch;
if (commitsAhead != 0) {
sstream << " (+" << commitsAhead << " commits)";
}
sstream << " build from revision " << gitRevisionHash;
if (dirty == 1) {
sstream << " (DIRTY)";
}
sstream << "." << std::endl;
return sstream.str();
}
static std::string buildInfo() {
std::stringstream sstream;
sstream << "Compiled on " << systemName << " " << systemVersion << ",";
sstream << "using " << cxxCompiler << " with " << buildType << " flags.";
return sstream.str();
}
};
}
}