mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-10 10:01:42 +00:00
23fdd5a37f
Previously, there were two different scripts for generating VCS headers: one used by LLVM and one used by Clang and lldb. They were both similar, but different. They were both broken in their own ways, for example the one used by Clang didn't properly handle monorepo resulting in an incorrect version information reported by Clang. This change unifies two the scripts by introducing a new script that's used from both LLVM, Clang and lldb, ensures that the new script supports both monorepo and standalone SVN and Git setups, and removes the old scripts. Differential Revision: https://reviews.llvm.org/D57063 llvm-svn: 353268
77 lines
1.9 KiB
C++
77 lines
1.9 KiB
C++
//===-- lldb.cpp ------------------------------------------------*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "lldb/lldb-private.h"
|
|
|
|
using namespace lldb;
|
|
using namespace lldb_private;
|
|
|
|
#include "clang/Basic/Version.h"
|
|
|
|
#ifdef HAVE_VCS_VERSION_INC
|
|
#include "VCSVersion.inc"
|
|
#endif
|
|
|
|
#ifdef HAVE_APPLE_VERSION_INC
|
|
#include "AppleVersion.inc"
|
|
#endif
|
|
|
|
static const char *GetLLDBRevision() {
|
|
#ifdef LLDB_REVISION
|
|
return LLDB_REVISION;
|
|
#else
|
|
return NULL;
|
|
#endif
|
|
}
|
|
|
|
static const char *GetLLDBRepository() {
|
|
#ifdef LLDB_REPOSITORY
|
|
return LLDB_REPOSITORY;
|
|
#else
|
|
return NULL;
|
|
#endif
|
|
}
|
|
|
|
#define QUOTE(str) #str
|
|
#define EXPAND_AND_QUOTE(str) QUOTE(str)
|
|
|
|
const char *lldb_private::GetVersion() {
|
|
// On platforms other than Darwin, report a version number in the same style
|
|
// as the clang tool.
|
|
static std::string g_version_str;
|
|
if (g_version_str.empty()) {
|
|
g_version_str += "lldb version ";
|
|
g_version_str += CLANG_VERSION_STRING;
|
|
|
|
const char *lldb_repo = GetLLDBRepository();
|
|
const char *lldb_rev = GetLLDBRevision();
|
|
if (lldb_repo || lldb_rev) {
|
|
g_version_str += " (";
|
|
if (lldb_repo)
|
|
g_version_str += lldb_repo;
|
|
if (lldb_rev) {
|
|
g_version_str += " revision ";
|
|
g_version_str += lldb_rev;
|
|
}
|
|
g_version_str += ")";
|
|
}
|
|
|
|
std::string clang_rev(clang::getClangRevision());
|
|
if (clang_rev.length() > 0) {
|
|
g_version_str += "\n clang revision ";
|
|
g_version_str += clang_rev;
|
|
}
|
|
std::string llvm_rev(clang::getLLVMRevision());
|
|
if (llvm_rev.length() > 0) {
|
|
g_version_str += "\n llvm revision ";
|
|
g_version_str += llvm_rev;
|
|
}
|
|
}
|
|
return g_version_str.c_str();
|
|
}
|