Glossary

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 GPRbuild Reference.

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 Aggregate Library Project.

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 Aggregate Project.

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 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 Configuration Project and GPRconfig Reference.

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 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 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 Library Project.

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 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 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 Library Project.

Standard project

The default project kind: contains sources and produces executables or object files. The standard qualifier may be omitted. See 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.