Skip to content

Commit 1d1ac6c

Browse files
committed
Remove Fortran fpm specific entries from manifest reference
1 parent 72a34fd commit 1d1ac6c

File tree

1 file changed

+8
-162
lines changed

1 file changed

+8
-162
lines changed

manifest-reference.md

Lines changed: 8 additions & 162 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Fortran package manager (fpm) manifest reference
22

3+
> **Important**
4+
>
5+
> The authorative manifest reference is available
6+
> [here](https://github.com/fortran-lang/fpm/blob/master/manifest-reference.md).
7+
> This document describes the current state of the the Haskell fpm manifest syntax.
8+
39
The ``fpm.toml`` file for each project is called its *manifest*.
410
It is written using the [TOML] format.
511
Every manifest file consists of the following sections:
@@ -16,23 +22,6 @@ Every manifest file consists of the following sections:
1622
Author of the project
1723
- [*copyright*](#project-copyright):
1824
Copyright of the project
19-
- [*description*](#project-description):
20-
Description of the project
21-
- [*categories*](#project-categories):
22-
Categories associated with the project
23-
- [*keywords*](#project-keywords):
24-
Keywords describing the project
25-
- [*homepage*](#project-homepage):
26-
The project's homepage
27-
- Build configuration:
28-
- [*auto-tests*](#automatic-target-discovery):
29-
Toggle automatic discovery of test executables
30-
- [*auto-examples*](#automatic-target-discovery):
31-
Toggle automatic discovery of example programs
32-
- [*auto-executables*](#automatic-target-discovery):
33-
Toggle automatic discovery of executables
34-
- [*link*](#link-external-libraries):
35-
Link with external dependencies
3625
- Target sections:
3726
- [*library*](#library-configuration)
3827
Configuration of the library target
@@ -45,8 +34,6 @@ Every manifest file consists of the following sections:
4534
Project library dependencies
4635
- [*dev-dependencies*](#development-dependencies):
4736
Dependencies only needed for tests
48-
- [*install*](#installation-configuration):
49-
Installation configuration
5037

5138

5239
[TOML]: https://toml.io/
@@ -134,51 +121,6 @@ copyright = "Copyright 2020 Jane Doe"
134121
```
135122

136123

137-
## Project description
138-
139-
The description provides a short summary on the project.
140-
It should be plain text and not using any markup formatting.
141-
142-
*Example:*
143-
144-
```toml
145-
description = "A short summary on this project"
146-
```
147-
148-
149-
## Project categories
150-
151-
The project can be associated with different categories.
152-
153-
*Example:*
154-
155-
```toml
156-
categories = ["io"]
157-
```
158-
159-
160-
## Project keywords
161-
162-
The keywords field is an array of strings describing the project.
163-
164-
*Example:*
165-
166-
```toml
167-
keywords = ["hdf5", "mpi"]
168-
```
169-
170-
171-
## Project homepage
172-
173-
URL to the webpage of the project.
174-
175-
*Example:*
176-
177-
```toml
178-
homepage = "https://stdlib.fortran-lang.org"
179-
```
180-
181-
182124
## Project targets
183125

184126
Every fpm project can define library, executable and test targets.
@@ -189,38 +131,18 @@ Library targets are exported and useable for other projects.
189131

190132
Defines the exported library target of the project.
191133
A library is generated if the source directory or include directory is found in a project.
192-
The default source and include directories are ``src`` and ``include``; these can be modified in the *library* section using the *source-dir* and *include-dir* entries.
193-
Paths for the source and include directories are given relative to the project root and use ``/`` as path separator on all platforms.
134+
The default source directory is ``src`` and can be modified in the *library* section using the *source-dir* entry.
135+
Paths for the source directory are given relative to the project root and use ``/`` as path separator on all platforms.
194136

195137
*Example:*
196138

197139
```toml
198140
[library]
199141
source-dir = "lib"
200-
include-dir = "inc"
201-
```
202-
203-
#### Include directory
204-
205-
> Supported in Fortran fpm only
206-
207-
Projects which use the Fortran `include` statement or C preprocessor `#include` statement, can use the *include-dir* key to specify search directories for the included files.
208-
*include-dir* can contain one or more directories, where multiple directories are specified using a list of strings.
209-
Include directories from all project dependencies are passed to the compiler using the appropriate compiler flag.
210-
211-
*Example:*
212-
213-
```toml
214-
[library]
215-
include-dir = ["include", "third_party/include"]
216142
```
217143

218-
> *include-dir* does not currently allow using pre-built module `.mod` files
219-
220144
#### Custom build script
221145

222-
> Supported in Bootstrap fpm only
223-
224146
Projects with custom build scripts can specify those in the *build-script* entry.
225147
The custom build script will be executed when the library build step is reached.
226148

@@ -251,11 +173,6 @@ The source file containing the program body can be specified in the *main* entry
251173
Executables can have their own dependencies.
252174
See [specifying dependencies](#specifying-dependencies) for more details.
253175

254-
Executables can also specify their own external library dependencies.
255-
See [external libraries](#link-external-libraries) for more details.
256-
257-
> Linking against libraries is supported in Fortran fpm only
258-
259176
*Example:*
260177

261178
```toml
@@ -266,7 +183,6 @@ main = "program.f90"
266183

267184
[[ executable ]]
268185
name = "app-tool"
269-
link = "z"
270186
[executable.dependencies]
271187
helloff = { git = "https://gitlab.com/everythingfunctional/helloff.git" }
272188
```
@@ -293,11 +209,6 @@ The source file containing the program body can be specified in the *main* entry
293209
Examples can have their own dependencies.
294210
See [specifying dependencies](#specifying-dependencies) for more details.
295211

296-
Examples can also specify their own external library dependencies.
297-
See [external libraries](#link-external-libraries) for more details.
298-
299-
> Linking against libraries is supported in Fortran fpm only
300-
301212
*Example:*
302213

303214
```toml
@@ -308,7 +219,6 @@ main = "program.f90"
308219

309220
[[ example ]]
310221
name = "example-tool"
311-
link = "z"
312222
[example.dependencies]
313223
helloff = { git = "https://gitlab.com/everythingfunctional/helloff.git" }
314224
```
@@ -327,11 +237,6 @@ The source file containing the program body can be specified in the *main* entry
327237
Tests can have their own dependencies.
328238
See [specifying dependencies](#specifying-dependencies) for more details.
329239

330-
Tests can also specify their own external library dependencies.
331-
See [external libraries](#link-external-libraries) for more details.
332-
333-
> Linking against libraries is supported in Fortran fpm only
334-
335240
*Example:*
336241

337242
```toml
@@ -342,57 +247,11 @@ main = "tester.F90"
342247

343248
[[ test ]]
344249
name = "tester"
345-
link = ["blas", "lapack"]
346250
[test.dependencies]
347251
helloff = { git = "https://gitlab.com/everythingfunctional/helloff.git" }
348252
```
349253

350254

351-
## Link external libraries
352-
353-
> Supported in Fortran fpm only
354-
355-
To declare link time dependencies on external libraries a list of native libraries can be specified in the *link* entry.
356-
Specify either one library as string or a list of strings in case several libraries should be linked.
357-
When possible the project should only link one native library.
358-
The list of library dependencies is exported to dependent packages.
359-
360-
*Example:*
361-
362-
To link against the zlib compression library use
363-
364-
```toml
365-
[build]
366-
link = "z"
367-
```
368-
369-
To dependent on LAPACK also BLAS should be linked.
370-
In this case the order of the libraries matters:
371-
372-
```toml
373-
[build]
374-
link = ["blas", "lapack"]
375-
```
376-
377-
378-
## Automatic target discovery
379-
380-
> Supported in Fortran fpm only
381-
382-
Executables and test can be discovered automatically in their default directories.
383-
The automatic discovery recursively searches the ``app``, ``example``, and ``test`` directories for ``program`` definitions and declares them as executable, example, and test targets, respectively.
384-
The automatic discovery is enabled by default.
385-
386-
To disable the automatic discovery of targets set the *auto-executables*, *auto-examples*, and *auto-tests* entry to *false*.
387-
388-
```toml
389-
[build]
390-
auto-executables = false
391-
auto-examples = false
392-
auto-tests = false
393-
```
394-
395-
396255
## Specifying dependencies
397256

398257
Dependencies can be declared in the *dependencies* table in the manifest root or the [*executable*](#executable-targets) or [*test*](#test-targets) sections.
@@ -453,16 +312,3 @@ rev = "2f5eaba864ff630ba0c3791126a3f811b6e437f3"
453312
### Development dependencies
454313

455314
Development dependencies allow to declare *dev-dependencies* in the manifest root, which are available to all tests but not exported with the project.
456-
457-
458-
## Installation configuration
459-
460-
In the *install* section components for the installation can be selected.
461-
By default only executables are installed, library projects can set the *library* boolean to also installatation the module files and the archive.
462-
463-
*Example*
464-
465-
```toml
466-
[install]
467-
library = true
468-
```

0 commit comments

Comments
 (0)