Date: Sunday, December 29, 2019 @ 23:56:19 Author: foutrelis Revision: 544073
archrelease: copy trunk to community-staging-x86_64 Added: ldc/repos/community-staging-x86_64/ ldc/repos/community-staging-x86_64/PKGBUILD (from rev 544072, ldc/trunk/PKGBUILD) ----------+ PKGBUILD | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) Copied: ldc/repos/community-staging-x86_64/PKGBUILD (from rev 544072, ldc/trunk/PKGBUILD) =================================================================== --- community-staging-x86_64/PKGBUILD (rev 0) +++ community-staging-x86_64/PKGBUILD 2019-12-29 23:56:19 UTC (rev 544073) @@ -0,0 +1,111 @@ +# Maintainer: +# Contributor: Mihails Strasuns <pub...@dicebot.lv> +# Contributor: Sven-Hendrik Haase <s...@lutzhaase.com> + +pkgname=('ldc' 'liblphobos') +groups=('dlang' 'dlang-ldc') +pkgver=1.18.0 +_pkgcommit=37b183f38f5dd0c4af778e63962954f8aeb929cd +_dversion=2.088.1 +_clangversion=9.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#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" +) + +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 + + # https://github.com/ldc-developers/ldc/issues/3079 + sed -i '/FileCheck/,$d' utils/CMakeLists.txt +} + +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/" + 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') + 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" +}