[svn:parrot] r42603 - trunk/runtime/parrot/library

fperrad at svn.parrot.org fperrad at svn.parrot.org
Fri Nov 20 18:07:07 UTC 2009


Author: fperrad
Date: Fri Nov 20 18:07:06 2009
New Revision: 42603
URL: https://trac.parrot.org/parrot/changeset/42603

Log:
[distutils] add a target 'win32-inno-installer'

Modified:
   trunk/runtime/parrot/library/distutils.pir

Modified: trunk/runtime/parrot/library/distutils.pir
==============================================================================
--- trunk/runtime/parrot/library/distutils.pir	Fri Nov 20 17:28:18 2009	(r42602)
+++ trunk/runtime/parrot/library/distutils.pir	Fri Nov 20 18:07:06 2009	(r42603)
@@ -35,6 +35,8 @@
 
 L<http://github.com/fperrad/wmlscript/blob/master/setup.pir>
 
+L<http://github.com/fperrad/lua-batteries/blob/master/setup.pir>
+
 =cut
 
 .sub '__onload' :load :init :anon
@@ -109,6 +111,13 @@
 
     .const 'Sub' _usage = '_usage'
     register_step('usage', _usage)
+
+    $P0 = get_config()
+    $S0 = $P0['osname']
+    unless $S0 == 'MSWin32' goto L1
+    .const 'Sub' _win32_inno_installer = '_win32_inno_installer'
+    register_step('win32-inno-installer', _win32_inno_installer)
+  L1:
 .end
 
 =head3 Functions
@@ -1865,6 +1874,56 @@
   L2:
 .end
 
+=head3 Step win32-inno-installer
+
+Only on Windows.
+
+Currently use the Perl script tools/dev/mk_inno_language.pl
+
+=cut
+
+.sub '_win32_inno_installer' :anon
+    .param pmc kv :slurpy :named
+
+    $I0 = exists kv['installable_pbc']
+    unless $I0 goto L1
+    $P0 = kv['installable_pbc']
+    .local string exe, bin, pbc
+    exe = get_exe()
+    $P1 = iter $P0
+  L2:
+    unless $P1 goto L1
+    bin = shift $P1
+    pbc = $P0[bin]
+    $I0 = length pbc
+    $I0 -= 4
+    $S0 = substr pbc, 0, $I0
+    $S1 = 'installable_' . $S0
+    $S1 .= exe
+    $S2 = bin . exe
+    cp($S1, $S2)
+    goto L2
+  L1:
+
+    .local string lang
+    $S0 = cwd()
+    lang = basename($S0)
+
+    .local string cmd
+    cmd = "perl -I"
+    $S0 = get_libdir()
+    cmd .= $S0
+    cmd .= "/tools/lib "
+    cmd .= $S0
+    cmd .= "/tools/dev/mk_inno_language.pl "
+    cmd .= lang
+    system(cmd)
+
+    cmd = "iscc parrot-" . lang
+    cmd .= ".iss"
+    system(cmd)
+.end
+
 =head3 Configuration Helpers
 
 =over 4
@@ -2257,6 +2316,8 @@
 .sub 'cwd'
     new $P0, 'OS'
     $S0 = $P0.'cwd'()
+    $P0 = split "\\", $S0
+    $S0 = join "/", $P0
     .return ($S0)
 .end
 


More information about the parrot-commits mailing list