Path: blob/main/contrib/llvm-project/lldb/source/Version/Version.cpp
39587 views
//===-- Version.cpp -------------------------------------------------------===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//78#include "lldb/Version/Version.h"9#include "VCSVersion.inc"10#include "lldb/Version/Version.inc"11#include "clang/Basic/Version.h"1213static const char *GetLLDBVersion() {14#ifdef LLDB_FULL_VERSION_STRING15return LLDB_FULL_VERSION_STRING;16#else17return "lldb version " LLDB_VERSION_STRING;18#endif19}2021static const char *GetLLDBRevision() {22#ifdef LLDB_REVISION23return LLDB_REVISION;24#else25return nullptr;26#endif27}2829static const char *GetLLDBRepository() {30#ifdef LLDB_REPOSITORY31return LLDB_REPOSITORY;32#else33return nullptr;34#endif35}3637const char *lldb_private::GetVersion() {38static std::string g_version_str;3940if (g_version_str.empty()) {41const char *lldb_version = GetLLDBVersion();42const char *lldb_repo = GetLLDBRepository();43const char *lldb_rev = GetLLDBRevision();44g_version_str += lldb_version;45if (lldb_repo || lldb_rev) {46g_version_str += " (";47if (lldb_repo)48g_version_str += lldb_repo;49if (lldb_repo && lldb_rev)50g_version_str += " ";51if (lldb_rev) {52g_version_str += "revision ";53g_version_str += lldb_rev;54}55g_version_str += ")";56}5758std::string clang_rev(clang::getClangRevision());59if (clang_rev.length() > 0) {60g_version_str += "\n clang revision ";61g_version_str += clang_rev;62}6364std::string llvm_rev(clang::getLLVMRevision());65if (llvm_rev.length() > 0) {66g_version_str += "\n llvm revision ";67g_version_str += llvm_rev;68}69}7071return g_version_str.c_str();72}737475