fpm最初の一歩

fpm最初の一歩

ここでは,コマンドラインにおけるFortranパッケージマネージャ(fpm)の基本的な使用方法を取り扱います.新規プロジェクトの作成や,プロジェクトを実行ファイルにコンパイルする方法だけでなく,構築されたプログラムを実行する方法についても取り扱います.

fpmで新しいプロジェクトを始めるには,fpm newコマンドを用います.

❯ fpm new first_steps

標準では,fpmは既定の構成をもつ仮プロジェクトを含んだgitリポジトリを作成します.

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

3 directories, 5 files

これが,新しいプロジェクトを開始するために必要な全てです.最初に,パッケージマニフェストであるfpm.tomlを見てみましょう.fpm.tomlには,仮データが記入されています.

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

パッケージマニフェストには,新規プロジェクトに必要な全てのメタデータが含まれています.次に,fpmが生成した実行ファイルapp/main.f90を確かめます.

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

  call say_hello()
end program main

このプログラムは,既にライブラリからモジュールをuseしています.当該のモジュールは,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

fpm runコマンドによって,実行ファイルを直接実行できます.

❯ fpm run
...
 Hello, first_steps!

同様に,fpmはテストのための仮ソースを作成済みであり,fpm testで呼び出せます.

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

Fpmは,runtestサブコマンドによってプロジェクトを実行する際に,自動的にプロジェクトの変更を追跡します.

まとめ

ここでは以下の方法を学びました.

  • fpmコマンドラインから新規プロジェクトを作成する方法

  • fpmを用いてプロジェクトをビルドし,実行する方法

  • fpmを用いてテストを実行する方法