-
Notifications
You must be signed in to change notification settings - Fork 24
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ldc2: Add support for newer llvm versions
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
1 parent
e7cac6f
commit 2966167
Showing
3 changed files
with
248 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
} |