> > Regarding building win32all from sources:
> >
> > I have started a distutils' style setup script for building.
> > Maybe this is of interest to someone?
> >
>
> Yes, this would be nice. It would then be much simpler for people like me
> that straddle the Windows/Unix fence <ouch!>
Attached.
This is unfinished work, probably it has to hacked
to get it to work.
Thomas
# win32-all build script
# Tested for CVS-version with tag b132
# directory where HTML Help is installed, used to
# generate an include and lib directory
htmlhelp_dir = r'c:/HTML Help Workshop'
from distutils.core import setup, Extension, Command
from distutils.command.install import install
from distutils.command.build_ext import build_ext
from distutils.dep_util import newer_group
import os
class WinExt (Extension):
# Base class for all win32 extensions, with
# predefined library and include dirs,
# and predefined windows libraries
def __init__ (self, name, sources,
include_dirs=[],
define_macros=None,
undef_macros=None,
library_dirs=[],
libraries=[],
runtime_library_dirs=None,
extra_objects=None,
extra_compile_args=None,
extra_link_args=None,
export_symbols=None,
export_symbol_file=None
):
library_dirs = ['build/temp.win32'] + library_dirs
include_dirs = ['com/win32com/src/include',
'win32/src'] + include_dirs
libraries = ['user32', 'odbc32', 'advapi32',
'oleaut32', 'ole32', 'shell32'] + libraries
Extension.__init__ (self, name, sources,
include_dirs,
define_macros,
undef_macros,
library_dirs,
libraries,
runtime_library_dirs,
extra_objects,
extra_compile_args,
extra_link_args,
export_symbols)
scintilla = WinExt('scintilla',
['PythonWin/Scintilla/win32/ScintillaWin.cxx',
'PythonWin/Scintilla/src/ScintillaBase.cxx',
'PythonWin/Scintilla/src/Editor.cxx',
'PythonWin/Scintilla/src/Document.cxx',
'PythonWin/Scintilla/src/ContractionState.cxx',
'PythonWin/Scintilla/src/CellBuffer.cxx',
'PythonWin/Scintilla/src/CallTip.cxx',
'PythonWin/Scintilla/win32/PlatWin.cxx',
'PythonWin/Scintilla/src/KeyMap.cxx',
'PythonWin/Scintilla/src/Indicator.cxx',
'PythonWin/Scintilla/src/LineMarker.cxx',
'PythonWin/Scintilla/src/Style.cxx',
'PythonWin/Scintilla/src/ViewStyle.cxx',
'PythonWin/Scintilla/src/AutoComplete.cxx',
'PythonWin/Scintilla/src/UniConversion.cxx',
'PythonWin/Scintilla/src/KeyWords.cxx',
'PythonWin/Scintilla/src/DocumentAccessor.cxx',
'PythonWin/Scintilla/src/PropSet.cxx',
'PythonWin/Scintilla/src/LexCPP.cxx',
'PythonWin/Scintilla/src/LexHTML.cxx',
'PythonWin/Scintilla/src/LexOthers.cxx',
'PythonWin/Scintilla/src/LexPerl.cxx',
'PythonWin/Scintilla/src/LexPython.cxx',
'PythonWin/Scintilla/src/LexSQL.cxx',
'PythonWin/Scintilla/src/LexVB.cxx',
'PythonWin/Scintilla/win32/ScintRes.rc',
],
include_dirs = ['PythonWin/Scintilla/include',
'PythonWin/Scintilla/src',],
libraries = ['gdi32', 'imm32', 'comctl32'],
extra_compile_args = ['-DSCI_LEXER'],
)
pythonwin = WinExt('pythonwin',
['PythonWin/pythonwin.cpp',
'PythonWin/pythonwin.rc',
'PythonWin/stdafxpw.cpp'],
extra_compile_args = ['-D_MBCS', '-D_AFXDLL'],
extra_link_args = ['/subsystem:windows'])
dll_files = [scintilla]
exe_files = [pythonwin]
axdebug = WinExt('axdebug',
[#'com/win32comext/axdebug/src/AXDebug.cpp',
'com/win32comext/axdebug/src/PyIActiveScriptDebug.cpp',
'com/win32comext/axdebug/src/PyIActiveScriptErrorDebug.cpp',
'com/win32comext/axdebug/src/PyIActiveScriptSiteDebug.cpp',
'com/win32comext/axdebug/src/PyIApplicationDebugger.cpp',
'com/win32comext/axdebug/src/PyIDebugApplication.cpp',
'com/win32comext/axdebug/src/PyIDebugApplicationNode.cpp',
'com/win32comext/axdebug/src/PyIDebugApplicationNodeEvents.cpp',
'com/win32comext/axdebug/src/PyIDebugApplicationThread.cpp',
'com/win32comext/axdebug/src/PyIDebugCodeContext.cpp',
'com/win32comext/axdebug/src/PyIDebugDocument.cpp',
'com/win32comext/axdebug/src/PyIDebugDocumentContext.cpp',
'com/win32comext/axdebug/src/PyIDebugDocumentHelper.cpp',
'com/win32comext/axdebug/src/PyIDebugDocumentHost.cpp',
'com/win32comext/axdebug/src/PyIDebugDocumentInfo.cpp',
'com/win32comext/axdebug/src/PyIDebugDocumentProvider.cpp',
'com/win32comext/axdebug/src/PyIDebugDocumentText.cpp',
'com/win32comext/axdebug/src/PyIDebugDocumentTextAuthor.cpp',
'com/win32comext/axdebug/src/PyIDebugDocumentTextEvents.cpp',
'com/win32comext/axdebug/src/PyIDebugDocumentTextExternalAuthor.cpp',
'com/win32comext/axdebug/src/PyIDebugExpression.cpp',
'com/win32comext/axdebug/src/PyIDebugExpressionCallBack.cpp',
'com/win32comext/axdebug/src/PyIDebugExpressionContext.cpp',
'com/win32comext/axdebug/src/PyIDebugProperties.cpp',
'com/win32comext/axdebug/src/PyIDebugSessionProvider.cpp',
'com/win32comext/axdebug/src/PyIDebugStackFrame.cpp',
'com/win32comext/axdebug/src/PyIDebugStackFrameSniffer.cpp',
'com/win32comext/axdebug/src/PyIDebugStackFrameSnifferEx.cpp',
'com/win32comext/axdebug/src/PyIDebugSyncOperation.cpp',
'com/win32comext/axdebug/src/PyIEnumDebugApplicationNodes.cpp',
'com/win32comext/axdebug/src/PyIEnumDebugCodeContexts.cpp',
'com/win32comext/axdebug/src/PyIEnumDebugExpressionContexts.cpp',
'com/win32comext/axdebug/src/PyIEnumDebugPropertyInfo.cpp',
'com/win32comext/axdebug/src/PyIEnumDebugStackFrames.cpp',
'com/win32comext/axdebug/src/PyIEnumRemoteDebugApplications.cpp',
'com/win32comext/axdebug/src/PyIEnumRemoteDebugApplicationThreads.cpp',
'com/win32comext/axdebug/src/PyIMachineDebugManager.cpp',
'com/win32comext/axdebug/src/PyIMachineDebugManagerEvents.cpp',
'com/win32comext/axdebug/src/PyIProcessDebugManager.cpp',
'com/win32comext/axdebug/src/PyIProvideExpressionContexts.cpp',
'com/win32comext/axdebug/src/PyIRemoteDebugApplication.cpp',
'com/win32comext/axdebug/src/PyIRemoteDebugApplicationEvents.cpp',
'com/win32comext/axdebug/src/PyIRemoteDebugApplicationThread.cpp',
'com/win32comext/axdebug/src/stdafx.cpp'],
libraries = ['msgdbg']
)
#adsi = Extension('adsi', [])
axscript = WinExt('win32comext.axscript.axscript',
['com/win32comext/AXScript/src/AXScript.cpp',
'com/win32comext/AXScript/src/GUIDS.cpp',
'com/win32comext/AXScript/src/PyGActiveScript.cpp',
'com/win32comext/AXScript/src/PyGActiveScriptError.cpp',
'com/win32comext/AXScript/src/PyGActiveScriptParse.cpp',
'com/win32comext/AXScript/src/PyGActiveScriptSite.cpp',
'com/win32comext/AXScript/src/PyGObjectSafety.cpp',
'com/win32comext/AXScript/src/PyIActiveScript.cpp',
'com/win32comext/AXScript/src/PyIActiveScriptError.cpp',
'com/win32comext/AXScript/src/PyIActiveScriptParse.cpp',
'com/win32comext/AXScript/src/PyIActiveScriptParseProcedure.cpp',
'com/win32comext/AXScript/src/PyIActiveScriptSite.cpp',
'com/win32comext/AXScript/src/PyIMultiInfos.cpp',
'com/win32comext/AXScript/src/PyIObjectSafety.cpp',
'com/win32comext/AXScript/src/stdafx.cpp',
],
extra_compile_args = ['-DWIDEOLE', '-DPY_BUILD_AXSCRIPT'],
)
dbi = WinExt('dbi',
['win32/src/dbi.cpp',],
export_symbol_file = 'win32/src/dbi.def',
)
dde = WinExt('dde',
['win32/src/stddde.cpp',
'win32/src/ddeconv.cpp',
'win32/src/ddeitem.cpp',
'win32/src/ddemodule.cpp',
'win32/src/ddeserver.cpp',
'win32/src/ddetopic.cpp',
],
include_dirs = ['PythonWin'],
extra_compile_args = ['-D_AFXDLL',
'-D_AFXEXT',
'-D_MBCS'],
)
#exchange = WinExt('exchange', [])
#exchdapi = WinExt('exchdapi', [])
internet = WinExt('internet',
['com/win32comext/internet/src/internet.cpp',
'com/win32comext/internet/src/PyIInternetBindInfo.cpp',
'com/win32comext/internet/src/PyIInternetPriority.cpp',
'com/win32comext/internet/src/PyIInternetProtocol.cpp',
'com/win32comext/internet/src/PyIInternetProtocolInfo.cpp',
'com/win32comext/internet/src/PyIInternetProtocolRoot.cpp',
'com/win32comext/internet/src/PyIInternetProtocolSink.cpp',
],
)
mmapfile = WinExt('mmapfile',
['win32/src/mmapfilemodule.cpp'],
)
odbc = WinExt('odbc',
['win32/src/odbc.cpp'],
)
perfmon = WinExt('perfmon',
['win32/src/perfmon/MappingManager.cpp',
'win32/src/perfmon/PerfCounterDefn.cpp',
'win32/src/perfmon/PerfObjectType.cpp',
'win32/src/perfmon/PyPerfMon.cpp',
],
extra_compile_args = ['-D_UNICODE', '-DUNICODE'],
)
perfmondata = WinExt('perfmondata',
['win32/src/perfmon/PyPerfMsgs.mc',
'win32/src/perfmon/perfmondata.cpp'],
export_symbol_file = 'win32/src/perfmon/perfmondata.def',
extra_compile_args = ['-D_UNICODE', '-DUNICODE'],
)
#pythonserviceexe
pywintypes = WinExt('pywintypes',
['win32/src/PyACL.cpp',
'win32/src/PyHandle.cpp',
'win32/src/PyIID.cpp',
'win32/src/PyLARGE_INTEGER.cpp',
'win32/src/PyOVERLAPPED.cpp',
'win32/src/PySECURITY_ATTRIBUTES.cpp',
'win32/src/PySECURITY_DESCRIPTOR.cpp',
'win32/src/PySID.cpp',
'win32/src/PyTime.cpp',
'win32/src/PyUnicode.cpp',
'win32/src/PyWinTypesmodule.cpp',
],
extra_compile_args = ['-DBUILD_PYWINTYPES']
)
shell = WinExt('shell',
['com/win32comext/shell/src/PyIShellLink.cpp',
'com/win32comext/shell/src/shell.cpp',
],
)
timer = WinExt('timer',
['win32/src/timermodule.cpp'],
)
univgw = WinExt('univgw',
['com/win32comext/univgw/src/dataconv.cpp',
'com/win32comext/univgw/src/univgw.cpp',
],
)
win32api = WinExt('win32api',
['win32/src/win32apimodule.cpp']
)
win32clipboard = WinExt('win32clipboard',
['win32/src/win32clipboardmodule.cpp']
)
# source directories for win32com
com_src = 'com/win32com/src/'
com_ext = 'com/win32com/src/extensions/'
win32com = WinExt('pythoncom',
[com_src + 'dllmain.cpp',
com_src + 'ErrorUtils.cpp',
com_src + 'MiscTypes.cpp',
com_src + 'oleargs.cpp',
com_src + 'PyComHelpers.cpp',
com_src + 'PyFactory.cpp',
com_src + 'PyGatewayBase.cpp',
com_src + 'PyIBase.cpp',
com_src + 'PyIClassFactory.cpp',
com_src + 'PyIDispatch.cpp',
com_src + 'PyIUnknown.cpp',
com_src + 'PyRecord.cpp',
com_src + 'PyStorage.cpp',
com_src + 'PythonCOM.cpp',
com_src + 'Register.cpp',
com_src + 'stdafx.cpp',
com_ext + 'PyFUNCDESC.cpp',
com_ext + 'PyGConnectionPoint.cpp',
com_ext + 'PyGConnectionPointContainer.cpp',
com_ext + 'PyGEnumVariant.cpp',
com_ext + 'PyGErrorLog.cpp',
com_ext + 'PyGPersist.cpp',
com_ext + 'PyGPersistPropertyBag.cpp',
com_ext + 'PyGPersistStorage.cpp',
com_ext + 'PyGPersistStream.cpp',
com_ext + 'PyGPersistStreamInit.cpp',
com_ext + 'PyGPropertyBag.cpp',
com_ext + 'PyGStream.cpp',
com_ext + 'PyIBindCtx.cpp',
com_ext + 'PyICatInformation.cpp',
com_ext + 'PyICatRegister.cpp',
com_ext + 'PyIConnectionPoint.cpp',
com_ext + 'PyIConnectionPointContainer.cpp',
com_ext + 'PyICreateTypeInfo.cpp',
com_ext + 'PyICreateTypeLib.cpp',
com_ext + 'PyIEnumCATEGORYINFO.cpp',
com_ext + 'PyIEnumConnectionPoints.cpp',
com_ext + 'PyIEnumConnections.cpp',
com_ext + 'PyIEnumGUID.cpp',
com_ext + 'PyIEnumSTATPROPSTG.cpp',
com_ext + 'PyIEnumSTATSTG.cpp',
com_ext + 'PyIEnumVariant.cpp',
com_ext + 'PyIErrorLog.cpp',
com_ext + 'PyIExternalConnection.cpp',
com_ext + 'PyILockBytes.cpp',
com_ext + 'PyIMoniker.cpp',
com_ext + 'PyIPersist.cpp',
com_ext + 'PyIPersistFile.cpp',
com_ext + 'PyIPersistPropertyBag.cpp',
com_ext + 'PyIPersistStorage.cpp',
com_ext + 'PyIPersistStream.cpp',
com_ext + 'PyIPersistStreamInit.cpp',
com_ext + 'PyIPropertyBag.cpp',
com_ext + 'PyIPropertySetStorage.cpp',
com_ext + 'PyIPropertyStorage.cpp',
com_ext + 'PyIprovideClassInfo.cpp',
com_ext + 'PyIRunningObjectTable.cpp',
com_ext + 'PyIServiceProvider.cpp',
com_ext + 'PyIStorage.cpp',
com_ext + 'PyIStream.cpp',
com_ext + 'PyIType.cpp',
com_ext + 'PyITypeObjects.cpp',
com_ext + 'PyTYPEATTR.cpp',
com_ext + 'PyVARDESC.cpp',
],
export_symbol_file = 'com/win32com/src/PythonCOM.def',
extra_compile_args = ['-DBUILD_PYTHONCOM'],
)
win32event = WinExt('win32event',
['win32/src/win32event.i',
],
include_dirs = ['Hallo'],
)
win32evtlog = WinExt('win32evtlog',
['win32/src/win32evtlog_messages.mc',
'win32/src/win32evtlog.i',
],
)
win32file = WinExt('win32file', ['win32/src/win32file.i'])
win32gui = WinExt('win32gui', ['win32/src/win32gui.i'],
libraries = ['comdlg32', 'gdi32', 'comctl32'])
win32help = WinExt('win32help', ['win32/src/win32helpmodule.cpp'],
include_dirs = [htmlhelp_dir + '/include'],
library_dirs = [htmlhelp_dir + '/lib'],
libraries = ['htmlhelp']
)
win32lz = WinExt('win32lz', ['win32/src/win32lzmodule.cpp'],
libraries = ['lz32'])
win32net = WinExt('win32net',
['win32/src/win32net/win32netgroup.cpp',
'win32/src/win32net/win32netmisc.cpp',
'win32/src/win32net/win32netmodule.cpp',
'win32/src/win32net/win32netuse.cpp',
'win32/src/win32net/win32netuser.cpp'],
libraries = ['netapi32'],
extra_compile_args = ['-D_UNICODE', '-DUNICODE'])
win32pdh = WinExt('win32pdh', ['win32/src/win32pdhmodule.cpp'])
win32pipe = WinExt('win32pipe', ['win32/src/win32pipe.i',
'win32/src/win32popen.cpp'])
win32print = WinExt('win32print', ['win32/src/win32print/win32print.cpp'],
libraries = ['winspool'])
win32process = WinExt('win32process', ['win32/src/win32process.i'])
win32ras = WinExt('win32ras', ['win32/src/win32rasmodule.cpp'],
libraries = ['rasapi32'])
win32security = WinExt('win32security', ['win32/src/win32security.i'])
win32service = WinExt('win32service',
['win32/src/win32service_messages.mc',
'win32/src/win32service.i',
],
extra_compile_args = ['-D_UNICODE', '-DUNICODE'],
)
win32trace = WinExt('win32trace', ['win32/src/win32trace.cpp'])
win32ui = WinExt('win32ui',
['PythonWin/dbgthread.cpp',
'PythonWin/dibapi.cpp',
'PythonWin/dllmain.cpp',
'PythonWin/pythondoc.cpp',
'PythonWin/pythonppage.cpp',
'PythonWin/pythonpsheet.cpp',
'PythonWin/pythonRichEditCntr.cpp',
'PythonWin/pythonRichEditDoc.cpp',
'PythonWin/pythonview.cpp',
'PythonWin/stdafx.cpp',
'PythonWin/win32app.cpp',
'PythonWin/win32assoc.cpp',
'PythonWin/win32bitmap.cpp',
'PythonWin/win32brush.cpp',
'PythonWin/win32cmd.cpp',
'PythonWin/win32cmdui.cpp',
'PythonWin/win32context.cpp',
'PythonWin/win32control.cpp',
'PythonWin/win32ctledit.cpp',
'PythonWin/win32ctrlList.cpp',
'PythonWin/win32ctrlRichEdit.cpp',
'PythonWin/win32ctrlTree.cpp',
'PythonWin/win32dc.cpp',
'PythonWin/win32dlg.cpp',
'PythonWin/win32dlgbar.cpp',
## 'PythonWin/win32dlgdyn.cpp',
'PythonWin/win32dll.cpp',
'PythonWin/win32doc.cpp',
'PythonWin/win32font.cpp',
'PythonWin/win32gdi.cpp',
'PythonWin/win32ImageList.cpp',
'PythonWin/win32menu.cpp',
'PythonWin/win32notify.cpp',
'PythonWin/win32pen.cpp',
'PythonWin/win32prinfo.cpp',
'PythonWin/win32prop.cpp',
'PythonWin/win32rgn.cpp',
'PythonWin/win32RichEdit.cpp',
'PythonWin/win32RichEditDocTemplate.cpp',
'PythonWin/win32splitter.cpp',
'PythonWin/win32template.cpp',
'PythonWin/win32thread.cpp',
'PythonWin/win32toolbar.cpp',
'PythonWin/win32tooltip.cpp',
'PythonWin/win32uimodule.cpp',
'PythonWin/win32util.cpp',
'PythonWin/win32view.cpp',
'PythonWin/win32virt.cpp',
'PythonWin/win32win.cpp',
'PythonWin/win32ui.rc',
],
extra_compile_args = ['-DBUILD_PYW',
'-D_WINDLL',
'-D_AFXDLL',
'-D_AFXEXT',
'-GX'], # enable C++ exception handling
)
win32uiole = WinExt('win32uiole',
['PythonWin/stdafxole.cpp',
'PythonWin/win32oleDlgInsert.cpp',
'PythonWin/win32oleDlgs.cpp',
'PythonWin/win32uiole.cpp',
'PythonWin/win32uioleClientItem.cpp',
'PythonWin/win32uioledoc.cpp'],
extra_compile_args = ['-D_MBCS',
'-D_AFXDLL']
)
win32wnet = WinExt('win32wnet',
['win32/src/win32wnet/PyNCB.cpp',
'win32/src/win32wnet/PyNetresource.cpp',
'win32/src/win32wnet/win32wnet.cpp'],
libraries = ['netapi32', 'mpr'],
extra_compile_args = ['-D_UNICODE', '-DUNICODE'],
)
ext_modules = [pywintypes,
win32ui,
win32com,
# dbi,
# odbc,
mmapfile,
timer,
dde,
shell,
univgw,
internet,
perfmon,
perfmondata,
win32api,
win32clipboard,
win32event,
win32file,
win32gui,
win32help,
win32lz,
win32net,
win32pdh,
win32pipe,
#win32popenWin9x,
win32print,
win32ras,
win32process,
win32security,
win32service,
win32trace,
win32uiole,
win32wnet,
#win32cerapi,
scintilla,
axscript,
## axdebug,
]
# code fr COM registration copied and hacked from win32com/scripts/regsetup.py(?)
# List of COM Servers to be registered by the Win32 stuff
com_servers = [\
("AXScript Engine", "win32com.axscript.client.pyscript", "Register"),
("Python Interpreter", "win32com.servers.interp", "Register"),
("Python Dictionary", "win32com.servers.dictionary", "Register"),
]
def RegisterCOMServer(desc, module, function, cmdlineList):
import string, sys
mod = __import__(module)
for attr in string.split(module, ".")[1:]:
mod = getattr(mod, attr)
fn = getattr(mod, function)
sys.argv = ['setup.py',] + list (cmdlineList)
fn()
user_options = [('name=', None,
"your first name"),
('message=', 'm',
"message to print")]
class register (Command):
user_options = [('unregister', 'u',
'Unregister Servers')]
def initialize_options (self):
self.unregister = 0
def finalize_options (self):
pass
def run (self):
if self.unregister:
options = ['--unregister']
else:
options = []
for desc, module, function in com_servers:
RegisterCOMServer (desc, module, function, options)
# class register
class my_install (install):
def run (self):
install.run (self)
self.copy_file (os.path.join (self.install_lib, "pythoncom.pyd"),
"c:\\winnt\\system32\\pythoncom.pyd")
os.remove (os.path.join (self.install_lib, "pythoncom.pyd"))
self.copy_file (os.path.join (self.install_lib, "pywintypes.pyd"),
"c:\\winnt\\system32\\pywintypes.pyd")
os.remove (os.path.join (self.install_lib, "pywintypes.pyd"))
class my_build_ext (build_ext):
def run (self):
build_ext.run (self)
self.build_dlls()
self.build_exes()
def build_dlls (self):
for target in dll_files:
sources = target.sources
ext_filename = os.path.join (self.build_lib,
target.name + '.dll')
if not (self.force or newer_group(sources, ext_filename, 'newer')):
self.announce ("skipping '%s' (up-to-date)" %
target.name)
return
else:
self.announce ("building '%s'" % target.name)
extra_args = target.extra_compile_args
objects = self.compiler.compile (sources,
output_dir=self.build_temp,
#macros=macros,
include_dirs=target.include_dirs,
debug=self.debug,
extra_postargs=extra_args)
extra_args = target.extra_link_args
self.compiler.link_shared_object(
objects, ext_filename,
libraries=target.libraries,
library_dirs=target.library_dirs,
#runtime_library_dirs=ext.runtime_library_dirs,
extra_postargs=extra_args,
debug=self.debug)
def build_exes (self):
for target in exe_files:
sources = target.sources
ext_filename = os.path.join (self.build_lib,
target.name)
if not (self.force or newer_group(sources, ext_filename + '.exe',
'newer')):
self.announce ("skipping '%s' (up-to-date)" %
target.name)
return
else:
self.announce ("building '%s'" % target.name)
extra_args = target.extra_compile_args
objects = self.compiler.compile (sources,
output_dir=self.build_temp,
#macros=macros,
include_dirs=target.include_dirs,
debug=self.debug,
extra_postargs=extra_args)
extra_args = target.extra_link_args
self.compiler.link_executable(
objects, ext_filename,
libraries=target.libraries,
library_dirs=target.library_dirs,
#runtime_library_dirs=ext.runtime_library_dirs,
extra_postargs=extra_args,
debug=self.debug)
# class my_build_ext
setup(name="win32all",
version="b132",
description="Mark Hammond's windows extensions",
long_description="",
author="Mark Hammond",
author_email = "???",
url="http://starship.python.net/crew/mhammond/",
license="???",
cmdclass = {#'install': myinstall,
'register': register,
'build_ext': my_build_ext,
'install': my_install,
},
ext_modules = ext_modules,
data_files = [('pywin', ['PythonWin/readme.html',
'PythonWin/pywin/default.cfg',
'PythonWin/pywin/IDLE.cfg']
)],
package_dir = {'win32com': 'com/win32com', 'win32comext': 'com/win32comext',\
'pywin': 'PythonWin/pywin', 'win32': 'win32/lib'},
packages=['win32',
'win32com',
'win32com.client',
'win32com.demos',
'win32com.makegw',
'win32com.server',
'win32com.servers',
'win32com.test',
'win32comext.axscript',
'win32comext.axscript.client',
'win32comext.axscript.server',
'win32comext.axscript.demos', # XXX not a package
'win32comext.axscript.demos.client',
'win32comext.axscript.demos.client.asp',
'win32comext.axscript.demos.client.ie',
'win32comext.axscript.demos.client.wsh',
'win32comext.axscript.test', # XXX not a package
'win32comext.axdebug',
'win32comext.axscript',
'win32comext.axscript.client',
'win32comext.axscript.server',
'pywin',
'pywin.debugger',
'pywin.dialogs',
'pywin.docking',
'pywin.framework',
'pywin.framework.editor',
'pywin.framework.editor.color',
'pywin.idle',
'pywin.mfc',
'pywin.scintilla',
'pywin.tools',
],
)