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