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