From ea8aa5f99fbf19cbf52090481e44aecbaf3aeef1 Mon Sep 17 00:00:00 2001 From: Thomas Ferreira de Lima Date: Tue, 13 Mar 2018 04:17:01 -0400 Subject: [PATCH] python fully embedded into bundle. wonder if it is useful. --- macbuild/build4mac_util.py | 3 ++- test-pylib.py | 41 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 test-pylib.py diff --git a/macbuild/build4mac_util.py b/macbuild/build4mac_util.py index 06dc780b3..4382dfdbf 100755 --- a/macbuild/build4mac_util.py +++ b/macbuild/build4mac_util.py @@ -237,7 +237,8 @@ def WalkDictTree(dependencyDict, visited_files): dependency_list.append(str(next(iter(deplib)))) libNameChanges.extend(WalkDictTree(deplib, visited_files)) else: - raise RuntimeError("Unexpected value: %s, %s" % (deplib, dependencies)) + #raise RuntimeError("Unexpected value: %s" % deplib) + pass else: raise RuntimeError("Unexpected value: %s" % dependencies) if len(dependency_list) > 0: diff --git a/test-pylib.py b/test-pylib.py new file mode 100644 index 000000000..5a5b1c827 --- /dev/null +++ b/test-pylib.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python3 +import pprint +import os +from macbuild.build4mac_util import WalkFrameworkPaths, PerformChanges, DetectChanges + +bundlePath = 'qt5.pkg.macos-HighSierra-release/klayout.app' +bundleExecPathAbs = os.getcwd() + '/%s/Contents/MacOS/' % bundlePath + +# rsync -a --safe-links /usr/local/opt/python/Frameworks/Python.framework/ qt5.pkg.macos-HighSierra-release/klayout.app/Contents/Frameworks/Python.framework +# cp -RL /usr/local/opt/python/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages qt5.pkg.macos-HighSierra-release/klayout.app/Contents/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ +# rm -rf qt5.pkg.macos-HighSierra-release/klayout.app/Contents/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/test + +pythonFrameworkPath = '%s/Contents/Frameworks/Python.framework' % bundlePath +depdict = WalkFrameworkPaths(pythonFrameworkPath) +# pp = pprint.PrettyPrinter(indent=1) +# pp.pprint(depdict) + +pythonOriginalFrameworkPath = '/usr/local/opt/python/Frameworks/Python.framework' +appPythonFrameworkPath = '@executable_path/../Frameworks/Python.framework/' +PerformChanges(depdict, [(pythonOriginalFrameworkPath, appPythonFrameworkPath)], bundleExecPathAbs) + +klayoutPath = bundleExecPathAbs +depdict = WalkFrameworkPaths(klayoutPath, filter_regex=r'klayout$') +PerformChanges(depdict, [(pythonOriginalFrameworkPath, appPythonFrameworkPath)], bundleExecPathAbs) + +klayoutPath = bundleExecPathAbs + '../Frameworks' +depdict = WalkFrameworkPaths(klayoutPath, filter_regex=r'libklayout') +PerformChanges(depdict, [(pythonOriginalFrameworkPath, appPythonFrameworkPath)], bundleExecPathAbs) + + +usrLocalPath = '/usr/local/opt/' +appUsrLocalPath = '@executable_path/../Frameworks/' +depdict = WalkFrameworkPaths(pythonFrameworkPath) +PerformChanges(depdict, [(usrLocalPath, appUsrLocalPath)], bundleExecPathAbs) + +# usrLocalPath = '/usr/local/lib/' +# appUsrLocalPath = '@executable_path/../Frameworks/' +# depdict = WalkFrameworkPaths(pythonFrameworkPath) +# PerformChanges(depdict, [(usrLocalPath, appUsrLocalPath)], bundleExecPathAbs) + +