]> git.saurik.com Git - wxWidgets.git/blob - wxPython/setup.py
get the default encoding from the default locale.
[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
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 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.
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 sys.setup_is_main = __name__ == "__main__" # an icky hack!
33 from config import *
34
35
36 #----------------------------------------------------------------------
37 # Update the packaged config file.
38 #----------------------------------------------------------------------
39
40 copy_file('config.py', 'wx/build', update=1, verbose=1)
41 CLEANUP.append('wx/build/config.py')
42
43 #----------------------------------------------------------------------
44 # Update the version file
45 #----------------------------------------------------------------------
46
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
50 open('wx/__version__.py', 'w').write("""\
51 # This file was generated by setup.py...
52
53 VERSION_STRING = '%(VERSION)s'
54 MAJOR_VERSION = %(VER_MAJOR)s
55 MINOR_VERSION = %(VER_MINOR)s
56 RELEASE_VERSION = %(VER_RELEASE)s
57 SUBREL_VERSION = %(VER_SUBREL)s
58
59 VERSION = (MAJOR_VERSION, MINOR_VERSION, RELEASE_VERSION,
60 SUBREL_VERSION, '%(VER_FLAGS)s')
61
62 RELEASE_NUMBER = RELEASE_VERSION # for compatibility
63 """ % globals())
64
65 CLEANUP.append('wx/__version__.py')
66
67
68 #----------------------------------------------------------------------
69 # patch distutils if it can't cope with the "classifiers" or
70 # "download_url" keywords
71 #----------------------------------------------------------------------
72
73 if sys.version < '2.2.3':
74 from distutils.dist import DistributionMetadata
75 DistributionMetadata.classifiers = None
76 DistributionMetadata.download_url = None
77 depends = {}
78 else:
79 depends = {'depends' : depends}
80
81
82 #----------------------------------------------------------------------
83 # Define the CORE extension module
84 #----------------------------------------------------------------------
85
86 msg('Preparing CORE...')
87 swig_sources = run_swig(['core.i'], 'src', GENDIR, PKGDIR,
88 USE_SWIG, swig_force, swig_args, swig_deps +
89 [ 'src/_accel.i',
90 'src/_app.i',
91 'src/_app_ex.py',
92 'src/_constraints.i',
93 'src/_core_api.i',
94 'src/_core_ex.py',
95 'src/__core_rename.i',
96 'src/__core_reverse.txt',
97 'src/_defs.i',
98 'src/_event.i',
99 'src/_event_ex.py',
100 'src/_evtloop.i',
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',
112 'src/_control.i',
113 ],
114 True)
115
116 copy_file('src/__init__.py', PKGDIR, update=1, verbose=0)
117 CLEANUP.append(opj(PKGDIR, '__init__.py'))
118
119
120 # update the license files
121 mkpath('licence')
122 for file in ['preamble.txt', 'licence.txt', 'licendoc.txt', 'lgpl.txt']:
123 copy_file(opj(WXDIR, 'docs', file), opj('licence',file), update=1, verbose=0)
124 CLEANUP.append(opj('licence',file))
125 CLEANUP.append('licence')
126
127
128 if os.name == 'nt':
129 build_locale_dir(opj(PKGDIR, 'locale'))
130 DATA_FILES += build_locale_list(opj(PKGDIR, 'locale'))
131
132
133 if os.name == 'nt':
134 rc_file = ['src/wxc.rc']
135 else:
136 rc_file = []
137
138
139 ext = Extension('_core_', ['src/helpers.cpp',
140 'src/libpy.c',
141 ] + rc_file + swig_sources,
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,
151
152 **depends
153 )
154 wxpExtensions.append(ext)
155
156
157
158
159
160 # Extension for the GDI module
161 swig_sources = run_swig(['gdi.i'], 'src', GENDIR, PKGDIR,
162 USE_SWIG, swig_force, swig_args, swig_deps +
163 ['src/__gdi_rename.i',
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',
171 'src/_effects.i',
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',
180 ],
181 True)
182 ext = Extension('_gdi_', ['src/drawlist.cpp'] + swig_sources,
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,
189 **depends
190 )
191 wxpExtensions.append(ext)
192
193
194
195
196
197
198 # Extension for the windows module
199 swig_sources = run_swig(['windows.i'], 'src', GENDIR, PKGDIR,
200 USE_SWIG, swig_force, swig_args, swig_deps +
201 ['src/__windows_rename.i',
202 'src/__windows_reverse.txt',
203 'src/_panel.i',
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',
216 ],
217 True)
218 ext = Extension('_windows_', swig_sources,
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,
225 **depends
226 )
227 wxpExtensions.append(ext)
228
229
230
231
232 # Extension for the controls module
233 swig_sources = run_swig(['controls.i'], 'src', GENDIR, PKGDIR,
234 USE_SWIG, swig_force, swig_args, swig_deps +
235 [ 'src/__controls_rename.i',
236 'src/__controls_reverse.txt',
237 'src/_toolbar.i',
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',
258 ],
259 True)
260 ext = Extension('_controls_', swig_sources,
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,
267 **depends
268 )
269 wxpExtensions.append(ext)
270
271
272
273
274 # Extension for the misc module
275 swig_sources = run_swig(['misc.i'], 'src', GENDIR, PKGDIR,
276 USE_SWIG, swig_force, swig_args, swig_deps +
277 [ 'src/__misc_rename.i',
278 'src/__misc_reverse.txt',
279 'src/_settings.i',
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',
295 'src/_clipbrd.i',
296 'src/_stdpaths.i',
297 ],
298 True)
299 ext = Extension('_misc_', swig_sources,
300 include_dirs = includes,
301 define_macros = defines,
302 library_dirs = libdirs,
303 libraries = libs,
304 extra_compile_args = cflags,
305 extra_link_args = lflags,
306 **depends
307 )
308 wxpExtensions.append(ext)
309
310
311
312 ##
313 ## Core modules that are not in the "core" namespace start here
314 ##
315
316 swig_sources = run_swig(['calendar.i'], 'src', GENDIR, PKGDIR,
317 USE_SWIG, swig_force, swig_args, swig_deps)
318 ext = Extension('_calendar', swig_sources,
319 include_dirs = includes,
320 define_macros = defines,
321 library_dirs = libdirs,
322 libraries = libs,
323 extra_compile_args = cflags,
324 extra_link_args = lflags,
325 **depends
326 )
327 wxpExtensions.append(ext)
328
329
330 swig_sources = run_swig(['grid.i'], 'src', GENDIR, PKGDIR,
331 USE_SWIG, swig_force, swig_args, swig_deps)
332 ext = Extension('_grid', swig_sources,
333 include_dirs = includes,
334 define_macros = defines,
335 library_dirs = libdirs,
336 libraries = libs,
337 extra_compile_args = cflags,
338 extra_link_args = lflags,
339 **depends
340 )
341 wxpExtensions.append(ext)
342
343
344
345 swig_sources = run_swig(['html.i'], 'src', GENDIR, PKGDIR,
346 USE_SWIG, swig_force, swig_args, swig_deps)
347 ext = Extension('_html', swig_sources,
348 include_dirs = includes,
349 define_macros = defines,
350 library_dirs = libdirs,
351 libraries = libs,
352 extra_compile_args = cflags,
353 extra_link_args = lflags,
354 **depends
355 )
356 wxpExtensions.append(ext)
357
358
359 mediaLibs = libs[:]
360 if not MONOLITHIC and os.name == 'nt':
361 mediaLibs.append(makeLibName('media')[0])
362 swig_sources = run_swig(['media.i'], 'src', GENDIR, PKGDIR,
363 USE_SWIG, swig_force, swig_args, swig_deps)
364 ext = Extension('_media', swig_sources,
365 include_dirs = includes,
366 define_macros = defines,
367 library_dirs = libdirs,
368 libraries = mediaLibs,
369 extra_compile_args = cflags,
370 extra_link_args = lflags,
371 **depends
372 )
373 wxpExtensions.append(ext)
374
375
376 swig_sources = run_swig(['webkit.i'], 'src', GENDIR, PKGDIR,
377 USE_SWIG, swig_force, swig_args, swig_deps)
378 ext = Extension('_webkit', 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
391 swig_sources = run_swig(['wizard.i'], 'src', GENDIR, PKGDIR,
392 USE_SWIG, swig_force, swig_args, swig_deps)
393 ext = Extension('_wizard', swig_sources,
394 include_dirs = includes,
395 define_macros = defines,
396 library_dirs = libdirs,
397 libraries = libs,
398 extra_compile_args = cflags,
399 extra_link_args = lflags,
400 **depends
401 )
402 wxpExtensions.append(ext)
403
404
405
406 swig_sources = run_swig(['xrc.i'], 'src', GENDIR, PKGDIR,
407 USE_SWIG, swig_force, swig_args, swig_deps +
408 [ 'src/_xrc_rename.i',
409 'src/_xrc_ex.py',
410 'src/_xmlres.i',
411 'src/_xmlsub.i',
412 'src/_xml.i',
413 'src/_xmlhandler.i',
414 ])
415 ext = Extension('_xrc',
416 swig_sources,
417
418 include_dirs = includes + CONTRIBS_INC,
419 define_macros = defines,
420
421 library_dirs = libdirs,
422 libraries = libs,
423
424 extra_compile_args = cflags,
425 extra_link_args = lflags,
426 )
427 wxpExtensions.append(ext)
428
429
430 #----------------------------------------------------------------------
431 # Define the GLCanvas extension module
432 #----------------------------------------------------------------------
433
434 if BUILD_GLCANVAS:
435 msg('Preparing GLCANVAS...')
436 location = 'contrib/glcanvas'
437
438 swig_sources = run_swig(['glcanvas.i'], location, GENDIR, PKGDIR,
439 USE_SWIG, swig_force, swig_args, swig_deps)
440
441 gl_libs = []
442 if os.name == 'posix':
443 gl_config = os.popen(WX_CONFIG + ' --libs gl', 'r').read()[:-1]
444 gl_lflags = gl_config.split() + lflags
445 gl_libs = libs
446 else:
447 gl_libs = libs + ['opengl32', 'glu32'] + makeLibName('gl')
448 gl_lflags = lflags
449
450 ext = Extension('_glcanvas',
451 swig_sources,
452
453 include_dirs = includes + CONTRIBS_INC,
454 define_macros = defines,
455
456 library_dirs = libdirs,
457 libraries = gl_libs,
458
459 extra_compile_args = cflags,
460 extra_link_args = gl_lflags,
461 )
462
463 wxpExtensions.append(ext)
464
465
466 #----------------------------------------------------------------------
467 # Define the OGL extension module
468 #----------------------------------------------------------------------
469
470 if BUILD_OGL:
471 msg('Preparing OGL...')
472 location = 'contrib/ogl'
473
474 swig_sources = run_swig(['ogl.i'], location, GENDIR, PKGDIR,
475 USE_SWIG, swig_force, swig_args, swig_deps +
476 [ '%s/_oglbasic.i' % location,
477 '%s/_oglshapes.i' % location,
478 '%s/_oglshapes2.i' % location,
479 '%s/_oglcanvas.i' % location,
480 '%s/_ogldefs.i' % location,
481 ])
482
483 ext = Extension('_ogl',
484 swig_sources,
485
486 include_dirs = includes + [ location ] + CONTRIBS_INC,
487 define_macros = defines + [('wxUSE_DEPRECATED', '0')],
488
489 library_dirs = libdirs,
490 libraries = libs + makeLibName('ogl'),
491
492 extra_compile_args = cflags,
493 extra_link_args = lflags,
494 )
495
496 wxpExtensions.append(ext)
497
498
499
500 #----------------------------------------------------------------------
501 # Define the STC extension module
502 #----------------------------------------------------------------------
503
504 if BUILD_STC:
505 msg('Preparing STC...')
506 location = 'contrib/stc'
507 #if os.name == 'nt':
508 STC_H = opj(WXDIR, 'contrib', 'include/wx/stc')
509 #else:
510 # STC_H = opj(WXPREFIX, 'include/wx-%d.%d/wx/stc' % (VER_MAJOR, VER_MINOR))
511
512 ## NOTE: need to add something like this to the stc.bkl...
513
514 ## # Check if gen_iface needs to be run for the wxSTC sources
515 ## if (newer(opj(CTRB_SRC, 'stc/stc.h.in'), opj(CTRB_INC, 'stc/stc.h' )) or
516 ## newer(opj(CTRB_SRC, 'stc/stc.cpp.in'), opj(CTRB_SRC, 'stc/stc.cpp')) or
517 ## newer(opj(CTRB_SRC, 'stc/gen_iface.py'), opj(CTRB_SRC, 'stc/stc.cpp'))):
518
519 ## msg('Running gen_iface.py, regenerating stc.h and stc.cpp...')
520 ## cwd = os.getcwd()
521 ## os.chdir(opj(CTRB_SRC, 'stc'))
522 ## sys.path.insert(0, os.curdir)
523 ## import gen_iface
524 ## gen_iface.main([])
525 ## os.chdir(cwd)
526
527
528 swig_sources = run_swig(['stc.i'], location, GENDIR, PKGDIR,
529 USE_SWIG, swig_force,
530 swig_args + ['-I'+STC_H, '-I'+location],
531 [opj(STC_H, 'stc.h')] + swig_deps)
532
533 ext = Extension('_stc',
534 swig_sources,
535
536 include_dirs = includes + CONTRIBS_INC,
537 define_macros = defines,
538
539 library_dirs = libdirs,
540 libraries = libs + makeLibName('stc'),
541
542 extra_compile_args = cflags,
543 extra_link_args = lflags,
544 )
545
546 wxpExtensions.append(ext)
547
548
549
550 #----------------------------------------------------------------------
551 # Define the IEWIN extension module (experimental)
552 #----------------------------------------------------------------------
553
554 if BUILD_IEWIN:
555 msg('Preparing IEWIN...')
556 location = 'contrib/iewin'
557
558 swig_files = ['iewin.i', ]
559
560 swig_sources = run_swig(swig_files, location, '', PKGDIR,
561 USE_SWIG, swig_force, swig_args, swig_deps)
562
563
564 ext = Extension('_iewin', ['%s/IEHtmlWin.cpp' % location,
565 '%s/wxactivex.cpp' % location,
566 ] + swig_sources,
567
568 include_dirs = includes + CONTRIBS_INC,
569 define_macros = defines,
570
571 library_dirs = libdirs,
572 libraries = libs,
573
574 extra_compile_args = cflags,
575 extra_link_args = lflags,
576 )
577
578 wxpExtensions.append(ext)
579
580
581 #----------------------------------------------------------------------
582 # Define the ACTIVEX extension module (experimental)
583 #----------------------------------------------------------------------
584
585 if BUILD_ACTIVEX:
586 msg('Preparing ACTIVEX...')
587 location = 'contrib/activex'
588 axloc = opj(location, "wxie")
589
590 swig_files = ['activex.i', ]
591
592 swig_sources = run_swig(swig_files, location, '', PKGDIR,
593 USE_SWIG, swig_force, swig_args, swig_deps +
594 [ '%s/_activex_ex.py' % location])
595
596
597 ext = Extension('_activex', ['%s/IEHtmlWin.cpp' % axloc,
598 '%s/wxactivex.cpp' % axloc,
599 ] + swig_sources,
600
601 include_dirs = includes + [ axloc ],
602 define_macros = defines,
603
604 library_dirs = libdirs,
605 libraries = libs,
606
607 extra_compile_args = cflags,
608 extra_link_args = lflags,
609 )
610
611 wxpExtensions.append(ext)
612
613
614 #----------------------------------------------------------------------
615 # Define the GIZMOS extension module
616 #----------------------------------------------------------------------
617
618 if BUILD_GIZMOS:
619 msg('Preparing GIZMOS...')
620 location = 'contrib/gizmos'
621
622 swig_sources = run_swig(['gizmos.i'], location, GENDIR, PKGDIR,
623 USE_SWIG, swig_force, swig_args, swig_deps)
624
625 ext = Extension('_gizmos',
626 [ '%s/treelistctrl.cpp' % opj(location, 'wxCode/src') ] + swig_sources,
627
628 include_dirs = includes + [ location, opj(location, 'wxCode/include') ] + CONTRIBS_INC,
629 define_macros = defines,
630
631 library_dirs = libdirs,
632 libraries = libs + makeLibName('gizmos'),
633
634 extra_compile_args = cflags,
635 extra_link_args = lflags,
636 )
637
638 wxpExtensions.append(ext)
639
640
641
642 #----------------------------------------------------------------------
643 # Define the DLLWIDGET extension module
644 #----------------------------------------------------------------------
645
646 if BUILD_DLLWIDGET:
647 msg('Preparing DLLWIDGET...')
648 location = 'contrib/dllwidget'
649 swig_files = ['dllwidget_.i']
650
651 swig_sources = run_swig(swig_files, location, '', PKGDIR,
652 USE_SWIG, swig_force, swig_args, swig_deps)
653
654 # copy a contrib project specific py module to the main package dir
655 copy_file(opj(location, 'dllwidget.py'), PKGDIR, update=1, verbose=0)
656 CLEANUP.append(opj(PKGDIR, 'dllwidget.py'))
657
658 ext = Extension('dllwidget_c', [
659 '%s/dllwidget.cpp' % location,
660 ] + swig_sources,
661
662 include_dirs = includes + CONTRIBS_INC,
663 define_macros = defines,
664
665 library_dirs = libdirs,
666 libraries = libs,
667
668 extra_compile_args = cflags,
669 extra_link_args = lflags,
670 )
671
672 wxpExtensions.append(ext)
673
674
675
676
677 #----------------------------------------------------------------------
678 # Tools, scripts data files, etc.
679 #----------------------------------------------------------------------
680
681 if NO_SCRIPTS:
682 SCRIPTS = None
683 else:
684 SCRIPTS = [opj('scripts/helpviewer'),
685 opj('scripts/img2png'),
686 opj('scripts/img2py'),
687 opj('scripts/img2xpm'),
688 opj('scripts/pyalacarte'),
689 opj('scripts/pyalamode'),
690 opj('scripts/pycrust'),
691 opj('scripts/pyshell'),
692 opj('scripts/pywrap'),
693 opj('scripts/pywrap'),
694 opj('scripts/pywxrc'),
695 opj('scripts/xrced'),
696 ]
697
698
699
700 DATA_FILES += find_data_files('wx/tools/XRCed', '*.txt', '*.xrc')
701 DATA_FILES += find_data_files('wx/py', '*.txt', '*.ico', '*.css', '*.html')
702 DATA_FILES += find_data_files('wx', '*.txt', '*.css', '*.html')
703
704
705 if NO_HEADERS:
706 HEADERS = None
707 else:
708 h_files = glob.glob(opj("include/wx/wxPython/*.h"))
709 i_files = glob.glob(opj("src/*.i")) + \
710 glob.glob(opj("src/_*.py")) + \
711 glob.glob(opj("src/*.swg"))
712
713 HEADERS = zip(h_files, ["/wxPython"]*len(h_files)) + \
714 zip(i_files, ["/wxPython/i_files"]*len(i_files))
715
716
717
718 if INSTALL_MULTIVERSION:
719 EXTRA_PATH = getExtraPath(addOpts=EP_ADD_OPTS)
720 open("src/wx.pth", "w").write(EXTRA_PATH)
721 CLEANUP.append("src/wx.pth")
722 else:
723 EXTRA_PATH = None
724
725
726
727 #----------------------------------------------------------------------
728 # Do the Setup/Build/Install/Whatever
729 #----------------------------------------------------------------------
730
731 if __name__ == "__main__":
732 if not PREP_ONLY:
733
734 setup(name = 'wxPython',
735 version = VERSION,
736 description = DESCRIPTION,
737 long_description = LONG_DESCRIPTION,
738 author = AUTHOR,
739 author_email = AUTHOR_EMAIL,
740 url = URL,
741 download_url = DOWNLOAD_URL,
742 license = LICENSE,
743 platforms = PLATFORMS,
744 classifiers = filter(None, CLASSIFIERS.split("\n")),
745 keywords = KEYWORDS,
746
747 packages = ['wxPython',
748 'wxPython.lib',
749 'wxPython.lib.colourchooser',
750 'wxPython.lib.editor',
751 'wxPython.lib.mixins',
752 'wxPython.tools',
753
754 'wx',
755 'wx.build',
756 'wx.lib',
757 'wx.lib.colourchooser',
758 'wx.lib.editor',
759 'wx.lib.floatcanvas',
760 'wx.lib.masked',
761 'wx.lib.mixins',
762 'wx.lib.ogl',
763 'wx.py',
764 'wx.tools',
765 'wx.tools.XRCed',
766 ],
767
768 extra_path = EXTRA_PATH,
769
770 ext_package = PKGDIR,
771 ext_modules = wxpExtensions,
772
773 options = { 'build' : { 'build_base' : BUILD_BASE },
774 },
775
776 scripts = SCRIPTS,
777 data_files = DATA_FILES,
778 headers = HEADERS,
779
780 # Override some of the default distutils command classes with my own
781 cmdclass = { 'install' : wx_install,
782 'install_data': wx_smart_install_data,
783 'install_headers': wx_install_headers,
784 'clean': wx_extra_clean,
785 },
786 )
787
788
789 if INSTALL_MULTIVERSION:
790 setup(name = 'wxPython-common',
791 version = VERSION,
792 description = DESCRIPTION,
793 long_description = LONG_DESCRIPTION,
794 author = AUTHOR,
795 author_email = AUTHOR_EMAIL,
796 url = URL,
797 download_url = DOWNLOAD_URL,
798 license = LICENSE,
799 platforms = PLATFORMS,
800 classifiers = filter(None, CLASSIFIERS.split("\n")),
801 keywords = KEYWORDS,
802
803 package_dir = { '': 'wxversion' },
804 py_modules = ['wxversion'],
805
806 data_files = [('', ['src/wx.pth'])],
807
808 options = { 'build' : { 'build_base' : BUILD_BASE },
809 },
810
811 cmdclass = { 'install_data': wx_smart_install_data,
812 },
813 )
814
815 #----------------------------------------------------------------------
816 #----------------------------------------------------------------------