aboutsummaryrefslogtreecommitdiff
path: root/docs.md
diff options
context:
space:
mode:
authorLaurence Kedward <laurence.kedward@bristol.ac.uk>2020-12-10 10:09:49 +0000
committerGitHub <noreply@github.com>2020-12-10 10:09:49 +0000
commit35852019bc4688506e687e6aca02c397e52a36c4 (patch)
treedf60888f41aaba90928b12829e4e885181ba58e6 /docs.md
parent4eba2e0ee99d8d2ace1173d149ad2cf16910a705 (diff)
parent4e9ac3ef08a8e81da164a0d99a43f292666b8aa4 (diff)
downloadfpm-35852019bc4688506e687e6aca02c397e52a36c4.tar.gz
fpm-35852019bc4688506e687e6aca02c397e52a36c4.zip
Merge pull request #284 from LKedward/dev-docs-model
Document model and backend for developers
Diffstat (limited to 'docs.md')
-rw-r--r--docs.md16
1 files changed, 16 insertions, 0 deletions
diff --git a/docs.md b/docs.md
index 1b4aef1..2ffa611 100644
--- a/docs.md
+++ b/docs.md
@@ -67,6 +67,22 @@ To work with an *fpm* project as a user you can completely rely on the command l
The command line interface is build with the [M_CLI2](https://github.com/urbanjost/M_CLI2) module and can be found in [[fpm_command_line]].
+## The package model
+
+Once front-end inputs have been received from the package manifest and command line interface, *fpm* will construct an
+internal representation of the package and its dependencies. This internal representation is known as the package *model*.
+The model and its associated data types should encapsulate all the information required to correctly build a package and
+should be independent of the intended backend build system. Information stored in the model includes: build targets and
+their inter-dependencies; compiler and compiler flags; library linking information.
+
+For more information on the contents of the package model and the process for constructing it, please see [[fpm_model]].
+
+## The build backend
+
+Once a complete package model has been constructed, it can be passed to a *backend* for either performing the compilation
+and linking of targets, or for generating configuration files for a third-party build system.
+Currently, only a native backend is implemented in *fpm*. See [[fpm_backend]] for more information.
+
## Generating this documentation
This documentation is generated by [FORD](https://github.com/Fortran-FOSS-Programmers/FORD).