aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xfce-macros
Commit message (Expand)AuthorAgeFilesLines
* tools: use host build_dir instead of target build_dirNicolas Thill2011-11-231-1/+1
* package xfce-macros, required for autoreconf in xfce4 packagesJo-Philipp Wich2011-03-091-0/+32
58'>58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
# =============================================================================
#               ____ _   _ ____  _       _ _ _           _         _ _
#  _ __  _   _ / ___| | | |  _ \| |     | (_) |__   __ _| |__   __| | |
# | '_ \| | | | |  _| |_| | | | | |     | | | '_ \ / _` | '_ \ / _` | |
# | |_) | |_| | |_| |  _  | |_| | |___ _| | | |_) | (_| | | | | (_| | |
# | .__/ \__, |\____|_| |_|____/|_____(_)_|_|_.__/ \__, |_| |_|\__,_|_|
# |_|    |___/                                     |___/
# =============================================================================
#  Authors:
#    Tristan Gingold
#    Patrick Lehmann
#
# Package module:   Python binding and low-level API for shared library 'libghdl'.
#
# License:
# ============================================================================
#  Copyright (C) 2019-2021 Tristan Gingold
#
#  This program is free software: you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation, either version 2 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program.  If not, see <gnu.org/licenses>.
#
# SPDX-License-Identifier: GPL-2.0-or-later
# ============================================================================

from ctypes import c_int32

from pyTooling.Decorators import export

from pyGHDL.libghdl import libghdl
from pyGHDL.libghdl._types import (
    NameId,
    Iir_Library_Declaration,
    Iir_Design_Unit,
    Iir_Design_File,
    LocationType,
)
from pyGHDL.libghdl._decorator import BindToLibGHDL

__all__ = ["Library_Location", "Work_Library"]

Library_Location: LocationType = c_int32.in_dll(libghdl, "libraries__library_location")
"""
A location for library declarations (such as library WORK).

Use the property ``.value`` to access the variable's value.
"""

Work_Library: Iir_Library_Declaration = c_int32.in_dll(libghdl, "libraries__work_library")
"""
Library declaration for the work library.

.. note:: The identifier of the work_library is ``work_library_name``, which may be different from 'WORK'.

Use the property ``.value`` to access the variable's value.
"""


@export
@BindToLibGHDL("libraries__get_libraries_chain")
def Get_Libraries_Chain() -> Iir_Library_Declaration:
    """
    Get the chain of libraries. Can be used only to read (it mustn't be modified).

    :return: undocumented
    """
    return 0


@export
@BindToLibGHDL("libraries__add_design_unit_into_library")
def Add_Design_Unit_Into_Library(Unit: Iir_Design_Unit, Keep_Obsolete: bool) -> None:
    """
    Add or replace an design unit in the work library. DECL must not have a chain
    (because it may be modified).

    If the design_file of UNIT is not already in the library, a new one is created.

    Units are always appended to the design_file. Therefore, the order is kept.

    :param Unit:          undocumented
    :param Keep_Obsolete: If :obj:`Keep_Obsolete` is True, obsoleted units are
                          kept in the library.

                          This is used when a whole design file has to be added
                          in the library and then processed (without that feature,
                          redefined units would disappear).
    """


@export
@BindToLibGHDL("libraries__purge_design_file")
def Purge_Design_File(Design_File: Iir_Design_File) -> None:
    """
    Remove the same file as :obj:`Design_File` from work library and all of its units.

    :param Design_File: undocumented
    """


@export
@BindToLibGHDL("libraries__find_entity_for_component")
def Find_Entity_For_Component(Name: NameId) -> Iir_Design_Unit:
    """
    Find an entity whose name is :obj:`Name` in any library. |br|
    If there is no such entity, return :attr:`~pyGHDL.libghdl.vhdl.nodes.Null_Iir`. |br|
    If there are several entities, return :attr:`~pyGHDL.libghdl.vhdl.nodes.Null_Iir`;

    :param Name: Entity name to search for.
    :return:     undocumented
    """
    return 0


@export
@BindToLibGHDL("libraries__get_library_no_create")
def Get_Library_No_Create(Ident: NameId) -> Iir_Library_Declaration:
    """
    Get the library named :obj:`Ident`.

    :param Ident: Library to look for.
    :return:      Return :attr:`~pyGHDL.libghdl.vhdl.nodes.Null_Iir` if it doesn't exist.
    """
    return 0


@export
@BindToLibGHDL("libraries__find_primary_unit")
def Find_Primary_Unit(Library: Iir_Library_Declaration, Name: NameId) -> Iir_Design_Unit:
    """
    Just return the design_unit for :obj:`Name`, or ``NULL`` if not found.

    :param Library: Library to look in.
    :param Name:    Primary unit to search for.
    :return:        undocumented
    """
    return 0