Eerste stappen met fpm

Eerste stappen met fpm

Deze tutorial behandelt het basale gebruik van opdrachtinterface van de Fortran-packagemanager (fpm) aan de hand van het opzetten van een nieuw project en de mogelijkheden om hiermee een programma te bouwen en uit te voeren.

Om een nieuw project met fpm te beginnen, gebruik de opdracht fpm new

❯ fpm new first_steps

Standaard zet fpm een Git-repository op met daarin een dummy-project in de standaardlayout van fpm

❯ cd first_steps
❯ tree .
.
├── README.md
├── app
│   └── main.f90
├── fpm.toml
├── src
│   └── first_steps.f90
└── test
    └── check.f90

3 directories, 5 files

Meer hebben we niet nodig om een begin te maken met ons nieuwe project. Eerst inspecteren we het manifestbestand fpm.toml, dat met dummygegevens is gevuld

fpm.toml
name = "first_steps"
version = "0.1.0"
license = "license"
author = "Jane Doe"
maintainer = "jane.doe@example.com"
copyright = "Copyright 2021, Jane Doe"
[build]
auto-executables = true
auto-tests = true
auto-examples = true
[install]
library = false

Het manifestbestand bevat alle benodigde metagegevens voor het nieuwe project. Vervolgens controleren we het hoofdprogramma in het bestand app/main.f90, dat fpm voor ons heeft gegenereerd:

app/main.f90
program main
  use first_steps, only: say_hello
  implicit none

  call say_hello()
end program main

Het programma gebruikt al een module uit onze bibliotheek, die we in het bestand src/first_steps.f90 vinden:

src/first_steps.f90
module first_steps
  implicit none
  private

  public :: say_hello
contains
  subroutine say_hello
    print *, "Hello, first_steps!"
  end subroutine say_hello
end module first_steps

We kunnen de executable direct draaien met de opdracht fpm run:

❯ fpm run
...
 Hello, first_steps!

Op dezelfde manier heeft fpm al een opzetje gemaakt voor het testen, dat met fpm test uitgevoerd wordt:

❯ fpm test
...
 Put some tests in here!

Fpm gaat automatisch alle veranderingen in het projekt na, wanneer de opdrachten run en test uitgevoerd worden.

Samenvatting

In deze tutorial hebben we geleerd hoe je

  • een nieuw project met fpm-opdrachten opzet

  • programma’s op basis van projectdefinities met fpm bouwt en uitvoert

  • testen met fpm start