Mercurial > pymonkey
annotate setup.py @ 105:9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Sun, 16 Aug 2009 11:44:49 -0700 |
parents | 257de12e58c4 |
children | 1e6523de9df1 |
rev | line source |
---|---|
25
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
1 #! /usr/bin/env python |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
2 |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
3 import os |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
4 import sys |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
5 |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
6 if __name__ == '__main__': |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
7 # This code is run if we're executed directly from the command-line. |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
8 |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
9 myfile = os.path.abspath(__file__) |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
10 mydir = os.path.dirname(myfile) |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
11 sys.path.insert(0, os.path.join(mydir, 'python-modules')) |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
12 |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
13 args = sys.argv[1:] |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
14 if not args: |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
15 args = ['help'] |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
16 |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
17 # Have paver run this very file as its pavement script. |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
18 args = ['-f', myfile] + args |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
19 |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
20 import paver.tasks |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
21 paver.tasks.main(args) |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
22 sys.exit(0) |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
23 |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
24 # This code is run if we're executed as a pavement script by paver. |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
25 |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
26 import os |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
27 import subprocess |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
28 import shutil |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
29 import sys |
49
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
30 import webbrowser |
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
31 import urllib |
105
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
32 import urllib2 |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
33 import StringIO |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
34 import tarfile |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
35 import distutils.dir_util |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
36 import distutils.core |
25
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
37 |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
38 from paver.easy import * |
101
ca94f99ad55d
Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents:
96
diff
changeset
|
39 from paver.setuputils import setup |
ca94f99ad55d
Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents:
96
diff
changeset
|
40 |
ca94f99ad55d
Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents:
96
diff
changeset
|
41 SOURCE_FILES = ['pymonkey.cpp', |
ca94f99ad55d
Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents:
96
diff
changeset
|
42 'utils.cpp', |
ca94f99ad55d
Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents:
96
diff
changeset
|
43 'object.cpp', |
ca94f99ad55d
Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents:
96
diff
changeset
|
44 'function.cpp', |
ca94f99ad55d
Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents:
96
diff
changeset
|
45 'undefined.cpp', |
ca94f99ad55d
Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents:
96
diff
changeset
|
46 'context.cpp', |
ca94f99ad55d
Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents:
96
diff
changeset
|
47 'runtime.cpp'] |
ca94f99ad55d
Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents:
96
diff
changeset
|
48 |
105
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
49 SPIDERMONKEY_TAG = "1.8.1pre" |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
50 |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
51 SPIDERMONKEY_SRC_URL = ("http://hg.toolness.com/spidermonkey/archive/" |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
52 "%s.tar.bz2" % SPIDERMONKEY_TAG) |
101
ca94f99ad55d
Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents:
96
diff
changeset
|
53 |
105
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
54 SPIDERMONKEY_DIR = os.path.abspath('spidermonkey-%s' % SPIDERMONKEY_TAG) |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
55 |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
56 BUILD_DIR = os.path.abspath('build') |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
57 |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
58 SPIDERMONKEY_OBJDIR = os.path.join(BUILD_DIR, 'spidermonkey') |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
59 |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
60 SPIDERMONKEY_MAKEFILE = os.path.join(SPIDERMONKEY_OBJDIR, 'Makefile') |
101
ca94f99ad55d
Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents:
96
diff
changeset
|
61 |
103
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
62 setup_options = dict( |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
63 name='pymonkey', |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
64 version='0.0.1', |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
65 description='Access SpiderMonkey from Python', |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
66 author='Atul Varma', |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
67 author_email='atul@mozilla.com', |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
68 url='http://www.toolness.com' |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
69 ) |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
70 |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
71 ext_options = dict( |
105
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
72 include_dirs = [os.path.join(SPIDERMONKEY_OBJDIR, 'dist', 'include')], |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
73 library_dirs = [SPIDERMONKEY_OBJDIR] |
103
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
74 ) |
101
ca94f99ad55d
Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents:
96
diff
changeset
|
75 |
103
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
76 if sys.platform == 'win32': |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
77 # MSVC can't find the js_static.lib SpiderMonkey library, even though |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
78 # it exists and distutils is trying to tell it to link to it, so |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
79 # we'll just link to the DLL on Windows platforms and install |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
80 # it in a place where Windows can find it at runtime. |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
81 ext_options['libraries'] = ['js3250'] |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
82 ext_options['define_macros'] = [('XP_WIN', 1)] |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
83 # TODO: This is almost certainly not the ideal way to distribute |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
84 # a DLL used by a C extension module. |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
85 setup_options['data_files'] = [ |
105
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
86 ('Lib\\site-packages', [os.path.join(SPIDERMONKEY_OBJDIR, |
103
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
87 'js3250.dll')]) |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
88 ] |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
89 else: |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
90 ext_options['libraries'] = ['js_static'] |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
91 |
105
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
92 setup_options['ext_modules'] = [ |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
93 distutils.core.Extension('pymonkey', |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
94 SOURCE_FILES, |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
95 **ext_options) |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
96 ] |
103
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
97 |
257de12e58c4
Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
102
diff
changeset
|
98 setup(**setup_options) |
25
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
99 |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
100 @task |
49
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
101 def docs(options): |
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
102 """Open the Pymonkey documentation in your web browser.""" |
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
103 |
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
104 url = os.path.abspath(os.path.join("docs", "rendered", "index.html")) |
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
105 url = urllib.pathname2url(url) |
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
106 webbrowser.open(url) |
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
107 |
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
108 @task |
105
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
109 def build_spidermonkey(options): |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
110 """Fetch and build SpiderMonkey.""" |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
111 |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
112 if not os.path.exists(SPIDERMONKEY_DIR): |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
113 print("SpiderMonkey source directory not found, " |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
114 "fetching from %s." % SPIDERMONKEY_SRC_URL) |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
115 |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
116 urlfile = urllib2.urlopen(SPIDERMONKEY_SRC_URL) |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
117 output = StringIO.StringIO() |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
118 done = False |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
119 while not done: |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
120 stuff = urlfile.read(65536) |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
121 if stuff: |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
122 output.write(stuff) |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
123 sys.stdout.write(".") |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
124 sys.stdout.flush() |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
125 else: |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
126 done = True |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
127 sys.stdout.write("\n") |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
128 urlfile.close() |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
129 output.seek(0) |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
130 |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
131 print "Extracting files." |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
132 |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
133 tar = tarfile.open("", fileobj = output, mode = "r:bz2") |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
134 tar.extractall() |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
135 output.close() |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
136 |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
137 distutils.dir_util.mkpath(SPIDERMONKEY_OBJDIR) |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
138 |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
139 if not os.path.exists(SPIDERMONKEY_MAKEFILE): |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
140 print "Running configure." |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
141 |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
142 configure = os.path.join(SPIDERMONKEY_DIR, "js", "src", |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
143 "configure") |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
144 retval = subprocess.call([configure, |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
145 "--enable-static", |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
146 "--disable-tests"], |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
147 cwd = SPIDERMONKEY_OBJDIR) |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
148 if retval: |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
149 sys.exit(retval) |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
150 |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
151 print "Running make." |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
152 |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
153 retval = subprocess.call(["make"], cwd = SPIDERMONKEY_OBJDIR) |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
154 if retval: |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
155 sys.exit(retval) |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
156 |
9d4cd0803df5
Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents:
103
diff
changeset
|
157 @task |
49
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
158 def build_docs(options): |
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
159 """Build the Pymonkey documentation (requires Sphinx).""" |
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
160 |
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
161 retval = subprocess.call(["sphinx-build", |
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
162 "-b", "html", |
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
163 os.path.join("docs", "src"), |
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
164 os.path.join("docs", "rendered")]) |
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
165 if retval: |
51
fabd3f2271fa
Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents:
49
diff
changeset
|
166 sys.exit(retval) |
49
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
167 |
7401af070bb8
Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents:
37
diff
changeset
|
168 @task |
101
ca94f99ad55d
Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents:
96
diff
changeset
|
169 def test(options): |
ca94f99ad55d
Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents:
96
diff
changeset
|
170 """Test the Pymonkey Python C extension.""" |
25
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
171 |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
172 print "Running test suite." |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
173 |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
174 new_env = {} |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
175 new_env.update(os.environ) |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
176 |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
177 result = subprocess.call( |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
178 [sys.executable, |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
179 "test_pymonkey.py"], |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
180 env = new_env |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
181 ) |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
182 |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
183 if result: |
3c2151124cee
Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
184 sys.exit(result) |
51
fabd3f2271fa
Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents:
49
diff
changeset
|
185 |
fabd3f2271fa
Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents:
49
diff
changeset
|
186 print "Running doctests." |
fabd3f2271fa
Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents:
49
diff
changeset
|
187 |
fabd3f2271fa
Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents:
49
diff
changeset
|
188 # We have to add our current directory to the python path so that |
fabd3f2271fa
Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents:
49
diff
changeset
|
189 # our doctests can find the pymonkey module. |
fabd3f2271fa
Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents:
49
diff
changeset
|
190 new_env['PYTHONPATH'] = os.path.abspath('.') |
fabd3f2271fa
Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents:
49
diff
changeset
|
191 retval = subprocess.call(["sphinx-build", |
fabd3f2271fa
Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents:
49
diff
changeset
|
192 "-b", "doctest", |
fabd3f2271fa
Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents:
49
diff
changeset
|
193 os.path.join("docs", "src"), |
fabd3f2271fa
Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents:
49
diff
changeset
|
194 "_doctest_output"], |
fabd3f2271fa
Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents:
49
diff
changeset
|
195 env = new_env) |
fabd3f2271fa
Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents:
49
diff
changeset
|
196 if retval: |
fabd3f2271fa
Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents:
49
diff
changeset
|
197 sys.exit(retval) |