beanz created this revision.
beanz added a reviewer: lldb-commits.
beanz added a subscriber: tfiala.
Herald added a subscriber: mgorny.
This change unifies and simplifies the code paths between the Darwin and
non-Darwin code to print the LLDB version information.
It also introduces a new variable in CMake LLDB_VERSION_STRING which can be
used to specify custom version information.
With the LLDB_VERSION_STRING variable set to lldb-360.0.0, the -version output
is:
> ./bin/lldb -version
lldb version 4.0.0 (lldb-360.0.0)
clang revision 286264
llvm revision 286265
This behavior is unified across all target platforms.
https://reviews.llvm.org/D26478
Files:
lldb.xcodeproj/project.pbxproj
source/CMakeLists.txt
source/lldb.cpp
Index: source/lldb.cpp
===================================================================
--- source/lldb.cpp
+++ source/lldb.cpp
@@ -12,10 +12,6 @@
using namespace lldb;
using namespace lldb_private;
-#if defined(__APPLE__)
-extern "C" const unsigned char liblldb_coreVersionString[];
-#else
-
#include "clang/Basic/Version.h"
#ifdef HAVE_SVN_VERSION_INC
@@ -38,33 +34,8 @@
#endif
}
-#endif
const char *lldb_private::GetVersion() {
-#if defined(__APPLE__)
- static char g_version_string[32];
- if (g_version_string[0] == '\0') {
- const char *version_string =
- ::strstr((const char *)liblldb_coreVersionString, "PROJECT:");
-
- if (version_string)
- version_string += sizeof("PROJECT:") - 1;
- else
- version_string = "unknown";
-
- const char *newline_loc = strchr(version_string, '\n');
-
- size_t version_len = sizeof(g_version_string) - 1;
-
- if (newline_loc &&
- (newline_loc - version_string < static_cast<ptrdiff_t>(version_len)))
- version_len = newline_loc - version_string;
-
- ::snprintf(g_version_string, version_len + 1, "%s", version_string);
- }
-
- return g_version_string;
-#else
// On platforms other than Darwin, report a version number in the same style
// as the clang tool.
static std::string g_version_str;
@@ -81,21 +52,24 @@
if (lldb_rev) {
g_version_str += " revision ";
g_version_str += lldb_rev;
+ g_version_str += ")";
}
+#ifdef LLDB_VERSION_STRING
+ g_version_str += " (";
+ g_version_str += LLDB_VERSION_STRING;
+ g_version_str += ")";
+#endif
std::string clang_rev(clang::getClangRevision());
if (clang_rev.length() > 0) {
- g_version_str += " clang revision ";
+ 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 += " llvm revision ";
+ g_version_str += "\n llvm revision ";
g_version_str += llvm_rev;
}
-
- if (lldb_repo)
- g_version_str += ")";
+
}
return g_version_str.c_str();
-#endif
}
Index: source/CMakeLists.txt
===================================================================
--- source/CMakeLists.txt
+++ source/CMakeLists.txt
@@ -25,21 +25,6 @@
lldb.cpp
)
-if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
- set(LLDB_VERS_GENERATED_FILE ${LLDB_BINARY_DIR}/source/LLDB_vers.c)
- add_custom_command(OUTPUT ${LLDB_VERS_GENERATED_FILE}
- COMMAND ${LLDB_SOURCE_DIR}/scripts/generate-vers.pl
- ${LLDB_SOURCE_DIR}/lldb.xcodeproj/project.pbxproj liblldb_core
- > ${LLDB_VERS_GENERATED_FILE}
- DEPENDS ${LLDB_SOURCE_DIR}/scripts/generate-vers.pl
- ${LLDB_SOURCE_DIR}/lldb.xcodeproj/project.pbxproj)
- set_source_files_properties(${LLDB_VERS_GENERATED_FILE} PROPERTIES GENERATED 1)
- # Add this to lldbBase since lldb.cpp uses the symbol defined here.
- list(APPEND lldbBase_SOURCES ${LLDB_VERS_GENERATED_FILE})
- add_custom_target(lldbGeneratedVersion
- DEPENDS ${LLDB_VERS_GENERATED_FILE})
-endif()
-
foreach(file
"${LLDB_SOURCE_DIR}/.git/logs/HEAD" # Git
"${LLDB_SOURCE_DIR}/.svn/wc.db" # SVN 1.7
@@ -75,14 +60,15 @@
list(APPEND lldbBase_SOURCES ${version_inc})
endif()
+if(LLDB_VERSION_STRING)
+ set_source_files_properties(lldb.cpp
+ PROPERTIES COMPILE_DEFINITIONS "LLDB_VERSION_STRING=\"${LLDB_VERSION_STRING}\"")
+endif()
+
add_lldb_library(lldbBase
${lldbBase_SOURCES}
)
-if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
- add_dependencies(lldbBase lldbGeneratedVersion)
-endif()
-
add_subdirectory(Breakpoint)
add_subdirectory(Commands)
add_subdirectory(Core)
Index: lldb.xcodeproj/project.pbxproj
===================================================================
--- lldb.xcodeproj/project.pbxproj
+++ lldb.xcodeproj/project.pbxproj
@@ -8775,6 +8775,20 @@
"\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"",
);
GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ __STDC_CONSTANT_MACROS,
+ __STDC_LIMIT_MACROS,
+ LLDB_CONFIGURATION_DEBUG,
+ "LLDB_VERSION_STRING=\"lldb-${CURRENT_PROJECT_VERSION}\"",
+ );
+ "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=*]" = (
+ __STDC_CONSTANT_MACROS,
+ __STDC_LIMIT_MACROS,
+ LLDB_CONFIGURATION_DEBUG,
+ LLDB_DISABLE_PYTHON,
+ NO_XPC_SERVICES,
+ "LLDB_VERSION_STRING=\"lldb-${CURRENT_PROJECT_VERSION}\"",
+ );
HEADER_SEARCH_PATHS = /usr/include/libxml2;
LLDB_COMPRESSION_CFLAGS = "";
"LLDB_COMPRESSION_CFLAGS[sdk=macosx10.11]" = "-DHAVE_LIBCOMPRESSION=1";
@@ -8820,6 +8834,20 @@
"\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"",
);
GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ __STDC_CONSTANT_MACROS,
+ __STDC_LIMIT_MACROS,
+ LLDB_CONFIGURATION_RELEASE,
+ "LLDB_VERSION_STRING=\"lldb-${CURRENT_PROJECT_VERSION}\"",
+ );
+ "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=*]" = (
+ __STDC_CONSTANT_MACROS,
+ __STDC_LIMIT_MACROS,
+ LLDB_CONFIGURATION_RELEASE,
+ LLDB_DISABLE_PYTHON,
+ NO_XPC_SERVICES,
+ "LLDB_VERSION_STRING=\"lldb-${CURRENT_PROJECT_VERSION}\"",
+ );
HEADER_SEARCH_PATHS = /usr/include/libxml2;
LLDB_COMPRESSION_CFLAGS = "";
"LLDB_COMPRESSION_CFLAGS[sdk=macosx10.11]" = "-DHAVE_LIBCOMPRESSION=1";
@@ -8865,6 +8893,20 @@
"\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"",
);
GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ __STDC_CONSTANT_MACROS,
+ __STDC_LIMIT_MACROS,
+ LLDB_CONFIGURATION_BUILD_AND_INTEGRATION,
+ "LLDB_VERSION_STRING=\"lldb-${CURRENT_PROJECT_VERSION}\"",
+ );
+ "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=*]" = (
+ __STDC_CONSTANT_MACROS,
+ __STDC_LIMIT_MACROS,
+ LLDB_CONFIGURATION_BUILD_AND_INTEGRATION,
+ LLDB_DISABLE_PYTHON,
+ NO_XPC_SERVICES,
+ "LLDB_VERSION_STRING=\"lldb-${CURRENT_PROJECT_VERSION}\"",
+ );
HEADER_SEARCH_PATHS = /usr/include/libxml2;
LLDB_COMPRESSION_CFLAGS = "";
"LLDB_COMPRESSION_CFLAGS[sdk=macosx10.11]" = "-DHAVE_LIBCOMPRESSION=1";
@@ -9864,6 +9906,20 @@
"\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"",
);
GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ __STDC_CONSTANT_MACROS,
+ __STDC_LIMIT_MACROS,
+ LLDB_CONFIGURATION_DEBUG,
+ "LLDB_VERSION_STRING=\"lldb-${CURRENT_PROJECT_VERSION}\"",
+ );
+ "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=*]" = (
+ __STDC_CONSTANT_MACROS,
+ __STDC_LIMIT_MACROS,
+ LLDB_CONFIGURATION_DEBUG,
+ LLDB_DISABLE_PYTHON,
+ NO_XPC_SERVICES,
+ "LLDB_VERSION_STRING=\"lldb-${CURRENT_PROJECT_VERSION}\"",
+ );
HEADER_SEARCH_PATHS = /usr/include/libxml2;
LLDB_COMPRESSION_CFLAGS = "";
"LLDB_COMPRESSION_CFLAGS[sdk=macosx10.11]" = "-DHAVE_LIBCOMPRESSION=1";
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits