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