PKGBUILDs/community/ldc/PKGBUILD

119 lines
3.3 KiB
Bash
Raw Normal View History

2018-12-07 03:48:54 +00:00
# Maintainer:
# Contributor: Mihails Strasuns <public@dicebot.lv>
# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - -DBUILD_LTO_LIBS=OFF
# - removed "-linker=gold -flto=full" from -DD_COMPILER_FLAGS
buildarch=12
pkgname=('ldc' 'liblphobos')
groups=('dlang' 'dlang-ldc')
2019-02-24 05:11:02 +00:00
pkgver=1.14.0
_pkgcommit=e319c790f574d630ab0b930b980cfc1120ebe1d8
_dversion=2.084.1
_clangversion=7.0.1 # related to where ldc2 looks for compiler-rt sanitizers
2018-12-07 03:48:54 +00:00
epoch=2
pkgrel=1
pkgdesc="A D Compiler based on the LLVM Compiler Infrastructure including D runtime and libphobos2"
arch=('x86_64')
url="https://github.com/ldc-developers/ldc"
license=('BSD')
makedepends=('git' 'cmake' 'llvm' 'ldc')
source=(
"git+https://github.com/ldc-developers/ldc#commit=$_pkgcommit"
"git+https://github.com/ldc-developers/druntime.git"
"git+https://github.com/ldc-developers/phobos.git"
"git+https://github.com/ldc-developers/dmd-testsuite.git"
"ldc2.conf"
)
sha256sums=('SKIP'
'SKIP'
'SKIP'
'SKIP'
'55ba34319db861a761797ac0075b0b1f5f4d37a243075aedb628aeedc77cc9d6')
prepare() {
cd "$srcdir/ldc"
git submodule init
git config submodule.druntime.url "$srcdir/druntime"
git config submodule.phobos.url "$srcdir/phobos"
git config submodule.tests/d2/dmd-testsuite.url "$srcdir/dmd-testsuite"
git submodule update
# Set version used for path construction in getFullClangCompilerRTLibPath()
sed -i "s/ldc::llvm_version_base/\"$_clangversion\"/" driver/linker-gcc.cpp
}
build() {
cd "$srcdir/ldc"
mkdir -p build && cd build
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SKIP_RPATH=ON \
-DINCLUDE_INSTALL_DIR=/usr/include/dlang/ldc \
-DBUILD_SHARED_LIBS=BOTH \
-DBUILD_LTO_LIBS=OFF \
-DLDC_WITH_LLD=OFF \
-DD_COMPILER_FLAGS="-link-defaultlib-shared=false" \
..
make
}
check() {
cd "$srcdir/ldc/build"
make all-test-runners
}
package_ldc() {
depends=('liblphobos' 'llvm-libs' 'gcc' 'compiler-rt')
backup=('etc/ldc2.conf')
provides=("d-compiler=$_dversion")
cd "$srcdir/ldc/build"
make install DESTDIR="$pkgdir"
# move bash-completion
mkdir -p "$pkgdir/usr/share/bash-completion/completions/"
mv "$pkgdir/etc/bash_completion.d/ldc2" "$pkgdir/usr/share/bash-completion/completions/"
rm -rf "$pkgdir/etc/bash_completion.d"
# remove liblphobos files
rm -rf "$pkgdir/usr/include"
rm -rf "$pkgdir/usr/lib"
# symlinks
ln -s /usr/share/bash-completion/completions/ldc2 "$pkgdir/usr/share/bash-completion/completions/ldc"
ln -s /usr/bin/ldc2 "$pkgdir/usr/bin/ldc"
ln -s /usr/bin/ldmd2 "$pkgdir/usr/bin/ldmd"
# licenses
install -D -m644 "$srcdir/ldc/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
# default configuration files
install -D -m644 "$srcdir/ldc2.conf" "$pkgdir/etc/ldc2.conf"
}
package_liblphobos() {
provides=('d-runtime' 'd-stdlib')
depends=('curl')
options=('staticlibs')
cd "$srcdir/ldc/build"
make install DESTDIR="$pkgdir"
# remove ldc files
rm -rf "$pkgdir/usr/bin/"
rm -rf "$pkgdir/etc/"
# licenses
install -D -m644 "$srcdir/ldc/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}