Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.

This commit is contained in:
Neal Norwitz 2006-04-03 04:52:05 +00:00
parent 19379f18a6
commit 3e1ec3aa22

172
setup.py
View file

@ -999,115 +999,73 @@ class PyBuildExt(build_ext):
carbon_extra_compile_args = [] carbon_extra_compile_args = []
# Mac OS X specific modules. # Mac OS X specific modules.
exts.append( Extension('_CF', ['cf/_CFmodule.c', 'cf/pycfbridge.c'], def macSrcExists(name1, name2=''):
extra_compile_args=carbon_extra_compile_args, if not name1:
extra_link_args=['-framework', 'CoreFoundation']) ) return None
exts.append( Extension('ColorPicker', ['ColorPickermodule.c'], names = (name1,)
extra_compile_args=carbon_extra_compile_args, if name2:
extra_link_args=['-framework', 'Carbon']) ) names = (name1, name2)
exts.append( Extension('autoGIL', ['autoGIL.c'], path = os.path.join(srcdir, 'Mac', 'Modules', *names)
extra_compile_args=carbon_extra_compile_args, return os.path.exists(path)
extra_link_args=['-framework', 'CoreFoundation']) )
exts.append( Extension('gestalt', ['gestaltmodule.c'], def addMacExtension(name, kwds, extra_srcs=[]):
extra_compile_args=carbon_extra_compile_args, dirname = ''
extra_link_args=['-framework', 'Carbon']) ) if name[0] == '_':
exts.append( Extension('MacOS', ['macosmodule.c'], dirname = name[1:].lower()
extra_compile_args=carbon_extra_compile_args, cname = name + '.c'
extra_link_args=['-framework', 'Carbon']) ) cmodulename = name + 'module.c'
exts.append( Extension('OSATerminology', ['OSATerminology.c'], # Check for NNN.c, NNNmodule.c, _nnn/NNN.c, _nnn/NNNmodule.c
extra_compile_args=carbon_extra_compile_args, if macSrcExists(cname):
extra_link_args=['-framework', 'Carbon']) ) srcs = [cname]
exts.append( Extension('icglue', ['icgluemodule.c'], elif macSrcExists(cmodulename):
extra_compile_args=carbon_extra_compile_args, srcs = [cmodulename]
extra_link_args=['-framework', 'Carbon']) ) elif macSrcExists(dirname, cname):
exts.append( Extension('_Res', ['res/_Resmodule.c'], # XXX(nnorwitz): If all the names ended with module, we
extra_compile_args=carbon_extra_compile_args, # wouldn't need this condition. ibcarbon is the only one.
extra_link_args=['-framework', 'Carbon']) ) srcs = [os.path.join(dirname, cname)]
exts.append( Extension('_Snd', ['snd/_Sndmodule.c'], elif macSrcExists(dirname, cmodulename):
extra_compile_args=carbon_extra_compile_args, srcs = [os.path.join(dirname, cmodulename)]
extra_link_args=['-framework', 'Carbon']) ) else:
exts.append( Extension('Nav', ['Nav.c'], raise RuntimeError("%s not found" % name)
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) ) # Here's the whole point: add the extension with sources
exts.append( Extension('_AE', ['ae/_AEmodule.c'], exts.append(Extension(name, srcs + extra_srcs, **kwds))
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) ) # Core Foundation
exts.append( Extension('_AH', ['ah/_AHmodule.c'], core_kwds = {'extra_compile_args': carbon_extra_compile_args,
extra_compile_args=carbon_extra_compile_args, 'extra_link_args': ['-framework', 'CoreFoundation'],
extra_link_args=['-framework', 'Carbon']) ) }
exts.append( Extension('_App', ['app/_Appmodule.c'], addMacExtension('_CF', core_kwds, ['cf/pycfbridge.c'])
extra_compile_args=carbon_extra_compile_args, addMacExtension('autoGIL', core_kwds)
extra_link_args=['-framework', 'Carbon']) )
exts.append( Extension('_CarbonEvt', ['carbonevt/_CarbonEvtmodule.c'], # Carbon
extra_compile_args=carbon_extra_compile_args, carbon_kwds = {'extra_compile_args': carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) ) 'extra_link_args': ['-framework', 'Carbon'],
exts.append( Extension('_CG', ['cg/_CGmodule.c'], }
extra_compile_args=carbon_extra_compile_args, CARBON_EXTS = ['ColorPicker', 'gestalt', 'MacOS', 'Nav',
extra_link_args=['-framework', 'ApplicationServices']) ) 'OSATerminology', 'icglue',
exts.append( Extension('_Cm', ['cm/_Cmmodule.c'], # All these are in subdirs
extra_compile_args=carbon_extra_compile_args, '_AE', '_AH', '_App', '_CarbonEvt', '_Cm', '_Ctl',
extra_link_args=['-framework', 'Carbon']) ) '_Dlg', '_Drag', '_Evt', '_File', '_Folder', '_Fm',
exts.append( Extension('_Ctl', ['ctl/_Ctlmodule.c'], '_Help', '_Icn', '_IBCarbon', '_List',
extra_compile_args=carbon_extra_compile_args, '_Menu', '_Mlte', '_OSA', '_Res', '_Qd', '_Qdoffs',
extra_link_args=['-framework', 'Carbon']) ) '_Scrap', '_Snd', '_TE', '_Win',
exts.append( Extension('_Dlg', ['dlg/_Dlgmodule.c'], ]
extra_compile_args=carbon_extra_compile_args, for name in CARBON_EXTS:
extra_link_args=['-framework', 'Carbon']) ) addMacExtension(name, carbon_kwds)
exts.append( Extension('_Drag', ['drag/_Dragmodule.c'],
extra_compile_args=carbon_extra_compile_args, # Application Services & QuickTime
extra_link_args=['-framework', 'Carbon']) ) app_kwds = {'extra_compile_args': carbon_extra_compile_args,
exts.append( Extension('_Evt', ['evt/_Evtmodule.c'], 'extra_link_args': ['-framework','ApplicationServices'],
extra_compile_args=carbon_extra_compile_args, }
extra_link_args=['-framework', 'Carbon']) ) addMacExtension('_Launch', app_kwds)
exts.append( Extension('_File', ['file/_Filemodule.c'], addMacExtension('_CG', app_kwds)
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) )
exts.append( Extension('_Folder', ['folder/_Foldermodule.c'],
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) )
exts.append( Extension('_Fm', ['fm/_Fmmodule.c'],
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) )
exts.append( Extension('_Help', ['help/_Helpmodule.c'],
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) )
exts.append( Extension('_Icn', ['icn/_Icnmodule.c'],
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) )
exts.append( Extension('_IBCarbon', ['ibcarbon/_IBCarbon.c'],
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) )
exts.append( Extension('_Launch', ['launch/_Launchmodule.c'],
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'ApplicationServices']) )
exts.append( Extension('_List', ['list/_Listmodule.c'],
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) )
exts.append( Extension('_Menu', ['menu/_Menumodule.c'],
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) )
exts.append( Extension('_Mlte', ['mlte/_Mltemodule.c'],
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) )
exts.append( Extension('_OSA', ['osa/_OSAmodule.c'],
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) )
exts.append( Extension('_Qd', ['qd/_Qdmodule.c'],
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) )
exts.append( Extension('_Qdoffs', ['qdoffs/_Qdoffsmodule.c'],
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) )
exts.append( Extension('_Qt', ['qt/_Qtmodule.c'], exts.append( Extension('_Qt', ['qt/_Qtmodule.c'],
extra_compile_args=carbon_extra_compile_args, extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'QuickTime', extra_link_args=['-framework', 'QuickTime',
'-framework', 'Carbon']) ) '-framework', 'Carbon']) )
exts.append( Extension('_Scrap', ['scrap/_Scrapmodule.c'],
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) )
exts.append( Extension('_TE', ['te/_TEmodule.c'],
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) )
# As there is no standardized place (yet) to put # As there is no standardized place (yet) to put
# user-installed Mac libraries on OSX, we search for "waste" # user-installed Mac libraries on OSX, we search for "waste"
# in parent directories of the Python source tree. You # in parent directories of the Python source tree. You
@ -1119,7 +1077,6 @@ class PyBuildExt(build_ext):
waste_libs = find_library_file(self.compiler, "WASTE", [], waste_libs = find_library_file(self.compiler, "WASTE", [],
["../"*n + "waste/Static Libraries" for n in (0,1,2,3,4)]) ["../"*n + "waste/Static Libraries" for n in (0,1,2,3,4)])
if waste_incs != None and waste_libs != None: if waste_incs != None and waste_libs != None:
(srcdir,) = sysconfig.get_config_vars('srcdir')
exts.append( Extension('waste', exts.append( Extension('waste',
['waste/wastemodule.c'] + [ ['waste/wastemodule.c'] + [
os.path.join(srcdir, d) for d in os.path.join(srcdir, d) for d in
@ -1132,9 +1089,6 @@ class PyBuildExt(build_ext):
libraries = ['WASTE'], libraries = ['WASTE'],
extra_link_args = ['-framework', 'Carbon'], extra_link_args = ['-framework', 'Carbon'],
) ) ) )
exts.append( Extension('_Win', ['win/_Winmodule.c'],
extra_compile_args=carbon_extra_compile_args,
extra_link_args=['-framework', 'Carbon']) )
self.extensions.extend(exts) self.extensions.extend(exts)