Skip to content

Commit 5adad40

Browse files
committed
bootstrap-ldc: new script
1 parent 32eef59 commit 5adad40

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

bootstrap-ldc.sh

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/bash -e
2+
3+
GDMD_WRAPPER="https://cdn.jsdelivr.net/gh/D-Programming-GDC/gdmd@ff2c97a47408fb71c18a2d453294d18808a97cc5/dmd-script"
4+
TREE_DIR="/tree/extra-dlang/ldc/"
5+
6+
if [ ! -d /tree ]; then
7+
echo '[!] Must be run from a Ciel container!'
8+
exit 1
9+
fi
10+
11+
echo '[+] Installing GDMD wrapper for gdc ...'
12+
wget "$GDMD_WRAPPER" -O /usr/bin/gdmd
13+
chmod a+x /usr/bin/gdmd
14+
15+
echo '[+] Removing ldc ...'
16+
apt-get purge ldc || true
17+
sed -i "s| ldc||" "${TREE_DIR}01-liblphobos/defines"
18+
19+
echo '[+] Patching LDC building scripts ...'
20+
cat << 'EOF' | perl -
21+
my $filename = '/tree/extra-dlang/ldc/01-liblphobos/build';
22+
my $regex = qr/cmake \.\..+?ninja/msp;
23+
my $subst = 'cmake .. -GNinja -DD_COMPILER=/usr/bin/gdmd -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr;ninja';
24+
25+
my $file_content = do{local(@ARGV,$/)=$filename;<>};
26+
my $result = $file_content =~ s/$regex/$subst/rg;
27+
open(FH, '>', $filename) or die $!;
28+
29+
print FH "$result\n";
30+
EOF
31+
32+
echo '[+] Bootstrapping LDC ...'
33+
acbs-build ldc
34+
35+
echo '[+] Restoring Git tree ...'
36+
pushd /tree
37+
git checkout -f 'extra-dlang/ldc/'
38+
popd
39+
rm -v /usr/bin/gdmd
40+
41+
echo '[+] Re-building LDC with LDC ...'
42+
acbs-build ldc

0 commit comments

Comments
 (0)