168 lines
3.6 KiB
C++
168 lines
3.6 KiB
C++
/**
|
|
* @file llversioninfo.cpp
|
|
* @brief Routines to access the viewer version and build information
|
|
* @author Martin Reddy
|
|
*
|
|
* $LicenseInfo:firstyear=2009&license=viewerlgpl$
|
|
* Second Life Viewer Source Code
|
|
* Copyright (C) 2010, Linden Research, Inc.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation;
|
|
* version 2.1 of the License only.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*
|
|
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
|
* $/LicenseInfo$
|
|
*/
|
|
|
|
#include "llviewerprecompiledheaders.h"
|
|
#include "llversioninfo.h"
|
|
|
|
#include "llversionviewer.h"
|
|
|
|
//
|
|
// Set the version numbers in indra/llcommon/llversionviewer.h
|
|
//
|
|
|
|
//static
|
|
S32 LLVersionInfo::getMajor()
|
|
{
|
|
return LL_VERSION_MAJOR;
|
|
}
|
|
|
|
//static
|
|
S32 LLVersionInfo::getMinor()
|
|
{
|
|
return LL_VERSION_MINOR;
|
|
}
|
|
|
|
//static
|
|
S32 LLVersionInfo::getPatch()
|
|
{
|
|
return LL_VERSION_PATCH;
|
|
}
|
|
|
|
//static
|
|
S32 LLVersionInfo::getBuild()
|
|
{
|
|
return LL_VERSION_BUILD;
|
|
}
|
|
|
|
//static
|
|
const std::string &LLVersionInfo::getVersion()
|
|
{
|
|
static std::string version("");
|
|
|
|
if (version.empty())
|
|
{
|
|
// cache the version string
|
|
std::ostringstream stream;
|
|
stream << LL_VERSION_MAJOR << "."
|
|
<< LL_VERSION_MINOR << "."
|
|
<< LL_VERSION_PATCH << "."
|
|
<< LL_VERSION_BUILD;
|
|
version = stream.str();
|
|
}
|
|
|
|
return version;
|
|
}
|
|
|
|
//static
|
|
const std::string &LLVersionInfo::getShortVersion()
|
|
{
|
|
static std::string version("");
|
|
|
|
if (version.empty())
|
|
{
|
|
// cache the version string
|
|
std::ostringstream stream;
|
|
stream << LL_VERSION_MAJOR << "."
|
|
<< LL_VERSION_MINOR << "."
|
|
<< LL_VERSION_PATCH;
|
|
version = stream.str();
|
|
}
|
|
|
|
return version;
|
|
}
|
|
|
|
namespace
|
|
{
|
|
/// Storage of the channel name the viewer is using.
|
|
// The channel name is set by hardcoded constant,
|
|
// or by calling LLVersionInfo::resetChannel()
|
|
std::string sWorkingChannelName(LL_CHANNEL);
|
|
|
|
// Storage for the "version and channel" string.
|
|
// This will get reset too.
|
|
std::string sVersionChannel("");
|
|
}
|
|
|
|
//static
|
|
const std::string &LLVersionInfo::getChannelAndVersion()
|
|
{
|
|
if (sVersionChannel.empty())
|
|
{
|
|
// cache the version string
|
|
std::ostringstream stream;
|
|
stream << LLVersionInfo::getChannel()
|
|
<< " "
|
|
<< LLVersionInfo::getVersion();
|
|
sVersionChannel = stream.str();
|
|
}
|
|
|
|
return sVersionChannel;
|
|
}
|
|
|
|
//static
|
|
const std::string &LLVersionInfo::getChannel()
|
|
{
|
|
return sWorkingChannelName;
|
|
}
|
|
|
|
void LLVersionInfo::resetChannel(const std::string& channel)
|
|
{
|
|
sWorkingChannelName = channel;
|
|
sVersionChannel.clear(); // Reset version and channel string til next use.
|
|
}
|
|
|
|
// [SL:KB] - Patch: Viewer-CrashReporting | Checked: 2011-05-08 (Catznip-2.6.0a) | Added: Catznip-2.6.0a
|
|
const char* getBuildPlatformString()
|
|
{
|
|
#if LL_WINDOWS
|
|
#ifndef _WIN64
|
|
return "Win32";
|
|
#else
|
|
return "Win64";
|
|
#endif // _WIN64
|
|
#elif LL_SDL
|
|
#if LL_GNUC
|
|
#if ( defined(__amd64__) || defined(__x86_64__) )
|
|
return "Linux64";
|
|
#else
|
|
return "Linux32";
|
|
#endif
|
|
#endif
|
|
#elif LL_DARWIN
|
|
return "Darwin";
|
|
#else
|
|
return "Unknown";
|
|
#endif
|
|
}
|
|
|
|
const std::string& LLVersionInfo::getBuildPlatform()
|
|
{
|
|
static std::string strPlatform = getBuildPlatformString();
|
|
return strPlatform;
|
|
}
|
|
// [/SL:KB]
|