You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -45,8 +34,6 @@ Every manifest file consists of the following sections:
45
34
Project library dependencies
46
35
-[*dev-dependencies*](#development-dependencies):
47
36
Dependencies only needed for tests
48
-
-[*install*](#installation-configuration):
49
-
Installation configuration
50
37
51
38
52
39
[TOML]: https://toml.io/
@@ -134,51 +121,6 @@ copyright = "Copyright 2020 Jane Doe"
134
121
```
135
122
136
123
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
-
182
124
## Project targets
183
125
184
126
Every fpm project can define library, executable and test targets.
@@ -189,38 +131,18 @@ Library targets are exported and useable for other projects.
189
131
190
132
Defines the exported library target of the project.
191
133
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.
194
136
195
137
*Example:*
196
138
197
139
```toml
198
140
[library]
199
141
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"]
216
142
```
217
143
218
-
> *include-dir* does not currently allow using pre-built module `.mod` files
219
-
220
144
#### Custom build script
221
145
222
-
> Supported in Bootstrap fpm only
223
-
224
146
Projects with custom build scripts can specify those in the *build-script* entry.
225
147
The custom build script will be executed when the library build step is reached.
226
148
@@ -251,11 +173,6 @@ The source file containing the program body can be specified in the *main* entry
251
173
Executables can have their own dependencies.
252
174
See [specifying dependencies](#specifying-dependencies) for more details.
253
175
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
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
-
396
255
## Specifying dependencies
397
256
398
257
Dependencies can be declared in the *dependencies* table in the manifest root or the [*executable*](#executable-targets) or [*test*](#test-targets) sections.
0 commit comments