[Lldb-commits] [lldb] fe86289 - Revert "[lldb/CMake] Change how we deal with optional dependencies"

Jonas Devlieghere via lldb-commits lldb-commits at lists.llvm.org
Fri Dec 20 15:35:49 PST 2019


Author: Jonas Devlieghere
Date: 2019-12-20T15:35:43-08:00
New Revision: fe86289bf19b165e34f66d9411469131a77d0110

URL: https://github.com/llvm/llvm-project/commit/fe86289bf19b165e34f66d9411469131a77d0110
DIFF: https://github.com/llvm/llvm-project/commit/fe86289bf19b165e34f66d9411469131a77d0110.diff

LOG: Revert "[lldb/CMake] Change how we deal with optional dependencies"

This is failing on both the Windows and Debian bot.

Added: 
    

Modified: 
    lldb/cmake/modules/LLDBConfig.cmake
    lldb/test/CMakeLists.txt

Removed: 
    lldb/cmake/modules/FindCursesAndPanel.cmake


################################################################################
diff  --git a/lldb/cmake/modules/FindCursesAndPanel.cmake b/lldb/cmake/modules/FindCursesAndPanel.cmake
deleted file mode 100644
index 25709ddf5ff9..000000000000
--- a/lldb/cmake/modules/FindCursesAndPanel.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-#.rst:
-# FindCursesAndPanel
-# -----------
-#
-# Find the curses and panel library as a whole.
-
-if(CURSES_INCLUDE_DIRS AND CURSES_LIBRARIES AND PANEL_LIBRARIES)
-  set(CURSES_PANEL_FOUND TRUE)
-else()
-  find_package(Curses QUIET)
-  find_library(PANEL_LIBRARIES NAMES panel DOC "The curses panel library" QUIET)
-  if(CURSES_FOUND AND PANEL_LIBRARIES)
-    mark_as_advanced(CURSES_INCLUDE_DIRS CURSES_LIBRARIES PANEL_LIBRARIES)
-  endif()
-endif()
-

diff  --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake
index 586d1cbb25e5..16465ded0522 100644
--- a/lldb/cmake/modules/LLDBConfig.cmake
+++ b/lldb/cmake/modules/LLDBConfig.cmake
@@ -18,43 +18,39 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
     "`CMakeFiles'. Please delete them.")
 endif()
 
-set(LLDB_LINKER_SUPPORTS_GROUPS OFF)
-if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND NOT "${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
-  # The Darwin linker doesn't understand --start-group/--end-group.
-  set(LLDB_LINKER_SUPPORTS_GROUPS ON)
-endif()
-
-function(add_optional_dependency variable description package found)
-  set(${variable} "Auto" CACHE STRING "${description} On, Off or Auto (default)")
-  string(TOUPPER "${${variable}}" ${variable})
-
-  if("${${variable}}" STREQUAL "AUTO")
-    set(maybe_required)
-  elseif(${${variable}})
-    set(maybe_required REQUIRED)
-  else()
-    set(${variable} OFF PARENT_SCOPE)
-    return()
+set(default_enable_python ON)
+set(default_enable_lua OFF) # Experimental
+set(default_enable_libedit ON)
+set(default_enable_curses ON)
+
+# Temporarily support the old LLDB_DISABLE_* variables
+if (DEFINED LLDB_DISABLE_PYTHON)
+  if (LLDB_DISABLE_PYTHON)
+    set(default_enable_python OFF)
   endif()
+endif()
 
-  find_package(${package} ${maybe_required})
-  set(${variable} ${${found}} PARENT_SCOPE)
-endfunction()
-
-add_optional_dependency(LLDB_ENABLE_LIBEDIT "Enable editline support." LibEdit libedit_FOUND)
-add_optional_dependency(LLDB_ENABLE_CURSES "Enable curses support." CursesAndPanel CURSES_PANEL_FOUND)
-add_optional_dependency(LLDB_ENABLE_LZMA "Enable LZMA compression support." LibLZMA LIBLZMA_FOUND)
-add_optional_dependency(LLDB_ENABLE_LUA "Enable Lua scripting support." Lua LUA_FOUND)
-
-set(default_enable_python ON)
+if(DEFINED LLVM_ENABLE_LIBEDIT AND NOT LLVM_ENABLE_LIBEDIT)
+  set(default_disable_libedit ON)
+endif()
 
-if(CMAKE_SYSTEM_NAME MATCHES "Android")
+if(CMAKE_SYSTEM_NAME MATCHES "Windows")
+  set(default_enable_libedit OFF)
+  set(default_enable_curses OFF)
+elseif(CMAKE_SYSTEM_NAME MATCHES "Android")
   set(default_enable_python OFF)
+  set(default_enable_lua OFF)
+  set(default_enable_libedit OFF)
+  set(default_enable_curses OFF)
 elseif(IOS)
   set(default_enable_python OFF)
+  set(default_enable_lua OFF)
 endif()
 
 option(LLDB_ENABLE_PYTHON "Enable Python scripting integration." ${default_enable_python})
+option(LLDB_ENABLE_PYTHON "Enable Lua scripting integration." ${default_enable_lua})
+option(LLDB_ENABLE_LIBEDIT "Enable the use of editline." ${default_enable_libedit})
+option(LLDB_ENABLE_CURSES "Enable Curses integration." ${default_enable_curses})
 option(LLDB_RELOCATABLE_PYTHON "Use the PYTHONHOME environment variable to locate Python." OFF)
 option(LLDB_USE_SYSTEM_SIX "Use six.py shipped with system and do not install a copy of it" OFF)
 option(LLDB_USE_ENTITLEMENTS "When codesigning, use entitlements if available" ON)
@@ -117,9 +113,15 @@ if ((NOT MSVC) OR MSVC12)
   add_definitions( -DHAVE_ROUND )
 endif()
 
-# Check if we libedit capable of handling wide characters (built with
-# '--enable-widec').
+if (LLDB_ENABLE_LUA)
+  find_package(Lua REQUIRED)
+endif()
+
 if (LLDB_ENABLE_LIBEDIT)
+  find_package(LibEdit REQUIRED)
+
+  # Check if we libedit capable of handling wide characters (built with
+  # '--enable-widec').
   set(CMAKE_REQUIRED_LIBRARIES ${libedit_LIBRARIES})
   set(CMAKE_REQUIRED_INCLUDES ${libedit_INCLUDE_DIRS})
   check_symbol_exists(el_winsertstr histedit.h LLDB_EDITLINE_USE_WCHAR)
@@ -135,6 +137,7 @@ if (LLDB_ENABLE_LIBEDIT)
   set(CMAKE_EXTRA_INCLUDE_FILES)
 endif()
 
+
 # On Windows, we can't use the normal FindPythonLibs module that comes with CMake,
 # for a number of reasons.
 # 1) Prior to MSVC 2015, it is only possible to embed Python if python itself was
@@ -395,9 +398,12 @@ endif()
 set(LLDB_VERSION "${LLDB_VERSION_MAJOR}.${LLDB_VERSION_MINOR}.${LLDB_VERSION_PATCH}${LLDB_VERSION_SUFFIX}")
 message(STATUS "LLDB version: ${LLDB_VERSION}")
 
+find_package(LibLZMA)
+cmake_dependent_option(LLDB_ENABLE_LZMA "Support LZMA compression" ON "LIBLZMA_FOUND" OFF)
 if (LLDB_ENABLE_LZMA)
   include_directories(${LIBLZMA_INCLUDE_DIRS})
 endif()
+llvm_canonicalize_cmake_booleans(LLDB_ENABLE_LZMA)
 
 include_directories(BEFORE
   ${CMAKE_CURRENT_BINARY_DIR}/include
@@ -487,6 +493,14 @@ else()
     set(LLDB_CAN_USE_DEBUGSERVER OFF)
 endif()
 
+if (LLDB_ENABLE_CURSES)
+    find_package(Curses REQUIRED)
+    find_library(CURSES_PANEL_LIBRARY NAMES panel DOC "The curses panel library")
+    if (NOT CURSES_PANEL_LIBRARY)
+        message(FATAL_ERROR "A required curses' panel library not found.")
+    endif ()
+endif ()
+
 if ((CMAKE_SYSTEM_NAME MATCHES "Android") AND LLVM_BUILD_STATIC AND
     ((ANDROID_ABI MATCHES "armeabi") OR (ANDROID_ABI MATCHES "mips")))
   add_definitions(-DANDROID_USE_ACCEPT_WORKAROUND)

diff  --git a/lldb/test/CMakeLists.txt b/lldb/test/CMakeLists.txt
index 4d9dfa561782..b22ef6b79d50 100644
--- a/lldb/test/CMakeLists.txt
+++ b/lldb/test/CMakeLists.txt
@@ -145,7 +145,6 @@ endif()
 llvm_canonicalize_cmake_booleans(
   LLDB_ENABLE_PYTHON
   LLDB_ENABLE_LUA
-  LLDB_ENABLE_LZMA
   LLVM_ENABLE_ZLIB
   LLVM_ENABLE_SHARED_LIBS
   LLDB_IS_64_BITS)


        


More information about the lldb-commits mailing list