# Maintainer: # Contributor: Mihails Strasuns # Contributor: Sven-Hendrik Haase pkgname=('ldc' 'liblphobos') groups=('dlang' 'dlang-ldc') pkgver=1.17.0 _dversion=2.087.1 _clangversion=8.0.1 # related to where ldc2 looks for compiler-rt sanitizers epoch=2 pkgrel=2 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#tag=v$pkgver" "git+https://github.com/ldc-developers/druntime.git#tag=ldc-v$pkgver" "git+https://github.com/ldc-developers/phobos.git#tag=ldc-v$pkgver" "git+https://github.com/ldc-developers/dmd-testsuite.git#tag=ldc-v$pkgver" ) sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP') 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=ON \ -DLDC_WITH_LLD=OFF \ -DD_COMPILER_FLAGS="-link-defaultlib-shared=false -linker=gold -flto=full" \ -DADDITIONAL_DEFAULT_LDC_SWITCHES="\"-link-defaultlib-shared\"" \ .. 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/" 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" } 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/" rm -rf "$pkgdir/usr/share/bash-completion/completions/ldc2" # licenses install -D -m644 "$srcdir/ldc/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" }