Date: Sunday, January 10, 2021 @ 00:31:32 Author: foutrelis Revision: 816860
archrelease: copy trunk to community-staging-x86_64 Added: ldc/repos/community-staging-x86_64/ ldc/repos/community-staging-x86_64/PKGBUILD (from rev 816859, ldc/trunk/PKGBUILD) ----------+ PKGBUILD | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) Copied: ldc/repos/community-staging-x86_64/PKGBUILD (from rev 816859, ldc/trunk/PKGBUILD) =================================================================== --- community-staging-x86_64/PKGBUILD (rev 0) +++ community-staging-x86_64/PKGBUILD 2021-01-10 00:31:32 UTC (rev 816860) @@ -0,0 +1,108 @@ +# Maintainer: Dan Printzell <a...@vild.io> +# Contributor: Mihails Strasuns <pub...@dicebot.lv> +# Contributor: Sven-Hendrik Haase <s...@lutzhaase.com> + +pkgname=('ldc' 'liblphobos') +groups=('dlang' 'dlang-ldc') +pkgver=1.24.0 +_pkgcommit=7b306c5ed148e39bcbd7143ca32416afe1a9ee5f +_dversion=2.094.1 +_clangversion=11.0.1 # related to where ldc2 looks for compiler-rt sanitizers +epoch=2 +pkgrel=3 +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=ON \ + -DLDC_WITH_LLD=OFF \ + -DD_COMPILER_FLAGS="-link-defaultlib-shared=false -linker=gold" \ + -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" +}