summaryrefslogtreecommitdiffstats
path: root/OSX-package/linktools/mkframework.py
diff options
context:
space:
mode:
authorcraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
committercraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
commit7ed83b6c6666eb8b6b104c211ae7e52907350372 (patch)
tree4430b556abac0ad660a0aacf1887d77f85d8be02 /OSX-package/linktools/mkframework.py
downloadscribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.gz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.xz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.zip
Branch 1.3.5 tree to 1.4.x tree, goodbye 1.3.x
git-svn-id: svn://scribus.net/branches/Version14x/Scribus@17163 11d20701-8431-0410-a711-e3c959e3b870
Diffstat (limited to 'OSX-package/linktools/mkframework.py')
-rwxr-xr-xOSX-package/linktools/mkframework.py111
1 files changed, 111 insertions, 0 deletions
diff --git a/OSX-package/linktools/mkframework.py b/OSX-package/linktools/mkframework.py
new file mode 100755
index 0000000..c29e847
--- /dev/null
+++ b/OSX-package/linktools/mkframework.py
@@ -0,0 +1,111 @@
+#!/usr/bin/python
+
+import os
+import sys
+import shutil
+import osxtools
+
+def usage():
+ print """
+ Usage: mkframework.py bundle [-l libfile] [-v version]
+
+ Creates the directory structure for a framework.
+ If libfile is given, it will be used as the frameworks executable,
+ otherwise the framework will just be an empty shell.
+
+ bundle: the path to the *.framework bundle
+ -l lib: copy lib into the bundle.
+ -v ver: use "ver" as the version instead of the standard 'A'
+ -f: overwrite existing files if version exists
+ """
+
+
+if len(sys.argv) <= 1 or sys.argv[1] == "-?" :
+ usage()
+ sys.exit(0)
+
+
+
+version = "A"
+overwrite = False
+libfile = None
+bundle = None
+
+argp = 1
+
+while argp < len(sys.argv) :
+ if sys.argv[argp] == '-f':
+ overwrite = True;
+ argp = argp + 1
+ elif sys.argv[argp] == '-l' :
+ libfile = (sys.argv[argp + 1])
+ argp = argp + 2
+ elif sys.argv[argp][0:2] == '-l' :
+ libfile = (sys.argv[argp][2:])
+ argp = argp + 1
+ elif sys.argv[argp] == '-v' :
+ version = (sys.argv[argp + 1])
+ argp = argp + 2
+ elif sys.argv[argp][0:2] == '-v' :
+ version = (sys.argv[argp][2:])
+ argp = argp + 1
+ elif sys.argv[argp][0:1] == '-' :
+ print "Error: unknown option: " + sys.argv[argp]
+ usage()
+ sys.exit(1)
+ elif bundle == None:
+ bundle = sys.argv[argp]
+ argp = argp + 1
+ else:
+ print "Error: more than one bundle path specified!"
+ usage()
+ sys.exit(1)
+
+if bundle == None:
+ print "Error: no bundle path specified!"
+ usage()
+ sys.exit(1)
+
+if not os.path.isabs(bundle):
+ bundle = os.path.join(os.getenv("PWD"), bundle)
+
+if bundle[-10 : ] != ".framework":
+ bundle = bundle + ".framework"
+fwName = os.path.basename(bundle)[0: -10]
+
+if not os.path.exists(bundle):
+ os.makedirs(bundle, 0755)
+elif not os.path.isdir(bundle):
+ print "Error: '" + bundle + "' is no bundle path!"
+ usage()
+ sys.exit(1)
+
+versionPath = os.path.join(bundle, "Versions", version)
+
+if os.path.exists(versionPath):
+ if overwrite:
+ shutil.removetree(versionPath)
+ else:
+ print "Error: '" + versionPath + "' already exists!"
+ usage()
+ sys.exit(1)
+
+os.makedirs(versionPath, 0755)
+
+if libfile != None:
+ shutil.copy(libfile, os.path.join(versionPath, fwName))
+ os.system("install_name_tool -id @executable_path/" +
+ os.path.join("../Frameworks",
+ fwName + ".framework",
+ "Versions",
+ version,
+ fwName) +
+ " " +
+ os.path.join(versionPath, fwName))
+
+osxtools.createSymlinks(bundle, [
+ ("Versions/Current", version),
+ (fwName, os.path.join("Versions/Current", fwName)),
+ ("Headers", "Versions/Current/Headers")
+])
+