About
This project implements tools to make working with Ada projects easier. The main goal is project management and building. This is done through a BASH script called adaprj
. Another tool adasrc
exists for getting information from specific source files, not entire projects. adaprj
uses adasrc
to do most of its work. These tools assume a few standard UNIX tools, some GCC tools, and GNAT, are installed. These are grep
, sed
, sort
, uniq
, GNU ld
, gnatmake
, and gnatbind
.
Design Goals
Firstly, adaprj
should not seek to replace gprbuild
. adaprj
is designed to require as little configuration as possible, and as of this writing, is not configurable in any way. It might seem strange to have a project manager that offers no configuration; how could this work? It largely has to do with a few assumptions, and the fact that nearly everything that would be configured, is already done so elsewhere. This would not be possible with most other languages.
Assumptions
- The directory is the project. Source files of the project may be present inside of subdirectories, but none will be present outside of the directory.
- Dependencies are installed in standard system paths. For UNIX systems, the libraries and ali files are located in
/usr/lib/
and the source files are located in/usr/include/
. - The project source files should all be built with the same flags. (This does not assume that every file has the same configuration pragmas however)
- It is desirable to build (almost) every package into a separate shared library. Explaination
- Binder code should be generated, compiled, and linked into the respective library, automatically.