Primeiros passos com o fpm

Primeiros passos com o fpm

Este tutorial cobre o uso básico da linha de comando do Gerenciador de Pacotes Fortran (fpm). Ele vai cobrir a geração de um projeto novo e a sua compilação em um executável, bem como a possibilidade de rodar o programa resultante.

Para começar um novo projeto com o fpm use o comando fpm new

❯ fpm new first_steps

Por padrão o fpm cria um repositório git com um projeto modelo em seu formato padrão

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

3 directories, 5 files

Isso é tudo que é necessário para começarmos o nosso novo projeto. Primeiro, inspecionamos o manifesto do pacote, fpm.toml, que vem preenchido com alguns valores para a gente:

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

O manifesto do pacote contém todos os metadados para o novo projeto. A seguir, conferimos o executável principal, app/main.f90, que o fpm nos gerou:

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

  call say_hello()
end program main

O programa já usa um módulo de nossa biblioteca, que podemos encontrar em src/first_steps.f90:

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

Podemos rodar o executável diretamente com o comando fpm run:

❯ fpm run
...
 Hello, first_steps!

Além disso, fpm já criou uma rotina sobressalente para os testes, que pode ser chamada com fpm test:

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

O fpm automaticamente detecta mudanças em seu projeto ao rodá-lo usando os comandos run e test.

Sumário

Neste tutorial você aprendeu como

  • criar um novo projeto com o fpm usando linha de comando

  • compilar e rodar os executáveis do seu projeto com o fpm

  • executar testes com o fpm