]> git.saurik.com Git - wxWidgets.git/blame - wxPython/setup.py
Show PlatformInfo in the About box too.
[wxWidgets.git] / wxPython / setup.py
CommitLineData
c368d904
RD
1#!/usr/bin/env python
2#----------------------------------------------------------------------
1128a89b
RD
3# Name: setup.py
4# Purpose: Distutils script for building wxPython
5#
6# Author: Robin Dunn
7#
8# Created: 12-Oct-2000
9# RCS-ID: $Id$
10# Copyright: (c) 2000 by Total Control Software
11# Licence: wxWindows license
1e4a197e
RD
12#----------------------------------------------------------------------
13
1128a89b 14import sys
e6056257 15
e6056257 16
1128a89b
RD
17# The full contents of the wx.build.config module used to be located
18# here in setup.py. They were split into a separate module so it will
19# be installed with wxPython and can then be used by the build scripts
20# of other extension modules that wich to be wxPython compatible. The
21# split is still fairly new and hasn't been tested by building
22# third-party extensions yet, so expect some things to still shift
23# back and forth, and also more stuff in config.py will get converted
24# to functions, etc.
e6056257 25
8f8c4b40
RD
26# This script imports it as just "config" because if wxPython doesn't
27# exist yet, then it can't be imported from wx.build.config (since
28# wx._core doesn't exist yet.) So instead we keep the main copy of
29# config .py in the same place as setup.py, and then copy it to
30# wx/build as needed below.
31
1128a89b 32sys.setup_is_main = __name__ == "__main__" # an icky hack!
8f8c4b40
RD
33from config import *
34
35
36#----------------------------------------------------------------------
37# Update the packaged config file.
38#----------------------------------------------------------------------
c368d904 39
8f8c4b40
RD
40copy_file('config.py', 'wx/build', update=1, verbose=1)
41CLEANUP.append('wx/build/config.py')
c368d904 42
c368d904 43#----------------------------------------------------------------------
1fded56b 44# Update the version file
c368d904
RD
45#----------------------------------------------------------------------
46
1128a89b
RD
47# The version file is unconditionally updated every time setup.py is
48# run since the version string can change based on the UNICODE flag
49
e83135b2 50open('wx/__version__.py', 'w').write("""\
1fded56b
RD
51# This file was generated by setup.py...
52
d14a1e28
RD
53VERSION_STRING = '%(VERSION)s'
54MAJOR_VERSION = %(VER_MAJOR)s
55MINOR_VERSION = %(VER_MINOR)s
56RELEASE_VERSION = %(VER_RELEASE)s
57SUBREL_VERSION = %(VER_SUBREL)s
1fded56b 58
d14a1e28 59VERSION = (MAJOR_VERSION, MINOR_VERSION, RELEASE_VERSION,
e83135b2 60 SUBREL_VERSION, '%(VER_FLAGS)s')
1fded56b 61
d14a1e28 62RELEASE_NUMBER = RELEASE_VERSION # for compatibility
1fded56b 63""" % globals())
1e4a197e 64
99abd512 65CLEANUP.append('wx/__version__.py')
c368d904 66
1b62f00d 67
41e8a69c
RD
68#----------------------------------------------------------------------
69# patch distutils if it can't cope with the "classifiers" or
70# "download_url" keywords
71#----------------------------------------------------------------------
72
73if sys.version < '2.2.3':
74 from distutils.dist import DistributionMetadata
75 DistributionMetadata.classifiers = None
76 DistributionMetadata.download_url = None
77 depends = {}
78else:
79 depends = {'depends' : depends}
80
81
1b62f00d
RD
82#----------------------------------------------------------------------
83# Define the CORE extension module
84#----------------------------------------------------------------------
85
1e4a197e 86msg('Preparing CORE...')
d14a1e28
RD
87swig_sources = run_swig(['core.i'], 'src', GENDIR, PKGDIR,
88 USE_SWIG, swig_force, swig_args, swig_deps +
1e0c8722
RD
89 [ 'src/_accel.i',
90 'src/_app.i',
d14a1e28
RD
91 'src/_app_ex.py',
92 'src/_constraints.i',
93 'src/_core_api.i',
94 'src/_core_ex.py',
54f9ee45
RD
95 'src/__core_rename.i',
96 'src/__core_reverse.txt',
d14a1e28
RD
97 'src/_defs.i',
98 'src/_event.i',
99 'src/_event_ex.py',
38b97c15 100 'src/_evtloop.i',
d14a1e28
RD
101 'src/_evthandler.i',
102 'src/_filesys.i',
103 'src/_gdicmn.i',
104 'src/_image.i',
105 'src/_menu.i',
106 'src/_obj.i',
107 'src/_sizers.i',
108 'src/_gbsizer.i',
109 'src/_streams.i',
110 'src/_validator.i',
111 'src/_window.i',
99abd512 112 'src/_control.i',
54f9ee45
RD
113 ],
114 True)
1b62f00d 115
1e4a197e 116copy_file('src/__init__.py', PKGDIR, update=1, verbose=0)
99abd512 117CLEANUP.append(opj(PKGDIR, '__init__.py'))
1b62f00d
RD
118
119
d14a1e28
RD
120# update the license files
121mkpath('licence')
122for file in ['preamble.txt', 'licence.txt', 'licendoc.txt', 'lgpl.txt']:
123 copy_file(opj(WXDIR, 'docs', file), opj('licence',file), update=1, verbose=0)
99abd512
RD
124 CLEANUP.append(opj('licence',file))
125CLEANUP.append('licence')
c368d904 126
c368d904 127
1e4a197e
RD
128if os.name == 'nt':
129 build_locale_dir(opj(PKGDIR, 'locale'))
130 DATA_FILES += build_locale_list(opj(PKGDIR, 'locale'))
4f3449b4
RD
131
132
1e4a197e
RD
133if os.name == 'nt':
134 rc_file = ['src/wxc.rc']
135else:
136 rc_file = []
137
138
54f9ee45
RD
139ext = Extension('_core_', ['src/helpers.cpp',
140 'src/libpy.c',
141 ] + rc_file + swig_sources,
1e4a197e
RD
142
143 include_dirs = includes,
144 define_macros = defines,
145
146 library_dirs = libdirs,
147 libraries = libs,
148
149 extra_compile_args = cflags,
150 extra_link_args = lflags,
d14a1e28 151
41e8a69c 152 **depends
1e4a197e
RD
153 )
154wxpExtensions.append(ext)
155
156
d14a1e28
RD
157
158
159
160# Extension for the GDI module
161swig_sources = run_swig(['gdi.i'], 'src', GENDIR, PKGDIR,
162 USE_SWIG, swig_force, swig_args, swig_deps +
54f9ee45 163 ['src/__gdi_rename.i',
99abd512
RD
164 'src/_bitmap.i',
165 'src/_colour.i',
166 'src/_dc.i',
167 'src/_gdiobj.i',
168 'src/_imaglist.i',
169 'src/_region.i',
170 'src/_stockobjs.i',
d14a1e28 171 'src/_effects.i',
99abd512
RD
172 'src/_intl.i',
173 'src/_intl_ex.py',
174 'src/_brush.i',
175 'src/_cursor.i',
176 'src/_font.i',
177 'src/_icon.i',
178 'src/_pen.i',
179 'src/_palette.i',
54f9ee45
RD
180 ],
181 True)
182ext = Extension('_gdi_', ['src/drawlist.cpp'] + swig_sources,
1e4a197e
RD
183 include_dirs = includes,
184 define_macros = defines,
185 library_dirs = libdirs,
186 libraries = libs,
187 extra_compile_args = cflags,
188 extra_link_args = lflags,
41e8a69c 189 **depends
1e4a197e
RD
190 )
191wxpExtensions.append(ext)
192
193
d14a1e28
RD
194
195
196
197
198# Extension for the windows module
199swig_sources = run_swig(['windows.i'], 'src', GENDIR, PKGDIR,
200 USE_SWIG, swig_force, swig_args, swig_deps +
54f9ee45
RD
201 ['src/__windows_rename.i',
202 'src/__windows_reverse.txt',
d14a1e28 203 'src/_panel.i',
99abd512
RD
204 'src/_toplvl.i',
205 'src/_statusbar.i',
206 'src/_splitter.i',
207 'src/_sashwin.i',
208 'src/_popupwin.i',
209 'src/_tipwin.i',
210 'src/_vscroll.i',
211 'src/_taskbar.i',
212 'src/_cmndlgs.i',
213 'src/_mdi.i',
214 'src/_pywindows.i',
215 'src/_printfw.i',
54f9ee45
RD
216 ],
217 True)
218ext = Extension('_windows_', swig_sources,
1e4a197e
RD
219 include_dirs = includes,
220 define_macros = defines,
221 library_dirs = libdirs,
222 libraries = libs,
223 extra_compile_args = cflags,
224 extra_link_args = lflags,
41e8a69c 225 **depends
1e4a197e
RD
226 )
227wxpExtensions.append(ext)
228
229
d14a1e28
RD
230
231
232# Extension for the controls module
233swig_sources = run_swig(['controls.i'], 'src', GENDIR, PKGDIR,
234 USE_SWIG, swig_force, swig_args, swig_deps +
54f9ee45
RD
235 [ 'src/__controls_rename.i',
236 'src/__controls_reverse.txt',
cf636c45 237 'src/_toolbar.i',
99abd512
RD
238 'src/_button.i',
239 'src/_checkbox.i',
240 'src/_choice.i',
241 'src/_combobox.i',
242 'src/_gauge.i',
243 'src/_statctrls.i',
244 'src/_listbox.i',
245 'src/_textctrl.i',
246 'src/_scrolbar.i',
247 'src/_spin.i',
248 'src/_radio.i',
249 'src/_slider.i',
250 'src/_tglbtn.i',
251 'src/_notebook.i',
252 'src/_listctrl.i',
253 'src/_treectrl.i',
254 'src/_dirctrl.i',
255 'src/_pycontrol.i',
256 'src/_cshelp.i',
257 'src/_dragimg.i',
54f9ee45
RD
258 ],
259 True)
260ext = Extension('_controls_', swig_sources,
d14a1e28
RD
261 include_dirs = includes,
262 define_macros = defines,
263 library_dirs = libdirs,
264 libraries = libs,
265 extra_compile_args = cflags,
266 extra_link_args = lflags,
41e8a69c 267 **depends
d14a1e28
RD
268 )
269wxpExtensions.append(ext)
270
271
272
273
274# Extension for the misc module
275swig_sources = run_swig(['misc.i'], 'src', GENDIR, PKGDIR,
276 USE_SWIG, swig_force, swig_args, swig_deps +
54f9ee45
RD
277 [ 'src/__misc_rename.i',
278 'src/__misc_reverse.txt',
279 'src/_settings.i',
99abd512
RD
280 'src/_functions.i',
281 'src/_misc.i',
282 'src/_tipdlg.i',
283 'src/_timer.i',
284 'src/_log.i',
285 'src/_process.i',
286 'src/_joystick.i',
287 'src/_sound.i',
288 'src/_mimetype.i',
289 'src/_artprov.i',
290 'src/_config.i',
291 'src/_datetime.i',
292 'src/_dataobj.i',
293 'src/_dnd.i',
294 'src/_display.i',
d14a1e28 295 'src/_clipbrd.i',
54f9ee45
RD
296 ],
297 True)
298ext = Extension('_misc_', swig_sources,
d14a1e28
RD
299 include_dirs = includes,
300 define_macros = defines,
301 library_dirs = libdirs,
302 libraries = libs,
303 extra_compile_args = cflags,
304 extra_link_args = lflags,
41e8a69c 305 **depends
d14a1e28
RD
306 )
307wxpExtensions.append(ext)
308
309
310
311##
312## Core modules that are not in the "core" namespace start here
313##
314
1e4a197e
RD
315swig_sources = run_swig(['calendar.i'], 'src', GENDIR, PKGDIR,
316 USE_SWIG, swig_force, swig_args, swig_deps)
d14a1e28
RD
317ext = Extension('_calendar', swig_sources,
318 include_dirs = includes,
319 define_macros = defines,
320 library_dirs = libdirs,
321 libraries = libs,
322 extra_compile_args = cflags,
323 extra_link_args = lflags,
41e8a69c 324 **depends
d14a1e28
RD
325 )
326wxpExtensions.append(ext)
327
328
329swig_sources = run_swig(['grid.i'], 'src', GENDIR, PKGDIR,
330 USE_SWIG, swig_force, swig_args, swig_deps)
331ext = Extension('_grid', swig_sources,
1e4a197e
RD
332 include_dirs = includes,
333 define_macros = defines,
334 library_dirs = libdirs,
335 libraries = libs,
336 extra_compile_args = cflags,
337 extra_link_args = lflags,
41e8a69c 338 **depends
1e4a197e
RD
339 )
340wxpExtensions.append(ext)
341
342
d14a1e28
RD
343
344swig_sources = run_swig(['html.i'], 'src', GENDIR, PKGDIR,
1e4a197e 345 USE_SWIG, swig_force, swig_args, swig_deps)
d14a1e28 346ext = Extension('_html', swig_sources,
1e4a197e
RD
347 include_dirs = includes,
348 define_macros = defines,
349 library_dirs = libdirs,
350 libraries = libs,
351 extra_compile_args = cflags,
352 extra_link_args = lflags,
41e8a69c 353 **depends
1e4a197e
RD
354 )
355wxpExtensions.append(ext)
356
357
d14a1e28 358
1e4a197e
RD
359swig_sources = run_swig(['wizard.i'], 'src', GENDIR, PKGDIR,
360 USE_SWIG, swig_force, swig_args, swig_deps)
d14a1e28 361ext = Extension('_wizard', swig_sources,
1e4a197e
RD
362 include_dirs = includes,
363 define_macros = defines,
364 library_dirs = libdirs,
365 libraries = libs,
366 extra_compile_args = cflags,
367 extra_link_args = lflags,
41e8a69c 368 **depends
1e4a197e
RD
369 )
370wxpExtensions.append(ext)
af83019e
RD
371
372
38b97c15
RD
373
374swig_sources = run_swig(['xrc.i'], 'src', GENDIR, PKGDIR,
375 USE_SWIG, swig_force, swig_args, swig_deps +
376 [ 'src/_xrc_rename.i',
377 'src/_xrc_ex.py',
378 'src/_xmlres.i',
379 'src/_xmlsub.i',
380 'src/_xml.i',
381 'src/_xmlhandler.i',
382 ])
383ext = Extension('_xrc',
384 swig_sources,
385
386 include_dirs = includes + CONTRIBS_INC,
387 define_macros = defines,
388
389 library_dirs = libdirs,
390 libraries = libs,
391
392 extra_compile_args = cflags,
393 extra_link_args = lflags,
394 )
395wxpExtensions.append(ext)
396
397
c368d904
RD
398#----------------------------------------------------------------------
399# Define the GLCanvas extension module
400#----------------------------------------------------------------------
401
1e4a197e 402if BUILD_GLCANVAS:
cfe766c3 403 msg('Preparing GLCANVAS...')
c368d904 404 location = 'contrib/glcanvas'
c368d904 405
d14a1e28 406 swig_sources = run_swig(['glcanvas.i'], location, GENDIR, PKGDIR,
10ef30eb 407 USE_SWIG, swig_force, swig_args, swig_deps)
c368d904
RD
408
409 gl_libs = []
410 if os.name == 'posix':
cb9a93a2 411 gl_config = os.popen(WX_CONFIG + ' --libs gl', 'r').read()[:-1]
1e4a197e 412 gl_lflags = gl_config.split() + lflags
f32afe1c 413 gl_libs = libs
19cf4f80 414 else:
3e46a8e6 415 gl_libs = libs + ['opengl32', 'glu32'] + makeLibName('gl')
f32afe1c 416 gl_lflags = lflags
c368d904 417
d14a1e28 418 ext = Extension('_glcanvas',
3e46a8e6 419 swig_sources,
1e7ecb7b 420
4c417214 421 include_dirs = includes + CONTRIBS_INC,
1e7ecb7b
RD
422 define_macros = defines,
423
424 library_dirs = libdirs,
f32afe1c 425 libraries = gl_libs,
1e7ecb7b
RD
426
427 extra_compile_args = cflags,
f32afe1c 428 extra_link_args = gl_lflags,
1e7ecb7b
RD
429 )
430
431 wxpExtensions.append(ext)
c368d904
RD
432
433
434#----------------------------------------------------------------------
435# Define the OGL extension module
436#----------------------------------------------------------------------
437
1e4a197e 438if BUILD_OGL:
cfe766c3 439 msg('Preparing OGL...')
c368d904 440 location = 'contrib/ogl'
c368d904 441
a32360e0 442 swig_sources = run_swig(['ogl.i'], location, GENDIR, PKGDIR,
d14a1e28
RD
443 USE_SWIG, swig_force, swig_args, swig_deps +
444 [ '%s/_oglbasic.i' % location,
445 '%s/_oglshapes.i' % location,
446 '%s/_oglshapes2.i' % location,
447 '%s/_oglcanvas.i' % location,
448 '%s/_ogldefs.i' % location,
449 ])
c368d904 450
d14a1e28 451 ext = Extension('_ogl',
3ef86e32 452 swig_sources,
1e7ecb7b 453
4c417214 454 include_dirs = includes + [ location ] + CONTRIBS_INC,
dd116e73 455 define_macros = defines + [('wxUSE_DEPRECATED', '0')],
1e7ecb7b
RD
456
457 library_dirs = libdirs,
3ef86e32 458 libraries = libs + makeLibName('ogl'),
1e7ecb7b
RD
459
460 extra_compile_args = cflags,
461 extra_link_args = lflags,
462 )
463
464 wxpExtensions.append(ext)
465
466
c368d904
RD
467
468#----------------------------------------------------------------------
469# Define the STC extension module
470#----------------------------------------------------------------------
471
1e4a197e 472if BUILD_STC:
cfe766c3 473 msg('Preparing STC...')
c368d904 474 location = 'contrib/stc'
020fb2ee
RD
475 #if os.name == 'nt':
476 STC_H = opj(WXDIR, 'contrib', 'include/wx/stc')
477 #else:
478 # STC_H = opj(WXPREFIX, 'include/wx-%d.%d/wx/stc' % (VER_MAJOR, VER_MINOR))
55c020cf 479
de7b7fe6 480## NOTE: need to add something like this to the stc.bkl...
55c020cf 481
3ef86e32
RD
482## # Check if gen_iface needs to be run for the wxSTC sources
483## if (newer(opj(CTRB_SRC, 'stc/stc.h.in'), opj(CTRB_INC, 'stc/stc.h' )) or
484## newer(opj(CTRB_SRC, 'stc/stc.cpp.in'), opj(CTRB_SRC, 'stc/stc.cpp')) or
485## newer(opj(CTRB_SRC, 'stc/gen_iface.py'), opj(CTRB_SRC, 'stc/stc.cpp'))):
55c020cf 486
3ef86e32
RD
487## msg('Running gen_iface.py, regenerating stc.h and stc.cpp...')
488## cwd = os.getcwd()
489## os.chdir(opj(CTRB_SRC, 'stc'))
490## sys.path.insert(0, os.curdir)
491## import gen_iface
492## gen_iface.main([])
493## os.chdir(cwd)
c368d904
RD
494
495
befa6977 496 swig_sources = run_swig(['stc.i'], location, GENDIR, PKGDIR,
c368d904
RD
497 USE_SWIG, swig_force,
498 swig_args + ['-I'+STC_H, '-I'+location],
10ef30eb 499 [opj(STC_H, 'stc.h')] + swig_deps)
c368d904 500
d14a1e28 501 ext = Extension('_stc',
3ef86e32
RD
502 swig_sources,
503
4c417214 504 include_dirs = includes + CONTRIBS_INC,
3ef86e32 505 define_macros = defines,
1e7ecb7b
RD
506
507 library_dirs = libdirs,
3ef86e32 508 libraries = libs + makeLibName('stc'),
c368d904 509
1e7ecb7b
RD
510 extra_compile_args = cflags,
511 extra_link_args = lflags,
512 )
513
514 wxpExtensions.append(ext)
c368d904
RD
515
516
517
926bb76c
RD
518#----------------------------------------------------------------------
519# Define the IEWIN extension module (experimental)
520#----------------------------------------------------------------------
521
1e4a197e 522if BUILD_IEWIN:
cfe766c3 523 msg('Preparing IEWIN...')
926bb76c
RD
524 location = 'contrib/iewin'
525
526 swig_files = ['iewin.i', ]
527
528 swig_sources = run_swig(swig_files, location, '', PKGDIR,
10ef30eb 529 USE_SWIG, swig_force, swig_args, swig_deps)
926bb76c
RD
530
531
de7b7fe6 532 ext = Extension('_iewin', ['%s/IEHtmlWin.cpp' % location,
c731eb47 533 '%s/wxactivex.cpp' % location,
926bb76c
RD
534 ] + swig_sources,
535
4c417214 536 include_dirs = includes + CONTRIBS_INC,
926bb76c
RD
537 define_macros = defines,
538
539 library_dirs = libdirs,
540 libraries = libs,
541
542 extra_compile_args = cflags,
b7c75283
RD
543 extra_link_args = lflags,
544 )
545
546 wxpExtensions.append(ext)
547
548
549#----------------------------------------------------------------------
550# Define the ACTIVEX extension module (experimental)
551#----------------------------------------------------------------------
552
553if BUILD_ACTIVEX:
554 msg('Preparing ACTIVEX...')
555 location = 'contrib/activex'
556 axloc = opj(location, "wxie")
557
558 swig_files = ['activex.i', ]
559
560 swig_sources = run_swig(swig_files, location, '', PKGDIR,
561 USE_SWIG, swig_force, swig_args, swig_deps +
562 [ '%s/_activex_ex.py' % location])
563
564
565 ext = Extension('_activex', ['%s/IEHtmlWin.cpp' % axloc,
566 '%s/wxactivex.cpp' % axloc,
567 ] + swig_sources,
568
569 include_dirs = includes + [ axloc ],
570 define_macros = defines,
571
572 library_dirs = libdirs,
573 libraries = libs,
574
575 extra_compile_args = cflags,
926bb76c
RD
576 extra_link_args = lflags,
577 )
578
579 wxpExtensions.append(ext)
580
581
ebf4302c
RD
582#----------------------------------------------------------------------
583# Define the GIZMOS extension module
584#----------------------------------------------------------------------
585
1e4a197e 586if BUILD_GIZMOS:
ebf4302c
RD
587 msg('Preparing GIZMOS...')
588 location = 'contrib/gizmos'
ebf4302c 589
a32360e0 590 swig_sources = run_swig(['gizmos.i'], location, GENDIR, PKGDIR,
10ef30eb 591 USE_SWIG, swig_force, swig_args, swig_deps)
ebf4302c 592
d14a1e28 593 ext = Extension('_gizmos',
28eab81f 594 [ '%s/treelistctrl.cpp' % opj(location, 'wxCode/src') ] + swig_sources,
ebf4302c 595
28eab81f 596 include_dirs = includes + [ location, opj(location, 'wxCode/include') ] + CONTRIBS_INC,
ebf4302c
RD
597 define_macros = defines,
598
599 library_dirs = libdirs,
3ef86e32 600 libraries = libs + makeLibName('gizmos'),
ebf4302c
RD
601
602 extra_compile_args = cflags,
603 extra_link_args = lflags,
604 )
605
606 wxpExtensions.append(ext)
607
608
609
4a61305d
RD
610#----------------------------------------------------------------------
611# Define the DLLWIDGET extension module
612#----------------------------------------------------------------------
613
1e4a197e 614if BUILD_DLLWIDGET:
4a61305d
RD
615 msg('Preparing DLLWIDGET...')
616 location = 'contrib/dllwidget'
617 swig_files = ['dllwidget_.i']
618
619 swig_sources = run_swig(swig_files, location, '', PKGDIR,
10ef30eb 620 USE_SWIG, swig_force, swig_args, swig_deps)
4a61305d
RD
621
622 # copy a contrib project specific py module to the main package dir
623 copy_file(opj(location, 'dllwidget.py'), PKGDIR, update=1, verbose=0)
99abd512 624 CLEANUP.append(opj(PKGDIR, 'dllwidget.py'))
4a61305d
RD
625
626 ext = Extension('dllwidget_c', [
627 '%s/dllwidget.cpp' % location,
628 ] + swig_sources,
629
4c417214 630 include_dirs = includes + CONTRIBS_INC,
4a61305d
RD
631 define_macros = defines,
632
633 library_dirs = libdirs,
634 libraries = libs,
635
636 extra_compile_args = cflags,
637 extra_link_args = lflags,
638 )
639
640 wxpExtensions.append(ext)
641
642
1e4a197e 643
38b97c15 644
1e4a197e 645#----------------------------------------------------------------------
1128a89b 646# Tools, scripts data files, etc.
1e4a197e 647#----------------------------------------------------------------------
8916d007 648
2eb31f8b
RD
649if NO_SCRIPTS:
650 SCRIPTS = None
651else:
1e4a197e
RD
652 SCRIPTS = [opj('scripts/helpviewer'),
653 opj('scripts/img2png'),
2eb31f8b 654 opj('scripts/img2py'),
d48c1c64
RD
655 opj('scripts/img2xpm'),
656 opj('scripts/pyalacarte'),
657 opj('scripts/pyalamode'),
2eb31f8b 658 opj('scripts/pycrust'),
d48c1c64 659 opj('scripts/pyshell'),
1fded56b
RD
660 opj('scripts/pywrap'),
661 opj('scripts/pywrap'),
b6536d60 662 opj('scripts/pywxrc'),
d48c1c64 663 opj('scripts/xrced'),
2eb31f8b 664 ]
d48c1c64 665
4a61305d 666
926bb76c 667
c2079460
RD
668DATA_FILES += find_data_files('wx/tools/XRCed', '*.txt', '*.xrc')
669DATA_FILES += find_data_files('wx/py', '*.txt', '*.ico', '*.css', '*.html')
1fded56b 670DATA_FILES += find_data_files('wx', '*.txt', '*.css', '*.html')
1e4a197e
RD
671
672
1128a89b
RD
673if NO_HEADERS:
674 HEADERS = None
675else:
676 h_files = glob.glob(opj("include/wx/wxPython/*.h"))
677 i_files = glob.glob(opj("src/*.i")) + \
678 glob.glob(opj("src/_*.py")) + \
679 glob.glob(opj("src/*.swg"))
680
e9019d1c
RD
681 HEADERS = zip(h_files, ["/wxPython"]*len(h_files)) + \
682 zip(i_files, ["/wxPython/i_files"]*len(i_files))
683
1128a89b 684
d48c1c64
RD
685
686if INSTALL_MULTIVERSION:
b6536d60 687 EXTRA_PATH = getExtraPath(addOpts=EP_ADD_OPTS)
d48c1c64
RD
688 open("src/wx.pth", "w").write(EXTRA_PATH)
689 CLEANUP.append("src/wx.pth")
690else:
691 EXTRA_PATH = None
692
693
694
c368d904
RD
695#----------------------------------------------------------------------
696# Do the Setup/Build/Install/Whatever
697#----------------------------------------------------------------------
698
1b62f00d 699if __name__ == "__main__":
1e4a197e 700 if not PREP_ONLY:
d48c1c64 701
d14a1e28 702 setup(name = 'wxPython',
1b62f00d
RD
703 version = VERSION,
704 description = DESCRIPTION,
705 long_description = LONG_DESCRIPTION,
706 author = AUTHOR,
707 author_email = AUTHOR_EMAIL,
708 url = URL,
851d4ac7 709 download_url = DOWNLOAD_URL,
e2e02194 710 license = LICENSE,
851d4ac7
RD
711 platforms = PLATFORMS,
712 classifiers = filter(None, CLASSIFIERS.split("\n")),
713 keywords = KEYWORDS,
d14a1e28 714
1fded56b
RD
715 packages = ['wxPython',
716 'wxPython.lib',
717 'wxPython.lib.colourchooser',
718 'wxPython.lib.editor',
719 'wxPython.lib.mixins',
1fded56b 720 'wxPython.tools',
1fded56b
RD
721
722 'wx',
1128a89b 723 'wx.build',
1fded56b
RD
724 'wx.lib',
725 'wx.lib.colourchooser',
726 'wx.lib.editor',
42463de2 727 'wx.lib.floatcanvas',
9176f38f 728 'wx.lib.masked',
1fded56b 729 'wx.lib.mixins',
f847103a 730 'wx.lib.ogl',
1fded56b
RD
731 'wx.py',
732 'wx.tools',
733 'wx.tools.XRCed',
1b62f00d
RD
734 ],
735
d48c1c64
RD
736 extra_path = EXTRA_PATH,
737
1b62f00d
RD
738 ext_package = PKGDIR,
739 ext_modules = wxpExtensions,
8916d007 740
1128a89b
RD
741 options = { 'build' : { 'build_base' : BUILD_BASE },
742 },
a541c325 743
1128a89b 744 scripts = SCRIPTS,
1e4a197e 745 data_files = DATA_FILES,
1128a89b 746 headers = HEADERS,
8916d007 747
d48c1c64
RD
748 # Override some of the default distutils command classes with my own
749 cmdclass = { 'install' : wx_install,
750 'install_data': wx_smart_install_data,
1128a89b
RD
751 'install_headers': wx_install_headers,
752 'clean': wx_extra_clean,
753 },
1b62f00d 754 )
c368d904 755
c368d904 756
d48c1c64
RD
757 if INSTALL_MULTIVERSION:
758 setup(name = 'wxPython-common',
759 version = VERSION,
760 description = DESCRIPTION,
761 long_description = LONG_DESCRIPTION,
762 author = AUTHOR,
763 author_email = AUTHOR_EMAIL,
764 url = URL,
765 download_url = DOWNLOAD_URL,
766 license = LICENSE,
767 platforms = PLATFORMS,
768 classifiers = filter(None, CLASSIFIERS.split("\n")),
769 keywords = KEYWORDS,
770
771 package_dir = { '': 'wxversion' },
772 py_modules = ['wxversion'],
773
774 data_files = [('', ['src/wx.pth'])],
775
776 options = { 'build' : { 'build_base' : BUILD_BASE },
777 },
778
779 cmdclass = { 'install_data': wx_smart_install_data,
780 },
781 )
782
c368d904
RD
783#----------------------------------------------------------------------
784#----------------------------------------------------------------------