commit:     70bf3a8996b9a14b0e28d7e367275a20f6d0cffc
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 30 13:49:51 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Sep 30 15:52:50 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=70bf3a89

sys-devel/llvm: Add zstd support in 16.x

Bug: https://bugs.gentoo.org/873526
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-devel/llvm/llvm-16.0.0.9999.ebuild        | 22 +++++++++++++++++++---
 sys-devel/llvm/llvm-16.0.0_pre20220930.ebuild | 22 +++++++++++++++++++---
 2 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/sys-devel/llvm/llvm-16.0.0.9999.ebuild 
b/sys-devel/llvm/llvm-16.0.0.9999.ebuild
index 9171387473ba..d0153e31a64d 100644
--- a/sys-devel/llvm/llvm-16.0.0.9999.ebuild
+++ b/sys-devel/llvm/llvm-16.0.0.9999.ebuild
@@ -4,8 +4,8 @@
 EAPI=8
 
 PYTHON_COMPAT=( python3_{8..11} )
-inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \
-       toolchain-funcs
+inherit cmake llvm.org multilib multilib-minimal pax-utils \
+       python-any-r1 toolchain-funcs
 
 DESCRIPTION="Low Level Virtual Machine"
 HOMEPAGE="https://llvm.org/";
@@ -19,7 +19,10 @@ HOMEPAGE="https://llvm.org/";
 LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
 SLOT="$(ver_cut 1)"
 KEYWORDS=""
-IUSE="+binutils-plugin debug doc exegesis libedit +libffi ncurses test xar xml 
z3"
+IUSE="
+       +binutils-plugin debug doc exegesis libedit +libffi ncurses test xar
+       xml z3 zstd
+"
 RESTRICT="!test? ( test )"
 
 RDEPEND="
@@ -32,6 +35,7 @@ RDEPEND="
        xar? ( app-arch/xar )
        xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
        z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )
+       zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
 "
 DEPEND="
        ${RDEPEND}
@@ -337,6 +341,13 @@ multilib_src_configure() {
                ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
                ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
        fi
+       if use zstd; then
+               cat > "${BUILD_DIR}"/zstdConfig.cmake <<-EOF || die
+                       add_library(zstd::libzstd_shared SHARED IMPORTED)
+                       set_target_properties(zstd::libzstd_shared PROPERTIES
+                               IMPORTED_LOCATION 
"${EPREFIX}/usr/$(get_libdir)/libzstd$(get_libname)")
+               EOF
+       fi
 
        local libdir=$(get_libdir)
        local mycmakeargs=(
@@ -366,6 +377,7 @@ multilib_src_configure() {
                -DLLVM_ENABLE_EH=ON
                -DLLVM_ENABLE_RTTI=ON
                -DLLVM_ENABLE_Z3_SOLVER=$(usex z3)
+               -DLLVM_ENABLE_ZSTD=$(usex zstd)
 
                -DLLVM_HOST_TRIPLE="${CHOST}"
 
@@ -374,6 +386,10 @@ multilib_src_configure() {
                # used only for llvm-objdump tool
                -DLLVM_HAVE_LIBXAR=$(multilib_native_usex xar 1 0)
 
+               # workaround llvm requiring cmake files from zstd
+               -Dzstd_DIR="${BUILD_DIR}"
+               -DLLVM_PREFER_STATIC_ZSTD=FALSE
+
                -DPython3_EXECUTABLE="${PYTHON}"
 
                # disable OCaml bindings (now in dev-ml/llvm-ocaml)

diff --git a/sys-devel/llvm/llvm-16.0.0_pre20220930.ebuild 
b/sys-devel/llvm/llvm-16.0.0_pre20220930.ebuild
index 9171387473ba..d0153e31a64d 100644
--- a/sys-devel/llvm/llvm-16.0.0_pre20220930.ebuild
+++ b/sys-devel/llvm/llvm-16.0.0_pre20220930.ebuild
@@ -4,8 +4,8 @@
 EAPI=8
 
 PYTHON_COMPAT=( python3_{8..11} )
-inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \
-       toolchain-funcs
+inherit cmake llvm.org multilib multilib-minimal pax-utils \
+       python-any-r1 toolchain-funcs
 
 DESCRIPTION="Low Level Virtual Machine"
 HOMEPAGE="https://llvm.org/";
@@ -19,7 +19,10 @@ HOMEPAGE="https://llvm.org/";
 LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
 SLOT="$(ver_cut 1)"
 KEYWORDS=""
-IUSE="+binutils-plugin debug doc exegesis libedit +libffi ncurses test xar xml 
z3"
+IUSE="
+       +binutils-plugin debug doc exegesis libedit +libffi ncurses test xar
+       xml z3 zstd
+"
 RESTRICT="!test? ( test )"
 
 RDEPEND="
@@ -32,6 +35,7 @@ RDEPEND="
        xar? ( app-arch/xar )
        xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
        z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )
+       zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
 "
 DEPEND="
        ${RDEPEND}
@@ -337,6 +341,13 @@ multilib_src_configure() {
                ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
                ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
        fi
+       if use zstd; then
+               cat > "${BUILD_DIR}"/zstdConfig.cmake <<-EOF || die
+                       add_library(zstd::libzstd_shared SHARED IMPORTED)
+                       set_target_properties(zstd::libzstd_shared PROPERTIES
+                               IMPORTED_LOCATION 
"${EPREFIX}/usr/$(get_libdir)/libzstd$(get_libname)")
+               EOF
+       fi
 
        local libdir=$(get_libdir)
        local mycmakeargs=(
@@ -366,6 +377,7 @@ multilib_src_configure() {
                -DLLVM_ENABLE_EH=ON
                -DLLVM_ENABLE_RTTI=ON
                -DLLVM_ENABLE_Z3_SOLVER=$(usex z3)
+               -DLLVM_ENABLE_ZSTD=$(usex zstd)
 
                -DLLVM_HOST_TRIPLE="${CHOST}"
 
@@ -374,6 +386,10 @@ multilib_src_configure() {
                # used only for llvm-objdump tool
                -DLLVM_HAVE_LIBXAR=$(multilib_native_usex xar 1 0)
 
+               # workaround llvm requiring cmake files from zstd
+               -Dzstd_DIR="${BUILD_DIR}"
+               -DLLVM_PREFER_STATIC_ZSTD=FALSE
+
                -DPython3_EXECUTABLE="${PYTHON}"
 
                # disable OCaml bindings (now in dev-ml/llvm-ocaml)

Reply via email to