Created
December 12, 2017 01:00
-
-
Save CyberShadow/784d4b3673b3046b329711b47a2396f6 to your computer and use it in GitHub Desktop.
ldc-git AUR package (fixed PKGBUILD)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*.pkg.tar.xz | |
/pkg/ | |
/src/ | |
/ldc/ | |
/dmd-testsuite/ | |
/druntime/ | |
/phobos/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Generated by mksrcinfo v8 | |
# Tue Dec 12 00:48:37 UTC 2017 | |
pkgbase = ldc-git | |
pkgdesc = A D Compiler based on the LLVM Compiler Infrastructure including D runtime and libphobos2 | |
pkgver = v1.7.0.beta1.2.g3a6d93b8 | |
pkgrel = 1 | |
epoch = 1 | |
url = https://github.com/ldc-developers/ldc | |
arch = i686 | |
arch = x86_64 | |
groups = dlang | |
groups = dlang-ldc | |
license = BSD | |
makedepends = git | |
makedepends = cmake | |
makedepends = llvm | |
makedepends = dmd | |
source = git+https://github.com/ldc-developers/ldc.git | |
source = git+https://github.com/ldc-developers/druntime.git | |
source = git+https://github.com/ldc-developers/phobos.git | |
source = git+https://github.com/ldc-developers/dmd-testsuite.git | |
source = ldc2.conf | |
sha256sums = SKIP | |
sha256sums = SKIP | |
sha256sums = SKIP | |
sha256sums = SKIP | |
sha256sums = 7f7eea41e730175ea52993f82bef5bdea6d6fc628344cda9488c04bf4b430024 | |
pkgname = ldc-git | |
depends = liblphobos-git | |
depends = llvm-libs | |
provides = d-compiler= | |
backup = etc/ldc2-git.conf | |
pkgname = liblphobos-git | |
depends = curl | |
provides = d-runtime | |
provides = d-stdlib | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// See comments in driver/config.d in ldc source tree for grammar description of | |
// this config file. | |
// The default group is required | |
default: | |
{ | |
// default switches injected before all explicit command-line switches | |
switches = [ | |
"-I/usr/include/dlang/ldc-git/ldc", | |
"-I/usr/include/dlang/ldc-git", | |
"-L--no-warn-search-mismatch", | |
"-defaultlib=phobos2-ldc-git,druntime-ldc-git", | |
"-debuglib=phobos2-ldc-git-debug,druntime-ldc-git-debug" | |
]; | |
// default switches appended after all explicit command-line switches | |
post-switches = [ | |
"-L-L/usr/lib", | |
]; | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Maintainer: Vladimir Panteleev <arch-pkg at thecybershadow.net> | |
# Contributor: zfo <zfoofz1@gmail.com> | |
# Contributor: Mihails Strasuns <public@dicebot.lv> | |
# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com> | |
_pkgname=ldc | |
pkgname=("${_pkgname}-git" 'liblphobos-git') | |
groups=('dlang' 'dlang-ldc') | |
pkgver=v1.7.0.beta1.2.g3a6d93b8 | |
epoch=1 | |
pkgrel=1 | |
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') | |
makedepends=('git' 'cmake' 'llvm' 'dmd') | |
source=("git+https://github.com/ldc-developers/ldc.git" | |
"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" | |
"ldc2.conf") | |
sha256sums=('SKIP' | |
'SKIP' | |
'SKIP' | |
'SKIP' | |
'7f7eea41e730175ea52993f82bef5bdea6d6fc628344cda9488c04bf4b430024') | |
pkgver() { | |
cd "${srcdir}/${_pkgname}" | |
git describe --tags HEAD | sed 's/-/./g' | |
} | |
prepare() { | |
cd "${srcdir}/${_pkgname}" | |
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 | |
# patch the config file to be /etc/ldc2-git.conf | |
sed 's/ldc2[.]conf/ldc2-git.conf/' -i driver/configfile.cpp | |
# patch ldc to properly link to ldc-git (needed for ldmd) | |
sed 's/LDC_EXE ldc2/LDC_EXE ldc2-git/' -i CMakeLists.txt | |
sed 's/LDMD_EXE ldmd2/LDMD_EXE ldmd2-git/' -i CMakeLists.txt | |
# patch bash-completion | |
sed 's/\(ldc2\?\)\b/\1-git/g' -i bash_completion.d/ldc2 | |
# it's faster just to rename the config files | |
mv ldc2_phobos.conf.in ldc2-git_phobos.conf.in | |
mv ldc2_install.conf.in ldc2-git_install.conf.in | |
} | |
build() { | |
cd "${srcdir}/${_pkgname}" | |
mkdir -p build && cd build | |
# workaround for wrong ld flag format generated by cmake: | |
# export LDFLAGS="-L-O1 -L--sort-common -L--as-needed -L-z -Lrelro" | |
local args=( | |
env | |
# Use host DMD | |
# This 1) ensures we use the main dmd package, and not something in the user's $PATH; | |
# and 2) compilation with ldc links Phobos/Druntime as shared libraries; | |
# dmd does static linking to the rescue! | |
DMD=/usr/bin/dmd | |
cmake | |
-DCMAKE_INSTALL_PREFIX=/usr | |
-DCMAKE_BUILD_TYPE=Release | |
-DCMAKE_SKIP_RPATH=ON | |
-DINCLUDE_INSTALL_DIR=/usr/include/dlang/ldc-git | |
# This is the git version - use static linking by default | |
# -DBUILD_SHARED_LIBS=ON | |
# -DLDC_WITH_LLD=OFF | |
-DBUILD_SHARED_LIBS=OFF | |
.. | |
) | |
"${args[@]}" | |
make | |
} | |
package_ldc-git() { | |
local dmd_fe_ver | |
dmd_fe_ver=$(sed -n 's/^.*dmd_version = "v\(.*\)";$/\1/p' \ | |
"${srcdir}/${_pkgname}/build/driver/ldc-version.cpp") | |
depends=('liblphobos-git' 'llvm-libs') | |
backup=('etc/ldc2-git.conf') | |
provides=("d-compiler=${dmd_fe_ver}") | |
cd "${srcdir}/${_pkgname}/build" | |
make install DESTDIR="${pkgdir}" | |
# rename binaries | |
for f in profdata prune-cache; do | |
mv "${pkgdir}/usr/bin/ldc-$f" \ | |
"${pkgdir}/usr/bin/ldc-git-$f" | |
done | |
# rename bash-completion | |
mv "${pkgdir}/usr/share/bash-completion/completions/ldc2" \ | |
"${pkgdir}/usr/share/bash-completion/completions/ldc2-git" | |
# remove liblphobos files | |
rm -rf "${pkgdir}/usr/include" | |
rm -rf "${pkgdir}/usr/lib" | |
# remove misc | |
rm -rf "${pkgdir}/usr/bin/ldc-build-runtime" | |
# symlinks | |
ln -s ldc2-git "${pkgdir}/usr/share/bash-completion/completions/ldc-git" | |
ln -s ldc2-git "${pkgdir}/usr/bin/ldc-git" | |
ln -s ldmd2-git "${pkgdir}/usr/bin/ldmd-git" | |
# 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-git.conf" | |
} | |
package_liblphobos-git() { | |
provides=('d-runtime' 'd-stdlib') | |
depends=('curl') | |
cd "${srcdir}/ldc/build" | |
make install DESTDIR="${pkgdir}" | |
# remove ldc files | |
rm -rf "${pkgdir}/usr/bin/" | |
rm -rf "${pkgdir}/etc/" | |
rm -rf "${pkgdir}/usr/share/bash-completion/" | |
# rename libraries | |
for f in libphobos2-ldc libdruntime-ldc libphobos2-ldc-debug libdruntime-ldc-debug \ | |
libldc-jit libldc-jit-rt libldc-profile-rt; do | |
for ext in a so; do | |
test -e "${pkgdir}/usr/lib/$f.$ext" && \ | |
mv "${pkgdir}/usr/lib/$f.$ext" "${pkgdir}/usr/lib/$f-git.$ext" | |
done | |
done | |
# licenses | |
install -D -m644 "${srcdir}/ldc/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment