Okay cool, thanks Chris! -Todd
> On Nov 10, 2016, at 1:40 PM, Chris Bieneman <be...@apple.com> wrote: > > I just pushed r286504, which expects the string to not be quoted. This should > solve the bot failures. > > -Chris > >> On Nov 10, 2016, at 1:30 PM, Todd Fiala <todd.fi...@gmail.com >> <mailto:todd.fi...@gmail.com>> wrote: >> >> I'm at a point where I can look at it. >> >> On Thu, Nov 10, 2016 at 12:17 PM, Tim Hammerquist <pen...@gmail.com >> <mailto:pen...@gmail.com>> wrote: >> Looks like the quotes around the lldb version string aren't properly >> preserved in the xcodeproj file as they are in CMake. >> >> Can any of the LLDB devs more comfortable with plumbing the depths of Xcode >> project configuration provide some guidance here? >> >> http://lab.llvm.org:8080/green/job/lldb_build_test/21828/ >> <http://lab.llvm.org:8080/green/job/lldb_build_test/21828/> >> >> /Users/buildslave/jenkins/sharedspace/lldb@2/lldb/source/lldb.cpp:63:22: >> error: unexpected namespace name 'lldb': expected expression >> g_version_str += LLDB_VERSION_STRING; >> ^ >> In file included from <built-in>:356: >> <command line>:4:29: note: expanded from here >> #define LLDB_VERSION_STRING lldb-360.99.0 >> ^ >> /Users/buildslave/jenkins/sharedspace/lldb@2/lldb/source/lldb.cpp:63:22: >> error: invalid suffix '.0' on floating constant >> In file included from <built-in>:356: >> <command line>:4:40: note: expanded from here >> #define LLDB_VERSION_STRING lldb-360.99.0 >> ^ >> 2 errors generated. >> >> >> On Thu, Nov 10, 2016 at 9:33 AM, Chris Bieneman via lldb-commits >> <lldb-commits@lists.llvm.org <mailto:lldb-commits@lists.llvm.org>> wrote: >> Author: cbieneman >> Date: Thu Nov 10 11:33:19 2016 >> New Revision: 286479 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=286479&view=rev >> <http://llvm.org/viewvc/llvm-project?rev=286479&view=rev> >> Log: >> Unify Darwin and Non-Darwin printing of version output >> >> Summary: >> 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. On Darwin this value is >> implicitly set based on the resource/LLDB-Info.plist file. >> >> With the LLDB_VERSION_STRING variable set to lldb-360.99.0, the -version >> output is: >> >> > ./bin/lldb -version >> lldb version 4.0.0 (lldb-360.99.0) >> clang revision 286264 >> llvm revision 286265 >> >> This behavior is unified across all target platforms. >> >> Reviewers: lldb-commits >> >> Subscribers: mgorny, tfiala >> >> Differential Revision: https://reviews.llvm.org/D26478 >> <https://reviews.llvm.org/D26478> >> >> Added: >> lldb/trunk/cmake/modules/EmbedAppleVersion.cmake >> Modified: >> lldb/trunk/lldb.xcodeproj/project.pbxproj >> lldb/trunk/source/CMakeLists.txt >> lldb/trunk/source/lldb.cpp >> >> Added: lldb/trunk/cmake/modules/EmbedAppleVersion.cmake >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/modules/EmbedAppleVersion.cmake?rev=286479&view=auto >> >> <http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/modules/EmbedAppleVersion.cmake?rev=286479&view=auto> >> ============================================================================== >> --- lldb/trunk/cmake/modules/EmbedAppleVersion.cmake (added) >> +++ lldb/trunk/cmake/modules/EmbedAppleVersion.cmake Thu Nov 10 11:33:19 2016 >> @@ -0,0 +1,11 @@ >> +execute_process(COMMAND /usr/libexec/PlistBuddy -c "Print:CFBundleVersion" >> ${LLDB_INFO_PLIST} >> + OUTPUT_VARIABLE BundleVersion >> + OUTPUT_STRIP_TRAILING_WHITESPACE) >> + >> +file(APPEND "${HEADER_FILE}.tmp" >> + "#define LLDB_VERSION_STRING \"lldb-${BundleVersion}\"\n") >> + >> +execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different >> + "${HEADER_FILE}.tmp" "${HEADER_FILE}") >> + >> +file(REMOVE "${HEADER_FILE}.tmp") >> >> Modified: lldb/trunk/lldb.xcodeproj/project.pbxproj >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/lldb.xcodeproj/project.pbxproj?rev=286479&r1=286478&r2=286479&view=diff >> >> <http://llvm.org/viewvc/llvm-project/lldb/trunk/lldb.xcodeproj/project.pbxproj?rev=286479&r1=286478&r2=286479&view=diff> >> ============================================================================== >> --- lldb/trunk/lldb.xcodeproj/project.pbxproj (original) >> +++ lldb/trunk/lldb.xcodeproj/project.pbxproj Thu Nov 10 11:33:19 2016 >> @@ -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"; >> >> Modified: lldb/trunk/source/CMakeLists.txt >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/CMakeLists.txt?rev=286479&r1=286478&r2=286479&view=diff >> >> <http://llvm.org/viewvc/llvm-project/lldb/trunk/source/CMakeLists.txt?rev=286479&r1=286478&r2=286479&view=diff> >> ============================================================================== >> --- lldb/trunk/source/CMakeLists.txt (original) >> +++ lldb/trunk/source/CMakeLists.txt Thu Nov 10 11:33:19 2016 >> @@ -25,21 +25,6 @@ set(lldbBase_SOURCES >> 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 >> <http://generate-vers.pl/> >> - ${LLDB_SOURCE_DIR}/lldb.xcodeproj/project.pbxproj liblldb_core >> - > ${LLDB_VERS_GENERATED_FILE} >> - DEPENDS ${LLDB_SOURCE_DIR}/scripts/generate-vers.pl >> <http://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,37 @@ if(DEFINED lldb_vc) >> list(APPEND lldbBase_SOURCES ${version_inc}) >> endif() >> >> +if(APPLE) >> + set(apple_version_inc "${CMAKE_CURRENT_BINARY_DIR}/AppleVersion.inc") >> + set(apple_version_script >> "${LLDB_SOURCE_DIR}/cmake/modules/EmbedAppleVersion.cmake") >> + set(info_plist ${LLDB_SOURCE_DIR}/resources/LLDB-Info.plist) >> + >> + # Create custom target to generate the VC revision include. >> + add_custom_command(OUTPUT "${apple_version_inc}" >> + DEPENDS "${apple_version_script}" "${info_plist}" >> + COMMAND >> + ${CMAKE_COMMAND} "-DLLDB_INFO_PLIST=${info_plist}" >> + "-DHEADER_FILE=${apple_version_inc}" >> + -P "${apple_version_script}") >> + >> + # Mark the generated header as being generated. >> + set_source_files_properties("${apple_version_inc}" >> + PROPERTIES GENERATED TRUE >> + HEADER_FILE_ONLY TRUE) >> + >> + # Tell Version.cpp that it needs to build with -DHAVE_SVN_VERSION_INC. >> + set_source_files_properties(lldb.cpp >> + PROPERTIES COMPILE_DEFINITIONS "HAVE_APPLE_VERSION_INC") >> + list(APPEND lldbBase_SOURCES ${apple_version_inc}) >> +elseif(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) >> >> Modified: lldb/trunk/source/lldb.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/lldb.cpp?rev=286479&r1=286478&r2=286479&view=diff >> >> <http://llvm.org/viewvc/llvm-project/lldb/trunk/source/lldb.cpp?rev=286479&r1=286478&r2=286479&view=diff> >> ============================================================================== >> --- lldb/trunk/source/lldb.cpp (original) >> +++ lldb/trunk/source/lldb.cpp Thu Nov 10 11:33:19 2016 >> @@ -12,16 +12,16 @@ >> 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 >> # include "SVNVersion.inc" >> #endif >> >> +#ifdef HAVE_APPLE_VERSION_INC >> +# include "AppleVersion.inc" >> +#endif >> + >> static const char *GetLLDBRevision() { >> #ifdef LLDB_REVISION >> return LLDB_REVISION; >> @@ -38,33 +38,8 @@ static const char *GetLLDBRepository() { >> #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 +56,24 @@ const char *lldb_private::GetVersion() { >> 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 >> } >> >> >> _______________________________________________ >> lldb-commits mailing list >> lldb-commits@lists.llvm.org <mailto:lldb-commits@lists.llvm.org> >> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits >> <http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits> >> >> >> >> -- >> Tim <pen...@gmail.com <mailto:pen...@gmail.com>> >> >> >> >> -- >> -Todd >
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits