llvm: fix +lldb optional deps and add lua variant (#39579)

* llvm: fix +lldb optional deps, add lua variant

* use good old conflicts

---------

Co-authored-by: Harmen Stoppels <me@harmenstoppels.nl>
This commit is contained in:
Nichols A. Romero 2023-08-25 17:46:33 -05:00 committed by GitHub
parent e8a7a04f14
commit f0447d63ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -221,6 +221,7 @@ class Llvm(CMakePackage, CudaPackage):
description="Enable code-signing on macOS", description="Enable code-signing on macOS",
) )
variant("python", default=False, description="Install python bindings") variant("python", default=False, description="Install python bindings")
variant("lua", default=True, description="Enable lua scripting inside lldb")
variant("version_suffix", default="none", description="Add a symbol suffix") variant("version_suffix", default="none", description="Add a symbol suffix")
variant( variant(
"shlib_symbol_version", "shlib_symbol_version",
@ -231,6 +232,8 @@ class Llvm(CMakePackage, CudaPackage):
variant("z3", default=False, description="Use Z3 for the clang static analyzer") variant("z3", default=False, description="Use Z3 for the clang static analyzer")
conflicts("+z3", when="@:7") conflicts("+z3", when="@:7")
conflicts("+z3", when="~clang") conflicts("+z3", when="~clang")
conflicts("+lua", when="@:10")
conflicts("+lua", when="~lldb")
variant( variant(
"zstd", "zstd",
@ -289,13 +292,24 @@ class Llvm(CMakePackage, CudaPackage):
depends_on("zstd build_system=cmake", when="+zstd") depends_on("zstd build_system=cmake", when="+zstd")
# lldb dependencies # lldb dependencies
with when("+lldb +python"): with when("+lldb"):
depends_on("swig") depends_on("libedit")
depends_on("libxml2")
depends_on("lua@5.3", when="+lua") # purposefully not a range
depends_on("ncurses")
depends_on("py-six", when="+python")
depends_on("swig", when="+lua")
depends_on("swig", when="+python")
depends_on("xz")
# Use ^swig cause it's triggered by both python & lua scripting in lldb
with when("^swig"):
depends_on("swig@2:", when="@10:") depends_on("swig@2:", when="@10:")
depends_on("swig@3:", when="@12:") depends_on("swig@3:", when="@12:")
depends_on("libedit", when="+lldb") depends_on("swig@4:", when="@17:")
depends_on("ncurses", when="+lldb") # Commits f0a25fe0b746f56295d5c02116ba28d2f965c175 and
depends_on("py-six", when="+lldb+python") # 81fc5f7909a4ef5a8d4b5da2a10f77f7cb01ba63 fixed swig 4.1 support
depends_on("swig@:4.0", when="@:15")
# gold support, required for some features # gold support, required for some features
depends_on("binutils+gold+ld+plugins+headers", when="+gold") depends_on("binutils+gold+ld+plugins+headers", when="+gold")
@ -798,13 +812,19 @@ def cmake_args(self):
if "+lldb" in spec: if "+lldb" in spec:
projects.append("lldb") projects.append("lldb")
cmake_args.append(define("LLDB_ENABLE_LIBEDIT", True)) cmake_args.extend(
cmake_args.append(define("LLDB_ENABLE_CURSES", True)) [
define("LLDB_ENABLE_LIBEDIT", True),
define("LLDB_ENABLE_CURSES", True),
define("LLDB_ENABLE_LIBXML2", True),
from_variant("LLDB_ENABLE_LUA", "lua"),
define("LLDB_ENABLE_LZMA", True),
]
)
if spec["ncurses"].satisfies("+termlib"): if spec["ncurses"].satisfies("+termlib"):
cmake_args.append(define("LLVM_ENABLE_TERMINFO", True)) cmake_args.append(define("LLVM_ENABLE_TERMINFO", True))
else: else:
cmake_args.append(define("LLVM_ENABLE_TERMINFO", False)) cmake_args.append(define("LLVM_ENABLE_TERMINFO", False))
cmake_args.append(define("LLDB_ENABLE_LIBXML2", False))
if spec.version >= Version("10"): if spec.version >= Version("10"):
cmake_args.append(from_variant("LLDB_ENABLE_PYTHON", "python")) cmake_args.append(from_variant("LLDB_ENABLE_PYTHON", "python"))
else: else: