diff options
author | umarcor <unai.martinezcorral@ehu.eus> | 2020-12-27 22:10:38 +0100 |
---|---|---|
committer | umarcor <unai.martinezcorral@ehu.eus> | 2020-12-27 23:13:21 +0100 |
commit | bf74a0983c2d534e217e7312ab559ca8929ff8a2 (patch) | |
tree | fb630d5b83afc2f112996ebb5f1eac44de868132 /python/libghdl/__init__.py | |
parent | 340fc792bba2ffdb4f930bc427a39ea3a1b659b2 (diff) | |
download | ghdl-bf74a0983c2d534e217e7312ab559ca8929ff8a2.tar.gz ghdl-bf74a0983c2d534e217e7312ab559ca8929ff8a2.tar.bz2 ghdl-bf74a0983c2d534e217e7312ab559ca8929ff8a2.zip |
rework 'python', rename to 'pyGHDL'
* Rename 'python' to 'pyGHDL'.
* Let 'thin' be 'libghdl'.
* Move move 'pyutils.py' from 'python/libghdl/vhdl' to a separate
package ('pyGHDL/libghdl/utils/').
* Update 'vhdl_langserver' accordingly.
* Rename 'vhdl_langserver' to 'lsp'.
* Move 'ghdl-ls' to 'pyGHDL/cli'.
Diffstat (limited to 'python/libghdl/__init__.py')
-rw-r--r-- | python/libghdl/__init__.py | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/python/libghdl/__init__.py b/python/libghdl/__init__.py deleted file mode 100644 index 4ba7b6b26..000000000 --- a/python/libghdl/__init__.py +++ /dev/null @@ -1,106 +0,0 @@ -import ctypes -import os -import sys -from os.path import dirname, join, exists, normpath -from shutil import which -from libghdl.version import __version__ - - -def _to_char_p(arg): - return ctypes.c_char_p(arg), len(arg) - - -def _get_libghdl_name(): - """Get the name of the libghdl library (with version and extension)""" - ver = __version__.replace("-", "_").replace(".", "_") - ext = {"win32": "dll", "cygwin": "dll", "darwin": "dylib"}.get(sys.platform, "so") - return "libghdl-" + ver + "." + ext - - -def _check_libghdl_libdir(libdir, basename): - """Return libghdl path in :param libdir" if found or None""" - if libdir is None: - return None - # print('libghdl: check in {}'.format(libdir)) - res = join(libdir, basename) - if exists(res): - return res - return None - - -def _check_libghdl_bindir(bindir, basename): - if bindir is None: - return None - return _check_libghdl_libdir(normpath(join(bindir, "..", "lib")), basename) - - -def _get_libghdl_path(): - """Locate the directory where the shared library is""" - basename = _get_libghdl_name() - # Try GHDL_PREFIX - r = os.environ.get("GHDL_PREFIX") - if r is not None: - # GHDL_PREFIX is the prefix of the vhdl libraries, so remove the - # last path component. - r = _check_libghdl_libdir(dirname(r), basename) - if r is not None: - return r - # Try VUNIT_GHDL_PATH (path of the ghdl binary when using VUnit). - r = _check_libghdl_bindir(os.environ.get("VUNIT_GHDL_PATH"), basename) - if r is not None: - return r - # Try GHDL (name/path of the ghdl binary) - r = os.environ.get("GHDL", "ghdl") - r = which(r) - if r is not None: - r = _check_libghdl_bindir(dirname(r), basename) - if r is not None: - return r - # Try within libghdl/ python installation - r = __file__ - r = _check_libghdl_bindir(dirname(r), basename) - if r is not None: - return r - # Try when running from the build directory - r = normpath(join(dirname(__file__), "..", "..", "lib")) - r = _check_libghdl_libdir(r, basename) - if r is not None: - return r - # Failed. - raise Exception("Cannot find libghdl {}".format(basename)) - - -# Load the shared library -_libghdl_path = _get_libghdl_path() -# print("Load {}".format(_libghdl_path)) -libghdl = ctypes.CDLL(_libghdl_path) - -# Initialize it. -libghdl.libghdl_init() -libghdl.libghdl__set_hooks_for_analysis() - -# Set the prefix in order to locate the vhdl libraries. -libghdl.libghdl__set_exec_prefix( - *_to_char_p(dirname(dirname(_libghdl_path)).encode("utf-8")) -) - - -def set_option(opt): - "Set option OPT. Return true iff the option is known and handled" - return libghdl.libghdl__set_option(*_to_char_p(opt)) == 0 - - -def analyze_init(): - # Deprecated as it may raise an exception. Use analyze_init_status - libghdl.libghdl__analyze_init() - -def analyze_init_status(): - # Return 0 in case of success - return libghdl.libghdl__analyze_init_status() - -def analyze_file(fname): - return libghdl.libghdl__analyze_file(*_to_char_p(fname)) - - -def disp_config(): - return libghdl.ghdllocal__disp_config_prefixes() |