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