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:
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:
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
:
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