]> git.saurik.com Git - wxWidgets.git/blame_incremental - wxPython/setup.py
simplified message catalog search code using the new wxStandardPaths::GetLocalizedRes...
[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, 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
37for bo_name in ["build_options.py", "build_options.pyc"]:
38 if os.path.exists(bo_name):
39 os.remove(bo_name)
40
41sys.setup_is_main = __name__ == "__main__" # an icky hack!
42from config import *
43
44
45#----------------------------------------------------------------------
46# Update the packaged config file.
47#----------------------------------------------------------------------
48
49copy_file('config.py', 'wx/build', update=1, verbose=1)
50copy_file('build_options.py', 'wx/build', update=1, verbose=1)
51CLEANUP.append('wx/build/config.py')
52CLEANUP.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
61open('wx/__version__.py', 'w').write("""\
62# This file was generated by setup.py...
63
64VERSION_STRING = '%(VERSION)s'
65MAJOR_VERSION = %(VER_MAJOR)s
66MINOR_VERSION = %(VER_MINOR)s
67RELEASE_VERSION = %(VER_RELEASE)s
68SUBREL_VERSION = %(VER_SUBREL)s
69
70VERSION = (MAJOR_VERSION, MINOR_VERSION, RELEASE_VERSION,
71 SUBREL_VERSION, '%(VER_FLAGS)s')
72
73RELEASE_NUMBER = RELEASE_VERSION # for compatibility
74""" % globals())
75
76CLEANUP.append('wx/__version__.py')
77
78
79#----------------------------------------------------------------------
80# Write the SWIG version to a header file
81#----------------------------------------------------------------------
82
83if 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
102if sys.version < '2.2.3':
103 from distutils.dist import DistributionMetadata
104 DistributionMetadata.classifiers = None
105 DistributionMetadata.download_url = None
106 depends = {}
107else:
108 depends = {'depends' : depends}
109
110
111#----------------------------------------------------------------------
112# Define the CORE extension module
113#----------------------------------------------------------------------
114
115msg('Preparing CORE...')
116swig_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
146copy_file('src/__init__.py', PKGDIR, update=1, verbose=0)
147CLEANUP.append(opj(PKGDIR, '__init__.py'))
148
149
150# update the license files
151mkpath('licence')
152for 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))
155CLEANUP.append('licence')
156
157
158if os.name == 'nt':
159 build_locale_dir(opj(PKGDIR, 'locale'))
160 DATA_FILES += build_locale_list(opj(PKGDIR, 'locale'))
161
162
163if os.name == 'nt':
164 rc_file = ['src/wxc.rc']
165else:
166 rc_file = []
167
168
169ext = 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 )
183wxpExtensions.append(ext)
184
185
186
187
188
189# Extension for the GDI module
190swig_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)
212ext = 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 )
221wxpExtensions.append(ext)
222
223
224
225
226
227
228# Extension for the windows module
229swig_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)
248ext = 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 )
257wxpExtensions.append(ext)
258
259
260
261
262# Extension for the controls module
263swig_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)
291ext = 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 )
300wxpExtensions.append(ext)
301
302
303
304
305# Extension for the misc module
306swig_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)
330ext = 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 )
339wxpExtensions.append(ext)
340
341
342
343##
344## Core modules that are not in the "core" namespace start here
345##
346
347swig_sources = run_swig(['calendar.i'], 'src', GENDIR, PKGDIR,
348 USE_SWIG, swig_force, swig_args, swig_deps)
349ext = 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 )
358wxpExtensions.append(ext)
359
360
361swig_sources = run_swig(['grid.i'], 'src', GENDIR, PKGDIR,
362 USE_SWIG, swig_force, swig_args, swig_deps)
363ext = 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 )
372wxpExtensions.append(ext)
373
374
375
376swig_sources = run_swig(['html.i'], 'src', GENDIR, PKGDIR,
377 USE_SWIG, swig_force, swig_args, swig_deps)
378ext = 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 )
387wxpExtensions.append(ext)
388
389
390mediaLibs = libs[:]
391if not MONOLITHIC and os.name == 'nt':
392 mediaLibs.append(makeLibName('media')[0])
393swig_sources = run_swig(['media.i'], 'src', GENDIR, PKGDIR,
394 USE_SWIG, swig_force, swig_args, swig_deps)
395ext = 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 )
404wxpExtensions.append(ext)
405
406
407swig_sources = run_swig(['webkit.i'], 'src', GENDIR, PKGDIR,
408 USE_SWIG, swig_force, swig_args, swig_deps)
409ext = 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 )
418wxpExtensions.append(ext)
419
420
421
422swig_sources = run_swig(['wizard.i'], 'src', GENDIR, PKGDIR,
423 USE_SWIG, swig_force, swig_args, swig_deps)
424ext = 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 )
433wxpExtensions.append(ext)
434
435
436
437swig_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 ])
446ext = 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 )
458wxpExtensions.append(ext)
459
460
461#----------------------------------------------------------------------
462# Define the GLCanvas extension module
463#----------------------------------------------------------------------
464
465if 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
502if 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
536if 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
589if 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
622if 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
649if 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
677if 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
712if NO_SCRIPTS:
713 SCRIPTS = None
714else:
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
731DATA_FILES += find_data_files('wx/tools/XRCed', '*.txt', '*.xrc')
732DATA_FILES += find_data_files('wx/py', '*.txt', '*.ico', '*.css', '*.html')
733DATA_FILES += find_data_files('wx', '*.txt', '*.css', '*.html')
734
735
736if NO_HEADERS:
737 HEADERS = None
738else:
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
749if 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")
753else:
754 EXTRA_PATH = None
755
756
757
758#----------------------------------------------------------------------
759# Do the Setup/Build/Install/Whatever
760#----------------------------------------------------------------------
761
762if __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 'wxPython.lib.colourchooser',
781 'wxPython.lib.editor',
782 'wxPython.lib.mixins',
783 'wxPython.tools',
784
785 'wx',
786 'wx.build',
787 'wx.lib',
788 'wx.lib.colourchooser',
789 'wx.lib.editor',
790 'wx.lib.floatcanvas',
791 'wx.lib.masked',
792 'wx.lib.mixins',
793 'wx.lib.ogl',
794 'wx.py',
795 'wx.tools',
796 'wx.tools.XRCed',
797 ],
798
799 extra_path = EXTRA_PATH,
800
801 ext_package = PKGDIR,
802 ext_modules = wxpExtensions,
803
804 options = { 'build' : { 'build_base' : BUILD_BASE },
805 },
806
807 scripts = SCRIPTS,
808 data_files = DATA_FILES,
809 headers = HEADERS,
810
811 # Override some of the default distutils command classes with my own
812 cmdclass = { 'install' : wx_install,
813 'install_data': wx_smart_install_data,
814 'install_headers': wx_install_headers,
815 'clean': wx_extra_clean,
816 },
817 )
818
819
820 if INSTALL_MULTIVERSION:
821 setup(name = 'wxPython-common',
822 version = VERSION,
823 description = DESCRIPTION,
824 long_description = LONG_DESCRIPTION,
825 author = AUTHOR,
826 author_email = AUTHOR_EMAIL,
827 url = URL,
828 download_url = DOWNLOAD_URL,
829 license = LICENSE,
830 platforms = PLATFORMS,
831 classifiers = filter(None, CLASSIFIERS.split("\n")),
832 keywords = KEYWORDS,
833
834 package_dir = { '': 'wxversion' },
835 py_modules = ['wxversion'],
836
837 data_files = [('', ['src/wx.pth'])],
838
839 options = { 'build' : { 'build_base' : BUILD_BASE },
840 },
841
842 cmdclass = { 'install_data': wx_smart_install_data,
843 },
844 )
845
846#----------------------------------------------------------------------
847#----------------------------------------------------------------------