File tree 1 file changed +42
-0
lines changed
1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change
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
You can’t perform that action at this time.
0 commit comments