# Maintainer: Dan Printzell # Contributor: Mihails Strasuns # Contributor: Sven-Hendrik Haase # ALARM: Kevin Mihelich # - -DBUILD_LTO_LIBS=OFF # - removed "-linker=gold -flto=full" from -DD_COMPILER_FLAGS buildarch=12 pkgname=('ldc' 'liblphobos') groups=('dlang' 'dlang-ldc') pkgver=1.24.0 _pkgcommit=7b306c5ed148e39bcbd7143ca32416afe1a9ee5f _dversion=2.094.1 _clangversion=11.0.0 # 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#commit=$_pkgcommit" "ldc-druntime::git+https://github.com/ldc-developers/druntime.git" "ldc-phobos::git+https://github.com/ldc-developers/phobos.git" "ldc-testsuite::git+https://github.com/ldc-developers/dmd-testsuite.git" ) sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP') prepare() { cd "$srcdir/ldc" git submodule init git config submodule.druntime.url "$srcdir/ldc-druntime" git config submodule.phobos.url "$srcdir/ldc-phobos" git config submodule.tests/d2/dmd-testsuite.url "$srcdir/ldc-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" \ -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/" 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" } package_liblphobos() { provides=('d-runtime' 'd-stdlib') depends=('curl' 'llvm-libs') options=('staticlibs' '!strip') 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" }