# ------------------------------------------------------------------ # Copyright (c) 2021 PyInstaller Development Team. # # This file is distributed under the terms of the GNU General Public # License (version 2.0 or later). # # The full license is available in LICENSE.GPL.txt, distributed with # this software. # # SPDX-License-Identifier: GPL-2.0-or-later # ------------------------------------------------------------------ import glob import os import shutil from PyInstaller.compat import is_win, is_darwin from PyInstaller.depend.bindepend import findLibrary binaries = [] datas = [] # List of binaries agraph.py may invoke. progs = [ "neato", "dot", "twopi", "circo", "fdp", "nop", "acyclic", "gvpr", "gvcolor", "ccomps", "sccmap", "tred", "sfdp", "unflatten", ] if is_win: for prog in progs: for binary in glob.glob("c:/Program Files/Graphviz*/bin/" + prog + ".exe"): binaries.append((binary, ".")) for binary in glob.glob("c:/Program Files/Graphviz*/bin/*.dll"): binaries.append((binary, ".")) for data in glob.glob("c:/Program Files/Graphviz*/bin/config*"): datas.append((data, ".")) else: # The dot binary in PATH is typically a symlink, handle that. # graphviz_bindir is e.g. /usr/local/Cellar/graphviz/2.46.0/bin graphviz_bindir = os.path.dirname(os.path.realpath(shutil.which("dot"))) for binary in progs: binaries.append((graphviz_bindir + "/" + binary, ".")) if is_darwin: suffix = "dylib" # graphviz_libdir is e.g. /usr/local/Cellar/graphviz/2.46.0/lib/graphviz graphviz_libdir = os.path.realpath(graphviz_bindir + "/../lib/graphviz") else: suffix = "so" # graphviz_libdir is e.g. /usr/lib64/graphviz graphviz_libdir = os.path.join(os.path.dirname(findLibrary('libcdt')), 'graphviz') for binary in glob.glob(graphviz_libdir + "/*." + suffix): binaries.append((binary, "graphviz")) for data in glob.glob(graphviz_libdir + "/config*"): datas.append((data, "graphviz"))