Previous: Importing Other Projects, Up: Examples of Project
Files  11.2.4 Extending a Project  In large software systems it
is common to have multiple implementations of a common
interface; in Ada terms, multiple versions of a package body for
the same spec. For example, one implementation might be safe for
use in tasking programs, while another might only be used in
sequential applications. This can be modeled in GNAT using the
concept of project extension. If one project (the “child”)
extends another project (the “parent”) then by default all
source files of the parent project are inherited by the child,
but the child project can override any of the parent's source
files with new versions, and can also add new files. This
facility is the project analog of a type extension in Object-
Oriented Programming. Project hierarchies are permitted (a child
project may be the parent of yet another project), and a project
that inherits one project can also import other projects.  As an
example, suppose that directory /s