# $Id: PKGBUILD 131007 2015-04-09 05:52:39Z dicebot $
# Maintainer: Mihails Strasuns <public@dicebot.lv>
# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com>
pkgname=('ldc' 'liblphobos')
groups=('dlang' 'dlang-ldc')
pkgver=0.15.1
epoch=1
pkgrel=6
pkgdesc="A D Compiler based on the LLVM Compiler Infrastructure including D runtime and libphobos2"
arch=('i686' 'x86_64')
url="https://github.com/ldc-developers/ldc"
license=('BSD')
depends=('libconfig')
makedepends=('git' 'cmake' 'llvm35')
source=("git://github.com/ldc-developers/ldc.git#tag=v${pkgver}"
        "ldc2.conf"
        "mul.diff"
       )
sha1sums=('SKIP'
          '290689ded66a12a243666d0bac3ffb74180fa490'
          '5a7f6c83285ab6a1ceb6ab93c68c6f2169564691'
         )

build() {
    cd $srcdir/ldc

    git submodule update --init --recursive

    # workaround for https://github.com/ldc-developers/ldc/issues/813
    if [ $CARCH != x86_64 ]
    then
        cd ./runtime/druntime
        git apply $srcdir/mul.diff
        cd $srcdir/ldc
    fi

    mkdir build && cd build
    cmake \
    -DCMAKE_SKIP_RPATH=ON \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DINCLUDE_INSTALL_DIR=/usr/include/dlang/ldc \
    -DBUILD_SHARED_LIBS=ON \
    ..
    make
}

package_ldc() {
    depends=('liblphobos' 'libconfig')
    backup=("etc/ldc2.conf")
    provides=("d-compiler")

    # binaries
    install -D -m755 $srcdir/ldc/build/bin/ldmd2 $pkgdir/usr/bin/ldmd
    ln -s /usr/bin/ldmd $pkgdir/usr/bin/ldmd2
    install -D -m755 $srcdir/ldc/build/bin/ldc2 $pkgdir/usr/bin/ldc
    ln -s /usr/bin/ldc $pkgdir/usr/bin/ldc2

    # supplementaries
    install -D -m644 $srcdir/ldc/bash_completion.d/ldc $pkgdir/usr/share/bash-completion/completions/ldc

    # 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")
    replaces=("liblphobos-devel")
    conflicts=("liblphobos-devel")
    depends=("curl")

    # licenses
    install -D -m644 $srcdir/ldc/LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE    

    # libraries
    install -D -m644 $srcdir/ldc/build/lib/libphobos2-ldc.so $pkgdir/usr/lib/liblphobos2.so
    install -D -m644 $srcdir/ldc/build/lib/libdruntime-ldc.so $pkgdir/usr/lib/libldruntime.so
    install -D -m644 $srcdir/ldc/build/lib/libphobos2-ldc-debug.so $pkgdir/usr/lib/liblphobos2-debug.so
    install -D -m644 $srcdir/ldc/build/lib/libdruntime-ldc-debug.so $pkgdir/usr/lib/libldruntime-debug.so

    # imports
    mkdir -p $pkgdir/usr/include/dlang/ldc
    cp -r $srcdir/ldc/build/import/* $pkgdir/usr/include/dlang/ldc/
    cp -r $srcdir/ldc/runtime/phobos/std $pkgdir/usr/include/dlang/ldc/
    cp -r $srcdir/ldc/runtime/phobos/etc $pkgdir/usr/include/dlang/ldc/
}
