.. _RM_Glossary: ******** Glossary ******** .. glossary:: :sorted: Action An atomic build step in GPRbuild2's DAG: a single invocation of an external tool (compiler, binder, linker, archiver) with a defined set of inputs and outputs. See :ref:`RM_GPRbuild`. Aggregate project A project kind whose sole purpose is to group other project files for a single-invocation build. An aggregate project does not contain sources itself. See :ref:`Aggregate_Project_Kind`. Aggregate library project A project kind that builds a single library by collecting object files from a set of constituent projects. Unlike plain aggregate projects, aggregate library projects can be imported by other projects. See :ref:`Aggregate_Library_Project_Kind`. ALI file An Ada Library Information file (``.ali``), generated by the GNAT compiler alongside each compiled unit. It records unit dependencies, compilation switches, and cross-reference data. GPRbuild uses ALI files for incremental build decisions; GPRls and GPRinstall use them for dependency listing and installation. Attribute A named project-level or package-level setting that controls how a project or tool behaves. Attributes are declared with ``for`` statements inside a project file or package. See the :ref:`Attributes` chapter. Build database A persistent store written by GPRbuild2 that records the signature of every action executed. On subsequent builds, GPRbuild2 compares current signatures against the stored ones to determine which actions need re-execution. Configuration project A special project (qualifier ``configuration``, extension ``.cgpr``) that supplies toolchain-specific settings - compiler drivers, default switches, naming conventions - to all other projects in the tree. Generated by GPRconfig and loaded via ``--config`` or ``--autoconf``. See :ref:`Configuration_Project_Kind` and :ref:`RM_GPRconfig`. Entry point A build target that anchors the DAG traversal in GPRbuild2: an executable declared via the ``Main`` attribute or on the command line, a library interface, or additional units specified via the ``Roots`` attribute. Extending project A project that inherits sources and attributes from a base project using the ``extends`` clause. The extending project may shadow inherited sources and override attributes. See :ref:`RM_Project_Extension`. External variable A string variable whose value is supplied from outside the project file, via the ``-X`` command-line switch or the ``External`` attribute in an aggregate project. Used with ``case`` statements to produce configuration-dependent attribute values. Knowledge base (KB) A collection of XML files describing compiler executables, target platforms, and runtime variants. The KB is embedded in all GPR tools and consulted during auto-configuration. See :ref:`RM_Knowledge_Base`. Library project A project kind that builds a static or shared library rather than executables. Identified by the ``library`` qualifier or by the presence of ``Library_Name`` and ``Library_Dir`` attributes. See :ref:`Library_Project_Kind`. Manifest A file written by GPRinstall that records the path and MD5 checksum of every file installed. Used by ``gprinstall --uninstall`` to identify and remove previously installed files safely. Naming package A ``package Naming`` declaration inside a project file that maps language unit names to source file names, overriding the default naming conventions. Generated by GPRname for projects with non-standard file naming. Package A named group of attributes inside a project file, corresponding to a specific tool (``Compiler``, ``Linker``, ``Builder``, ``Clean``, ``Install``, ``Naming``, etc.). Packages scope attribute names and may be extended or renamed. Project file A text file with a ``.gpr`` extension that describes a software component: its sources, build settings, dependencies, and tool configuration. Parsed by all GPR tools. Project tree The complete graph of project files loaded for a build: the root project, all projects it imports (directly or transitively), and the active configuration project. Project view The resolved representation of a single project file within a loaded project tree, after attribute inheritance, variable expansion, and extension redirection have been applied. Qualifier One or two keywords placed immediately before the ``project`` keyword to declare the project's kind explicitly: ``abstract``, ``library``, ``aggregate``, ``aggregate library``, ``configuration``, or ``standard``. See :ref:`Project_Kinds`. Root project The project file named on the command line (or discovered automatically). It is the starting point for project tree loading and, for GPRbuild, the source of the ``Main`` and ``Builder`` attributes that drive the build. Signature A checksum computed over all inputs and expected outputs of an action (source files, dependency closures, switches, configuration). GPRbuild2 stores signatures in the build database; an action is re-executed only when its signature has changed. Source directory A directory listed in the ``Source_Dirs`` attribute from which the project model collects source files. See :ref:`Source_Resolution`. Stand-alone library (SAL) A library project that bundles its own elaboration code, declared by setting ``Library_Interface`` or ``Interfaces``. A SAL can be loaded independently of the main program's elaboration sequence. See :ref:`Library_Project_Kind`. Standard project The default project kind: contains sources and produces executables or object files. The ``standard`` qualifier may be omitted. See :ref:`Standard_Project`. Unit An Ada compilation unit: a package, subprogram, generic, or instantiation, identified by a dotted name. One or more units may reside in a single source file. ``with`` clause A declaration at the top of a project file that imports another project, making its attributes and sources visible. The imported project is added to the project tree.