mirror of
https://github.com/python/cpython.git
synced 2025-07-23 11:15:24 +00:00
Got it working for all important plugins, and moved it from Build to scripts.
This commit is contained in:
parent
afb17fc7b2
commit
6c502d7a81
2 changed files with 108 additions and 43 deletions
108
Mac/scripts/genpluginprojects.py
Normal file
108
Mac/scripts/genpluginprojects.py
Normal file
|
@ -0,0 +1,108 @@
|
|||
import mkcwproject
|
||||
import sys
|
||||
import os
|
||||
|
||||
PROJECTDIR = os.path.join(sys.prefix, ":Mac:Build")
|
||||
MODULEDIRS = [ # Relative to projectdirs
|
||||
"::Modules:%s",
|
||||
"::Modules",
|
||||
":::Modules",
|
||||
]
|
||||
|
||||
def genpluginproject(module,
|
||||
project=None, projectdir=None,
|
||||
sources=[], sourcedirs=[],
|
||||
libraries=[], extradirs=[],
|
||||
extraexportsymbols=[]):
|
||||
if not project:
|
||||
project = module + '.mcp'
|
||||
if not projectdir:
|
||||
projectdir = PROJECTDIR
|
||||
if not sources:
|
||||
sources = [module + 'module.c']
|
||||
if not sourcedirs:
|
||||
for moduledir in MODULEDIRS:
|
||||
if '%' in moduledir:
|
||||
moduledir = moduledir % module
|
||||
fn = os.path.join(projectdir, os.path.join(moduledir, sources[0]))
|
||||
if os.path.exists(fn):
|
||||
moduledir, sourcefile = os.path.split(fn)
|
||||
sourcedirs = [moduledir]
|
||||
sources[0] = sourcefile
|
||||
break
|
||||
else:
|
||||
print "Warning: %s: sourcefile not found: %s"%(module, sources[0])
|
||||
sourcedirs = []
|
||||
dict = {
|
||||
"sysprefix" : sys.prefix,
|
||||
"sources" : sources,
|
||||
"extrasearchdirs" : sourcedirs + extradirs,
|
||||
"libraries": libraries,
|
||||
"mac_outputdir" : os.path.join(sys.prefix, ":Mac:Plugins"),
|
||||
"extraexportsymbols" : extraexportsymbols,
|
||||
}
|
||||
mkcwproject.mkproject(os.path.join(projectdir, project), module, dict)
|
||||
|
||||
def genallprojects():
|
||||
# Standard Python modules
|
||||
genpluginproject("ucnhash", sources=["ucnhash.c"])
|
||||
genpluginproject("pyexpat",
|
||||
sources=["pyexpat.c"],
|
||||
libraries=["libexpat.ppc.lib"],
|
||||
extradirs=["::::expat:mac"])
|
||||
genpluginproject("zlib",
|
||||
libraries=["zlib.ppc.Lib"],
|
||||
extradirs=["::::imglibs:zlib:mac", "::::imglibs:zlib"])
|
||||
genpluginproject("gdbm",
|
||||
libraries=["gdbm.ppc.gusi.lib"],
|
||||
extradirs=["::::gdbm:mac", "::::gdbm"])
|
||||
|
||||
# bgen-generated Toolbox modules
|
||||
genpluginproject("App", libraries=["AppearanceLib"])
|
||||
genpluginproject("Cm",
|
||||
libraries=["QuickTimeLib"],
|
||||
extraexportsymbols=[
|
||||
"CmpObj_New",
|
||||
"CmpObj_Convert",
|
||||
"CmpInstObj_New",
|
||||
"CmpInstObj_Convert",
|
||||
])
|
||||
genpluginproject("Drag", libraries=["DragLib"])
|
||||
genpluginproject("Fm")
|
||||
genpluginproject("Help")
|
||||
genpluginproject("Icn", libraries=["IconServicesLib"])
|
||||
genpluginproject("List")
|
||||
genpluginproject("Qt", libraries=["QuickTimeLib", "Cm.ppc.slb"], extradirs=["::Plugins"])
|
||||
genpluginproject("Qdoffs")
|
||||
genpluginproject("Scrap")
|
||||
genpluginproject("Snd", libraries=["SoundLib"])
|
||||
genpluginproject("Sndihooks", sources=[":snd:Sndihooks.c"])
|
||||
genpluginproject("TE", libraries=["DragLib"])
|
||||
|
||||
# Other Mac modules
|
||||
genpluginproject("calldll", sources=["calldll.c"])
|
||||
genpluginproject("ColorPicker")
|
||||
genpluginproject("Printing")
|
||||
genpluginproject("waste",
|
||||
sources=[
|
||||
"wastemodule.c",
|
||||
'WEAccessors.c', 'WEBirthDeath.c', 'WEDebug.c',
|
||||
'WEDrawing.c', 'WEFontTables.c', 'WEHighLevelEditing.c',
|
||||
'WEICGlue.c', 'WEInlineInput.c', 'WELineLayout.c', 'WELongCoords.c',
|
||||
'WELowLevelEditing.c', 'WEMouse.c', 'WEObjects.c', 'WEScraps.c',
|
||||
'WESelecting.c', 'WESelectors.c', 'WEUserSelectors.c', 'WEUtilities.c',
|
||||
'WEObjectHandlers.c',
|
||||
'WETabs.c',
|
||||
'WETabHooks.c'],
|
||||
libraries=['DragLib'],
|
||||
extradirs=['::::Waste 1.3 Distribution:*']
|
||||
)
|
||||
genpluginproject("ctb")
|
||||
genpluginproject("icglue", sources=["icgluemodule.c"],
|
||||
libraries=["ICGlueCFM-PPC.lib"],
|
||||
extradirs=["::::ICProgKit1.4:APIs"])
|
||||
genpluginproject("macspeech", libraries=["SpeechLib"])
|
||||
|
||||
if __name__ == '__main__':
|
||||
genallprojects()
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue