summaryrefslogtreecommitdiffstats
path: root/Mac/scripts/genpluginprojects.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/scripts/genpluginprojects.py')
-rw-r--r--Mac/scripts/genpluginprojects.py108
1 files changed, 108 insertions, 0 deletions
diff --git a/Mac/scripts/genpluginprojects.py b/Mac/scripts/genpluginprojects.py
new file mode 100644
index 0000000..7351015
--- /dev/null
+++ b/Mac/scripts/genpluginprojects.py
@@ -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()
+