diff --git a/lldb/include/lldb/Version/Version.h b/lldb/include/lldb/Version/Version.h deleted file mode 100644 index 15b613560187a..0000000000000 --- a/lldb/include/lldb/Version/Version.h +++ /dev/null @@ -1,23 +0,0 @@ -//===-- Version.h -----------------------------------------------*- 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 -// -//===----------------------------------------------------------------------===// - -#ifndef LLDB_VERSION_VERSION_H -#define LLDB_VERSION_VERSION_H - -#include - -namespace lldb_private { - -/// Retrieves a string representing the complete LLDB version, which includes -/// the lldb version number, as well as embedded compiler versions and the -/// vendor tag. -const char *GetVersion(); - -} // namespace lldb_private - -#endif // LLDB_VERSION_VERSION_H diff --git a/lldb/include/lldb/Version/Version.inc.in b/lldb/include/lldb/Version/Version.inc.in deleted file mode 100644 index 5098bb1c2be5a..0000000000000 --- a/lldb/include/lldb/Version/Version.inc.in +++ /dev/null @@ -1,6 +0,0 @@ -#define LLDB_VERSION @LLDB_VERSION@ -#define LLDB_VERSION_STRING "@LLDB_VERSION@" -#define LLDB_VERSION_MAJOR @LLDB_VERSION_MAJOR@ -#define LLDB_VERSION_MINOR @LLDB_VERSION_MINOR@ -#define LLDB_VERSION_PATCHLEVEL @LLDB_VERSION_PATCHLEVEL@ -#cmakedefine LLDB_FULL_VERSION_STRING "@LLDB_FULL_VERSION_STRING@" diff --git a/lldb/include/lldb/lldb-private.h b/lldb/include/lldb/lldb-private.h index ac07047fb4edb..d65773aecd6d6 100644 --- a/lldb/include/lldb/lldb-private.h +++ b/lldb/include/lldb/lldb-private.h @@ -17,6 +17,12 @@ #include "lldb/lldb-private-types.h" #include "lldb/lldb-public.h" +namespace lldb_private { + +const char *GetVersion(); + +} // namespace lldb_private + #endif // defined(__cplusplus) #endif // LLDB_LLDB_PRIVATE_H diff --git a/lldb/source/API/CMakeLists.txt b/lldb/source/API/CMakeLists.txt index af69f7bbce098..429a322c5d226 100644 --- a/lldb/source/API/CMakeLists.txt +++ b/lldb/source/API/CMakeLists.txt @@ -104,6 +104,7 @@ add_lldb_library(liblldb SHARED ${option_framework} ${lldb_lua_wrapper} LINK_LIBS + lldbBase lldbBreakpoint lldbCore lldbDataFormatters @@ -114,7 +115,6 @@ add_lldb_library(liblldb SHARED ${option_framework} lldbSymbol lldbTarget lldbUtility - lldbVersion ${LLDB_ALL_PLUGINS} ## BEGIN SWIFT ${SWIFT_ALL_LIBS} diff --git a/lldb/source/API/SBDebugger.cpp b/lldb/source/API/SBDebugger.cpp index 3aa38febed74f..3223d260680c1 100644 --- a/lldb/source/API/SBDebugger.cpp +++ b/lldb/source/API/SBDebugger.cpp @@ -11,6 +11,8 @@ #include "lldb/API/SBDebugger.h" +#include "lldb/lldb-private.h" + #include "lldb/API/SBBroadcaster.h" #include "lldb/API/SBCommandInterpreter.h" #include "lldb/API/SBCommandInterpreterRunOptions.h" @@ -50,7 +52,6 @@ #include "lldb/Target/TargetList.h" #include "lldb/Utility/Args.h" #include "lldb/Utility/State.h" -#include "lldb/Version/Version.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/StringRef.h" diff --git a/lldb/source/API/SBReproducer.cpp b/lldb/source/API/SBReproducer.cpp index 3bd82df5c9065..68e632da1bde9 100644 --- a/lldb/source/API/SBReproducer.cpp +++ b/lldb/source/API/SBReproducer.cpp @@ -23,7 +23,7 @@ #include "lldb/API/SBHostOS.h" #include "lldb/API/SBReproducer.h" #include "lldb/Host/FileSystem.h" -#include "lldb/Version/Version.h" +#include "lldb/lldb-private.h" using namespace lldb; using namespace lldb_private; diff --git a/lldb/source/CMakeLists.txt b/lldb/source/CMakeLists.txt index 54e7903580662..56ea8342be4e8 100644 --- a/lldb/source/CMakeLists.txt +++ b/lldb/source/CMakeLists.txt @@ -1,5 +1,41 @@ -include_directories(${CMAKE_CURRENT_SOURCE_DIR}) -include_directories(${CMAKE_CURRENT_BINARY_DIR}) +include_directories(.) + +set(lldbBase_SOURCES + lldb.cpp + ) + + +find_first_existing_vc_file("${LLDB_SOURCE_DIR}" lldb_vc) + +set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/VCSVersion.inc") +set(generate_vcs_version_script "${LLVM_CMAKE_PATH}/GenerateVersionFromVCS.cmake") + +if(lldb_vc AND LLVM_APPEND_VC_REV) + set(lldb_source_dir ${LLDB_SOURCE_DIR}) +endif() + +add_custom_command(OUTPUT "${version_inc}" + DEPENDS "${lldb_vc}" "${generate_vcs_version_script}" + COMMAND ${CMAKE_COMMAND} "-DNAMES=LLDB" + "-DLLDB_SOURCE_DIR=${lldb_source_dir}" + "-DHEADER_FILE=${version_inc}" + -P "${generate_vcs_version_script}") + +# Mark the generated header as being generated. +set_source_files_properties("${version_inc}" + PROPERTIES GENERATED TRUE + HEADER_FILE_ONLY TRUE) + +list(APPEND lldbBase_SOURCES ${version_inc}) + +if(LLDB_VERSION_STRING) + set_property(SOURCE lldb.cpp APPEND PROPERTY + COMPILE_DEFINITIONS "LLDB_VERSION_STRING=${LLDB_VERSION_STRING}") +endif() + +add_lldb_library(lldbBase + ${lldbBase_SOURCES} + ) add_subdirectory(Breakpoint) add_subdirectory(Commands) @@ -13,7 +49,6 @@ add_subdirectory(Plugins) add_subdirectory(Symbol) add_subdirectory(Target) add_subdirectory(Utility) -add_subdirectory(Version) # Build API last. Since liblldb needs to link against every other target, it needs # those targets to have already been created. diff --git a/lldb/source/Commands/CMakeLists.txt b/lldb/source/Commands/CMakeLists.txt index e8618f3be56ed..e8c3ef688596c 100644 --- a/lldb/source/Commands/CMakeLists.txt +++ b/lldb/source/Commands/CMakeLists.txt @@ -42,6 +42,7 @@ add_lldb_library(lldbCommands CommandOptionsProcessLaunch.cpp LINK_LIBS + lldbBase lldbBreakpoint lldbCore lldbDataFormatters @@ -51,7 +52,6 @@ add_lldb_library(lldbCommands lldbSymbol lldbTarget lldbUtility - lldbVersion LINK_COMPONENTS Support diff --git a/lldb/source/Commands/CommandObjectVersion.cpp b/lldb/source/Commands/CommandObjectVersion.cpp index e15faba5661e7..20c2d25b745c7 100644 --- a/lldb/source/Commands/CommandObjectVersion.cpp +++ b/lldb/source/Commands/CommandObjectVersion.cpp @@ -9,7 +9,7 @@ #include "CommandObjectVersion.h" #include "lldb/Interpreter/CommandReturnObject.h" -#include "lldb/Version/Version.h" +#include "lldb/lldb-private.h" using namespace lldb; using namespace lldb_private; diff --git a/lldb/source/Initialization/SystemInitializerCommon.cpp b/lldb/source/Initialization/SystemInitializerCommon.cpp index 1c8406f687844..84c5a472332aa 100644 --- a/lldb/source/Initialization/SystemInitializerCommon.cpp +++ b/lldb/source/Initialization/SystemInitializerCommon.cpp @@ -15,7 +15,7 @@ #include "lldb/Utility/Log.h" #include "lldb/Utility/ReproducerProvider.h" #include "lldb/Utility/Timer.h" -#include "lldb/Version/Version.h" +#include "lldb/lldb-private.h" #if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) #include "Plugins/Process/POSIX/ProcessPOSIXLog.h" diff --git a/lldb/source/Version/CMakeLists.txt b/lldb/source/Version/CMakeLists.txt deleted file mode 100644 index 4d66761739ae2..0000000000000 --- a/lldb/source/Version/CMakeLists.txt +++ /dev/null @@ -1,42 +0,0 @@ -if(LLDB_VERSION_STRING) - set(LLDB_FULL_VERSION_STRING LLDB_VERSION_STRING) -endif() - -# Configure the VCSVersion.inc file. -set(vcs_version_inc "${CMAKE_CURRENT_BINARY_DIR}/VCSVersion.inc") -set(generate_vcs_version_script "${LLVM_CMAKE_DIR}/GenerateVersionFromVCS.cmake") - -find_first_existing_vc_file("${LLDB_SOURCE_DIR}" lldb_vc) - -if(lldb_vc AND LLVM_APPEND_VC_REV) - set(lldb_source_dir ${LLDB_SOURCE_DIR}) -endif() - -add_custom_command(OUTPUT "${vcs_version_inc}" - DEPENDS "${lldb_vc}" "${generate_vcs_version_script}" - COMMAND ${CMAKE_COMMAND} "-DNAMES=LLDB" - "-DLLDB_SOURCE_DIR=${lldb_source_dir}" - "-DHEADER_FILE=${vcs_version_inc}" - -P "${generate_vcs_version_script}") - -set_source_files_properties("${vcs_version_inc}" - PROPERTIES GENERATED TRUE - HEADER_FILE_ONLY TRUE) - -# Configure the Version.inc file. -set(version_inc "${LLDB_BINARY_DIR}/include/lldb/Version/Version.inc") - -configure_file( - ${LLDB_SOURCE_DIR}/include/lldb/Version/Version.inc.in - ${version_inc}) - -set_source_files_properties("${version_inc}" - PROPERTIES GENERATED TRUE - HEADER_FILE_ONLY TRUE) - -include_directories(${CMAKE_CURRENT_BINARY_DIR}) - -add_lldb_library(lldbVersion - Version.cpp - ${vcs_version_inc} - ${version_inc}) diff --git a/lldb/source/Version/Version.cpp b/lldb/source/lldb.cpp similarity index 81% rename from lldb/source/Version/Version.cpp rename to lldb/source/lldb.cpp index bf2a715d274d5..0c3eab8f43665 100644 --- a/lldb/source/Version/Version.cpp +++ b/lldb/source/lldb.cpp @@ -1,4 +1,4 @@ -//===-- Version.cpp -------------------------------------------------------===// +//===-- lldb.cpp ----------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. @@ -6,18 +6,25 @@ // //===----------------------------------------------------------------------===// -#include "lldb/Version/Version.h" #include "VCSVersion.inc" -#include "lldb/Version/Version.inc" +#include "lldb/lldb-private.h" #include "clang/Basic/Version.h" #ifdef LLDB_ENABLE_SWIFT #include "swift/Basic/Version.h" #endif // LLDB_ENABLE_SWIFT +using namespace lldb; +using namespace lldb_private; + +// LLDB_VERSION_STRING is set through a define so unlike the other defines +// expanded with CMake, it lacks the double quotes. +#define QUOTE(str) #str +#define EXPAND_AND_QUOTE(str) QUOTE(str) + static const char *GetLLDBVersion() { -#ifdef LLDB_FULL_VERSION_STRING - return LLDB_FULL_VERSION_STRING; +#ifdef LLDB_VERSION_STRING + return EXPAND_AND_QUOTE(LLDB_VERSION_STRING); #else return "lldb version " CLANG_VERSION_STRING; #endif @@ -27,7 +34,7 @@ static const char *GetLLDBRevision() { #ifdef LLDB_REVISION return LLDB_REVISION; #else - return nullptr; + return NULL; #endif } @@ -35,13 +42,12 @@ static const char *GetLLDBRepository() { #ifdef LLDB_REPOSITORY return LLDB_REPOSITORY; #else - return nullptr; + return NULL; #endif } const char *lldb_private::GetVersion() { static std::string g_version_str; - if (g_version_str.empty()) { const char *lldb_version = GetLLDBVersion(); const char *lldb_repo = GetLLDBRepository(); @@ -72,14 +78,12 @@ const char *lldb_private::GetVersion() { 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; } -#endif +#endif // LLDB_ENABLE_SWIFT } - return g_version_str.c_str(); } diff --git a/lldb/tools/lldb-server/CMakeLists.txt b/lldb/tools/lldb-server/CMakeLists.txt index 3fb22b0a61098..9ed259295a300 100644 --- a/lldb/tools/lldb-server/CMakeLists.txt +++ b/lldb/tools/lldb-server/CMakeLists.txt @@ -46,9 +46,9 @@ add_lldb_tool(lldb-server SystemInitializerLLGS.cpp LINK_LIBS + lldbBase lldbHost lldbInitialization - lldbVersion ${LLDB_PLUGINS} lldbPluginInstructionARM lldbPluginInstructionMIPS diff --git a/lldb/tools/lldb-server/lldb-server.cpp b/lldb/tools/lldb-server/lldb-server.cpp index 1808ffc0c9790..1e001ac7185b8 100644 --- a/lldb/tools/lldb-server/lldb-server.cpp +++ b/lldb/tools/lldb-server/lldb-server.cpp @@ -8,7 +8,7 @@ #include "SystemInitializerLLGS.h" #include "lldb/Initialization/SystemLifetimeManager.h" -#include "lldb/Version/Version.h" +#include "lldb/lldb-private.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/StringRef.h" diff --git a/lldb/tools/lldb-test/CMakeLists.txt b/lldb/tools/lldb-test/CMakeLists.txt index fa21886d99022..562905760e2c8 100644 --- a/lldb/tools/lldb-test/CMakeLists.txt +++ b/lldb/tools/lldb-test/CMakeLists.txt @@ -6,6 +6,7 @@ add_lldb_tool(lldb-test SystemInitializerTest.cpp LINK_LIBS + lldbBase lldbBreakpoint lldbCore lldbDataFormatters @@ -16,7 +17,6 @@ add_lldb_tool(lldb-test lldbSymbol lldbTarget lldbUtility - lldbVersion ${LLDB_ALL_PLUGINS} ${host_lib}