PKGBUILDs/extra/ldc/PKGBUILD

112 lines
3.2 KiB
Bash
Raw Permalink Normal View History

2022-01-23 03:59:48 +00:00
# Maintainer: Dan Printzell <wild@archlinux.org>
2018-12-07 03:48:54 +00:00
# Contributor: Mihails Strasuns <public@dicebot.lv>
# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - -DBUILD_LTO_LIBS=OFF
2021-08-04 02:45:02 +00:00
# - -DLDC_BUILD_WITH_LTO=OFF
2022-01-23 03:59:48 +00:00
# - removed "-linker=gold -flto=thin" from -DD_COMPILER_FLAGS
2021-08-04 02:45:02 +00:00
# - ninja -j2 due to RAM constraints
2018-12-07 03:48:54 +00:00
pkgname=('ldc' 'liblphobos')
groups=('dlang' 'dlang-ldc')
2024-07-07 14:58:02 +00:00
pkgver=1.39.0
_pkgcommit=ff7954cf1843b36f2a5caf1dacbf1ecf8803f77c
_dversion=2.109.1
2024-07-05 22:44:53 +00:00
_clangversion=18 # related to where ldc2 looks for compiler-rt sanitizers
2021-10-24 03:08:33 +00:00
epoch=3
2024-07-07 14:58:02 +00:00
pkgrel=1
2018-12-07 03:48:54 +00:00
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"
2024-07-07 14:58:02 +00:00
license=('BSD-3-Clause AND BSL-1.0 AND Apache-2.0 WITH LLVM-exception')
2024-03-07 20:35:44 +00:00
makedepends=('git' 'cmake' 'llvm' 'lld' 'ldc' 'ninja')
2022-01-23 03:59:48 +00:00
# Disable lto as linking the ldc2 binary fails
options=(!lto)
2018-12-07 03:48:54 +00:00
source=(
"git+https://github.com/ldc-developers/ldc#commit=$_pkgcommit"
2020-04-19 16:44:48 +00:00
"ldc-phobos::git+https://github.com/ldc-developers/phobos.git"
2018-12-07 03:48:54 +00:00
)
2024-07-07 14:58:02 +00:00
sha256sums=('c4bd5bf5337f2286a88c69c0d69d9ba88e03f8c519e79d19ce3ddeb761aa4f3e'
2022-01-23 03:59:48 +00:00
'SKIP')
2018-12-07 03:48:54 +00:00
prepare() {
cd "$srcdir/ldc"
git submodule init
2020-04-19 16:44:48 +00:00
git config submodule.phobos.url "$srcdir/ldc-phobos"
2023-01-18 12:18:08 +00:00
git -c protocol.file.allow=always submodule update
2018-12-07 03:48:54 +00:00
2024-03-07 20:35:44 +00:00
# Set version used for path construction in getRelativeClangCompilerRTLibPath()
2018-12-07 03:48:54 +00:00
sed -i "s/ldc::llvm_version_base/\"$_clangversion\"/" driver/linker-gcc.cpp
}
build() {
cd "$srcdir/ldc"
mkdir -p build && cd build
2021-02-23 22:39:45 +00:00
cmake -GNinja \
2018-12-07 03:48:54 +00:00
-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 \
2021-08-04 02:45:02 +00:00
-DLDC_BUILD_WITH_LTO=OFF \
2018-12-07 03:48:54 +00:00
-DLDC_WITH_LLD=OFF \
-DD_COMPILER_FLAGS="-link-defaultlib-shared=false" \
2023-09-03 20:35:09 +00:00
-DADDITIONAL_DEFAULT_LDC_SWITCHES="\"-link-defaultlib-shared\"," \
2018-12-07 03:48:54 +00:00
..
2021-08-04 02:45:02 +00:00
ninja -j2
2018-12-07 03:48:54 +00:00
}
check() {
cd "$srcdir/ldc/build"
2021-02-23 22:39:45 +00:00
ninja all-test-runners
2018-12-07 03:48:54 +00:00
}
package_ldc() {
2023-09-03 20:35:09 +00:00
depends=('liblphobos' 'llvm-libs' 'gcc' 'compiler-rt')
2018-12-07 03:48:54 +00:00
backup=('etc/ldc2.conf')
provides=("d-compiler=$_dversion")
cd "$srcdir/ldc/build"
2021-02-23 22:39:45 +00:00
DESTDIR="$pkgdir" ninja install
2018-12-07 03:48:54 +00:00
# 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')
2021-06-06 20:37:26 +00:00
depends=('curl')
2024-05-19 22:08:19 +00:00
options=('staticlibs')
2018-12-07 03:48:54 +00:00
cd "$srcdir/ldc/build"
2021-02-23 22:39:45 +00:00
DESTDIR="$pkgdir" ninja install
2018-12-07 03:48:54 +00:00
# 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"
}