From 2d65738a186e7ebc4ec4a8cb56d43891fcaedcd6 Mon Sep 17 00:00:00 2001 From: rdb Date: Sat, 19 Dec 2020 14:10:51 +0100 Subject: [PATCH] makepanda: Respect lib-10.6 dir when copying dylibs/running install_name_tool In the 1.10.8 thirdparty packages, OpenCV is split into a lib folder and a lib-10.6 folder, so we should use the proper dylibs to still be able to target 10.6 --- makepanda/makepanda.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py index 609218002c..eadb8ce189 100755 --- a/makepanda/makepanda.py +++ b/makepanda/makepanda.py @@ -3265,13 +3265,18 @@ if tp_dir is not None: if GetTarget() == 'darwin': # Make a list of all the dylibs we ship, to figure out whether we should use # install_name_tool to correct the library reference to point to our copy. - for lib in glob.glob(tp_dir + "/*/lib/*.dylib"): - dylibs[os.path.basename(lib)] = os.path.basename(os.path.realpath(lib)) + for pkg in PkgListGet(): + if PkgSkip(pkg): + continue - if not PkgSkip("PYTHON"): - for lib in glob.glob(tp_dir + "/*/lib/" + SDK["PYTHONVERSION"] + "/*.dylib"): + tp_libdir = GetThirdpartyLibDir(pkg) + for lib in glob.glob(os.path.join(tp_libdir, "*.dylib")): dylibs[os.path.basename(lib)] = os.path.basename(os.path.realpath(lib)) + if not PkgSkip("PYTHON"): + for lib in glob.glob(os.path.join(tp_libdir, SDK["PYTHONVERSION"], "*.dylib")): + dylibs[os.path.basename(lib)] = os.path.basename(os.path.realpath(lib)) + for pkg in PkgListGet(): if PkgSkip(pkg): continue @@ -3284,13 +3289,14 @@ if tp_dir is not None: CopyAllFiles(GetOutputDir() + "/bin/", tp_pkg + "/bin/" + SDK["PYTHONVERSION"] + "/") elif GetTarget() == 'darwin': - tp_libs = glob.glob(tp_pkg + "/lib/*.dylib") + tp_libdir = GetThirdpartyLibDir(pkg) + tp_libs = glob.glob(os.path.join(tp_libdir, "*.dylib")) if not PkgSkip("PYTHON"): - tp_libs += glob.glob(os.path.join(tp_pkg, "lib", SDK["PYTHONVERSION"], "*.dylib")) - tp_libs += glob.glob(os.path.join(tp_pkg, "lib", SDK["PYTHONVERSION"], "*.so")) + tp_libs += glob.glob(os.path.join(tp_libdir, SDK["PYTHONVERSION"], "*.dylib")) + tp_libs += glob.glob(os.path.join(tp_libdir, SDK["PYTHONVERSION"], "*.so")) if pkg != 'PYTHON': - tp_libs += glob.glob(os.path.join(tp_pkg, "lib", SDK["PYTHONVERSION"], "*.py")) + tp_libs += glob.glob(os.path.join(tp_libdir, SDK["PYTHONVERSION"], "*.py")) for tp_lib in tp_libs: basename = os.path.basename(tp_lib)