Skip to content

Commit

Permalink
ldc2: Add support for newer llvm versions
Browse files Browse the repository at this point in the history
LDC2 1.24 added support for LLVM 11 and LDC 1.25 added support also for
LLVM 12.

Signed-off-by: Niko Böckerman <[email protected]>
  • Loading branch information
nikobockerman committed Feb 3, 2022
1 parent e7cac6f commit 2966167
Show file tree
Hide file tree
Showing 3 changed files with 248 additions and 0 deletions.
82 changes: 82 additions & 0 deletions dev-lang/ldc2/ldc2-1.24.0-r2.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit multilib-build cmake llvm

MY_PV="${PV//_/-}"
MY_P="ldc-${MY_PV}-src"
SRC_URI="https://github.com/ldc-developers/ldc/releases/download/v${MY_PV}/${MY_P}.tar.gz"
S=${WORKDIR}/${MY_P}

DESCRIPTION="LLVM D Compiler"
HOMEPAGE="https://github.com/ldc-developers/ldc"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
LICENSE="BSD"
SLOT="$(ver_cut 1-2)/$(ver_cut 3)"

IUSE="static-libs"

# We support LLVM 6.0 through 10.
RDEPEND="dev-util/ninja
|| (
sys-devel/llvm:10
sys-devel/llvm:11
)
<sys-devel/llvm-12:=
>=app-eselect/eselect-dlang-20140709"
DEPEND="${RDEPEND}"
LLVM_MAX_SLOT=11
PATCHES="${FILESDIR}/ldc2-1.15.0-link-defaultlib-shared.patch"

# For now, we support amd64 multilib. Anyone is free to add more support here.
MULTILIB_COMPAT=( abi_x86_{32,64} )

DLANG_VERSION_RANGE="2.075-"
DLANG_PACKAGE_TYPE="single"

inherit dlang

detect_hardened() {
gcc --version | grep -o Hardened
}

src_prepare() {
cmake_src_prepare
}

d_src_configure() {
# Make sure libphobos2 is installed into ldc2's directory.
export LIBDIR_${ABI}="${LIBDIR_HOST}"
local mycmakeargs=(
-DD_VERSION=2
-DCMAKE_INSTALL_PREFIX=/usr/lib/ldc2/$(ver_cut 1-2)
-DD_COMPILER="${DMD}"
-DLDC_WITH_LLD=OFF
)
use static-libs && mycmakeargs+=( -DBUILD_SHARED_LIBS=BOTH ) || mycmakeargs+=( -DBUILD_SHARED_LIBS=ON )
use abi_x86_32 && use abi_x86_64 && mycmakeargs+=( -DMULTILIB=ON )
detect_hardened && mycmakeargs+=( -DADDITIONAL_DEFAULT_LDC_SWITCHES=' "-relocation-model=pic",' )
cmake_src_configure
}

d_src_compile()
{
cmake_src_compile
}

d_src_install() {
cmake_src_install

rm -rf "${ED}"/usr/share/bash-completion
}

pkg_postinst() {
# Update active ldc2
"${ROOT}"/usr/bin/eselect dlang update ldc2
}

pkg_postrm() {
"${ROOT}"/usr/bin/eselect dlang update ldc2
}
83 changes: 83 additions & 0 deletions dev-lang/ldc2/ldc2-1.25.1-r1.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit multilib-build cmake llvm

MY_PV="${PV//_/-}"
MY_P="ldc-${MY_PV}-src"
SRC_URI="https://github.com/ldc-developers/ldc/releases/download/v${MY_PV}/${MY_P}.tar.gz"
S=${WORKDIR}/${MY_P}

DESCRIPTION="LLVM D Compiler"
HOMEPAGE="https://github.com/ldc-developers/ldc"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
LICENSE="BSD"
SLOT="$(ver_cut 1-2)/$(ver_cut 3)"

IUSE="static-libs"

# We support LLVM 6.0 through 10.
RDEPEND="dev-util/ninja
|| (
sys-devel/llvm:10
sys-devel/llvm:11
sys-devel/llvm:12
)
<sys-devel/llvm-13:=
>=app-eselect/eselect-dlang-20140709"
DEPEND="${RDEPEND}"
LLVM_MAX_SLOT=12
PATCHES="${FILESDIR}/ldc2-1.15.0-link-defaultlib-shared.patch"

# For now, we support amd64 multilib. Anyone is free to add more support here.
MULTILIB_COMPAT=( abi_x86_{32,64} )

DLANG_VERSION_RANGE="2.075-"
DLANG_PACKAGE_TYPE="single"

inherit dlang

detect_hardened() {
gcc --version | grep -o Hardened
}

src_prepare() {
cmake_src_prepare
}

d_src_configure() {
# Make sure libphobos2 is installed into ldc2's directory.
export LIBDIR_${ABI}="${LIBDIR_HOST}"
local mycmakeargs=(
-DD_VERSION=2
-DCMAKE_INSTALL_PREFIX=/usr/lib/ldc2/$(ver_cut 1-2)
-DD_COMPILER="${DMD}"
-DLDC_WITH_LLD=OFF
)
use static-libs && mycmakeargs+=( -DBUILD_SHARED_LIBS=BOTH ) || mycmakeargs+=( -DBUILD_SHARED_LIBS=ON )
use abi_x86_32 && use abi_x86_64 && mycmakeargs+=( -DMULTILIB=ON )
detect_hardened && mycmakeargs+=( -DADDITIONAL_DEFAULT_LDC_SWITCHES=' "-relocation-model=pic",' )
cmake_src_configure
}

d_src_compile()
{
cmake_src_compile
}

d_src_install() {
cmake_src_install

rm -rf "${ED}"/usr/share/bash-completion
}

pkg_postinst() {
# Update active ldc2
"${ROOT}"/usr/bin/eselect dlang update ldc2
}

pkg_postrm() {
"${ROOT}"/usr/bin/eselect dlang update ldc2
}
83 changes: 83 additions & 0 deletions dev-lang/ldc2/ldc2-1.26.0-r1.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit multilib-build cmake llvm

MY_PV="${PV//_/-}"
MY_P="ldc-${MY_PV}-src"
SRC_URI="https://github.com/ldc-developers/ldc/releases/download/v${MY_PV}/${MY_P}.tar.gz"
S=${WORKDIR}/${MY_P}

DESCRIPTION="LLVM D Compiler"
HOMEPAGE="https://github.com/ldc-developers/ldc"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
LICENSE="BSD"
SLOT="$(ver_cut 1-2)/$(ver_cut 3)"

IUSE="static-libs"

# We support LLVM 6.0 through 10.
RDEPEND="dev-util/ninja
|| (
sys-devel/llvm:10
sys-devel/llvm:11
sys-devel/llvm:12
)
<sys-devel/llvm-13:=
>=app-eselect/eselect-dlang-20140709"
DEPEND="${RDEPEND}"
LLVM_MAX_SLOT=12
PATCHES="${FILESDIR}/ldc2-1.15.0-link-defaultlib-shared.patch"

# For now, we support amd64 multilib. Anyone is free to add more support here.
MULTILIB_COMPAT=( abi_x86_{32,64} )

DLANG_VERSION_RANGE="2.075-"
DLANG_PACKAGE_TYPE="single"

inherit dlang

detect_hardened() {
gcc --version | grep -o Hardened
}

src_prepare() {
cmake_src_prepare
}

d_src_configure() {
# Make sure libphobos2 is installed into ldc2's directory.
export LIBDIR_${ABI}="${LIBDIR_HOST}"
local mycmakeargs=(
-DD_VERSION=2
-DCMAKE_INSTALL_PREFIX=/usr/lib/ldc2/$(ver_cut 1-2)
-DD_COMPILER="${DMD}"
-DLDC_WITH_LLD=OFF
)
use static-libs && mycmakeargs+=( -DBUILD_SHARED_LIBS=BOTH ) || mycmakeargs+=( -DBUILD_SHARED_LIBS=ON )
use abi_x86_32 && use abi_x86_64 && mycmakeargs+=( -DMULTILIB=ON )
detect_hardened && mycmakeargs+=( -DADDITIONAL_DEFAULT_LDC_SWITCHES=' "-relocation-model=pic",' )
cmake_src_configure
}

d_src_compile()
{
cmake_src_compile
}

d_src_install() {
cmake_src_install

rm -rf "${ED}"/usr/share/bash-completion
}

pkg_postinst() {
# Update active ldc2
"${ROOT}"/usr/bin/eselect dlang update ldc2
}

pkg_postrm() {
"${ROOT}"/usr/bin/eselect dlang update ldc2
}

0 comments on commit 2966167

Please sign in to comment.