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