annotate Mac/Tools/IDE/BuildIDE.py @ 25838:8540887bcec6 2.2

Backport of 2.183: Fix memory leak in add_subclass() found by NealN with valgrind.
author Guido van Rossum <guido@python.org>
date Fri, 18 Oct 2002 13:42:21 +0000
parents 42b2f1936254
children c3a096bfbd6b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10086
c7144e7e8494 added some comments
Just van Rossum <just@lettererror.com>
parents: 10047
diff changeset
1 """Build a "big" applet for the IDE, and put it in the Python home
c7144e7e8494 added some comments
Just van Rossum <just@lettererror.com>
parents: 10047
diff changeset
2 directory. It will contain all IDE-specific modules as PYC resources,
c7144e7e8494 added some comments
Just van Rossum <just@lettererror.com>
parents: 10047
diff changeset
3 which reduces the startup time (especially on slower machines)."""
c7144e7e8494 added some comments
Just van Rossum <just@lettererror.com>
parents: 10047
diff changeset
4
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
5 import sys
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
6 import os
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
7 import buildtools
19488
42b2f1936254 Import the MacOS toolbox modules from the Carbon package.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
8 from Carbon import Res
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
9 import py_resource
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
10
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
11 buildtools.DEBUG=1
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
12
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
13 template = buildtools.findtemplate()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
14
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
15 ide_home = os.path.join(sys.exec_prefix, ":Mac:Tools:IDE")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
16
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
17 mainfilename = os.path.join(ide_home, "PythonIDE.py")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
18 dstfilename = os.path.join(sys.exec_prefix, "Python IDE")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
19
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
20 buildtools.process(template, mainfilename, dstfilename, 1)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
21
12972
fc77e34ef274 Replaced OpenResFile calls with FSpOpenResFile calls (which are carbon-compatible).
Jack Jansen <jack.jansen@cwi.nl>
parents: 10319
diff changeset
22 targetref = Res.FSpOpenResFile(dstfilename, 3)
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
23 Res.UseResFile(targetref)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
24
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
25 files = os.listdir(ide_home)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
26
10086
c7144e7e8494 added some comments
Just van Rossum <just@lettererror.com>
parents: 10047
diff changeset
27 # skip this script and the main program
c7144e7e8494 added some comments
Just van Rossum <just@lettererror.com>
parents: 10047
diff changeset
28 files = filter(lambda x: x[-3:] == '.py' and
c7144e7e8494 added some comments
Just van Rossum <just@lettererror.com>
parents: 10047
diff changeset
29 x not in ("BuildIDE.py", "PythonIDE.py"), files)
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
30
10086
c7144e7e8494 added some comments
Just van Rossum <just@lettererror.com>
parents: 10047
diff changeset
31 # add the modules as PYC resources
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
32 for name in files:
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
33 print "adding", name
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
34 fullpath = os.path.join(ide_home, name)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
35 id, name = py_resource.frompyfile(fullpath, name[:-3], preload=1,
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
36 ispackage=0)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
37
10086
c7144e7e8494 added some comments
Just van Rossum <just@lettererror.com>
parents: 10047
diff changeset
38 # add W resources
12972
fc77e34ef274 Replaced OpenResFile calls with FSpOpenResFile calls (which are carbon-compatible).
Jack Jansen <jack.jansen@cwi.nl>
parents: 10319
diff changeset
39 wresref = Res.FSpOpenResFile(os.path.join(ide_home, "Widgets.rsrc"), 1)
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
40 buildtools.copyres(wresref, targetref, [], 0)
10086
c7144e7e8494 added some comments
Just van Rossum <just@lettererror.com>
parents: 10047
diff changeset
41