Fortran package manager
Project description
Fortran Package Manager
Fortran Package Manager (fpm) is a package manager and build system for Fortran. Its key goal is to improve the user experience of Fortran programmers. It does so by making it easier to build your Fortran program or library, run the executables, tests, and examples, and distribute it as a dependency to other Fortran projects. Fpm's user interface is modeled after Rust's Cargo, so if you're familiar with that tool, you will feel at home with fpm. Fpm's long term vision is to nurture and grow the ecosystem of modern Fortran applications and libraries.
Fpm is an early prototype and is evolving rapidly. You can use it to build and package your Fortran projects, as well as to use existing fpm packages as dependencies. Fpm's behavior and user interface may change as it evolves, however as fpm matures and we enter production, we will aim to stay backwards compatible. Please follow the issues to contribute and/or stay up to date with the development. Before opening a bug report or a feature suggestion, please read our Contributor Guide. You can also discuss your ideas and queries with the community in fpm discussions, or more broadly on Fortran-Lang Discourse.
Fortran Package Manager is not to be confused with Jordan Sissel's fpm, a more general, non-Fortran related package manager.
Website: https://fpm.fortran-lang.org/
Download
Fpm is available on many platforms and through multiple package managers, see our Documentation webpage for a list of All Supported Installations.
The easiest installation routes are shown below.
Python PyPi
Fpm is available on PyPI, and can be installed with:
pip install fpm
Binary
Binaries for the latest stable release are available to download for Windows, MacOS, and Linux.
Note: On Linux and MacOS, you will need to enable executable permission before you can use the binary.
e.g. $ chmod u+x fpm-0.6.0-linux-x86_64
The binaries at the current tag are updated automatically to always provide the current git version from the default branch.
Conda
Fpm is available on conda-forge, to add conda-forge to your channels use:
conda config --add channels conda-forge
Fpm can be installed with:
conda create -n fpm fpm
conda activate fpm
The conda package manager can be installed from miniforge or from miniconda.
Homebrew
The Fortran Package Manager (fpm) is available for the Homebrew package manager via an additional tap. To install fpm via brew, include the new tap and install using
brew tap fortran-lang/fortran
brew install fpm
Binary distributions are available for MacOS 11 (Catalina) and 12 (Big Sur) for x86_64 architectures. For other platforms fpm will be built locally from source automatically.
Fpm should be available and functional after those steps. For more details checkout the tap here.
Get started
Follow our Quickstart Tutorial to get familiar with fpm.
Start a new project
Creating a new fpm project is as simple as running the command
fpm new project_name. This will create a new folder in your current directory
with the following contents and initialized as a git repository.
fpm.toml– with your project’s name and some default standard meta-dataREADME.md– with your project’s name.gitignoresrc/project_name.f90– with a simple hello world subroutineapp/main.f90(if--appflag used) – a program that calls the subroutinetest/main.f90(if--testflag used) – an empty test program
Building your Fortran project with fpm
fpm understands the basic commands:
fpm build– build your library, executables and testsfpm run– run executablesfpm test– run testsfpm install- installs the executables locally
The command fpm run can optionally accept the name of the specific executable
to run, as can fpm test; like fpm run specific_executable. Command line
arguments can also be passed to the executable(s) or test(s) with the option
-- some arguments.
See additional instructions in the Packaging guide or the manifest reference.
Environmental variables
The table below lists the environment variables that control fpm's choice of compilers,
compiler flags, archiver locations, and link flags, each of which can be overridden by
passing fpm flags also shown in the table.
| Environment Variable | Defines | Overridden by |
|---|---|---|
FPM_FC |
Fortran compiler path | --compiler |
FPM_CC |
C compiler path | --c-compiler |
FPM_CXX |
C++ compiler path | --cxx-compiler |
FPM_FFLAGS |
Fortran compiler flags | --flag |
FPM_CFLAGS |
C compiler flags | --c-flag |
FPM_CXXFLAGS |
C++ compiler flags | --cxx-flag |
FPM_AR |
Archiver path | --archiver |
FPM_LDFLAGS |
Link flags | --link-flag |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fpm-0.12.0.tar.gz.
File metadata
- Download URL: fpm-0.12.0.tar.gz
- Upload date:
- Size: 817.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9349372a649e8cb880618b6bdde35275a8b76e508165b17b9bccc5fa2fe53256
|
|
| MD5 |
b6f465be061d1aa7b28225867fe58253
|
|
| BLAKE2b-256 |
130f3460707d2ab8e86b7001ac837913b9334d9b55260557d34373e26377b011
|
Provenance
The following attestation bundles were made for fpm-0.12.0.tar.gz:
Publisher:
wheel.yml on fortran-lang/fpm-on-wheels
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fpm-0.12.0.tar.gz -
Subject digest:
9349372a649e8cb880618b6bdde35275a8b76e508165b17b9bccc5fa2fe53256 - Sigstore transparency entry: 557443696
- Sigstore integration time:
-
Permalink:
fortran-lang/fpm-on-wheels@81132045682a0229b42c9c8718b9eb0b2bfd4c3c -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/fortran-lang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheel.yml@81132045682a0229b42c9c8718b9eb0b2bfd4c3c -
Trigger Event:
push
-
Statement type:
File details
Details for the file fpm-0.12.0-py3-none-win_amd64.whl.
File metadata
- Download URL: fpm-0.12.0-py3-none-win_amd64.whl
- Upload date:
- Size: 864.6 kB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6eb682b8721992d3705f8962f4df4b53f5236d15dbfac3ae5077957212a3c650
|
|
| MD5 |
644e5773ac69c84a200239f5092fc323
|
|
| BLAKE2b-256 |
8ffce00130d5607ec78d7de5fc16b3ac1cba55ce7dce0934ca96b86aeb4d0244
|
Provenance
The following attestation bundles were made for fpm-0.12.0-py3-none-win_amd64.whl:
Publisher:
wheel.yml on fortran-lang/fpm-on-wheels
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fpm-0.12.0-py3-none-win_amd64.whl -
Subject digest:
6eb682b8721992d3705f8962f4df4b53f5236d15dbfac3ae5077957212a3c650 - Sigstore transparency entry: 557443851
- Sigstore integration time:
-
Permalink:
fortran-lang/fpm-on-wheels@81132045682a0229b42c9c8718b9eb0b2bfd4c3c -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/fortran-lang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheel.yml@81132045682a0229b42c9c8718b9eb0b2bfd4c3c -
Trigger Event:
push
-
Statement type:
File details
Details for the file fpm-0.12.0-py3-none-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: fpm-0.12.0-py3-none-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.4 MB
- Tags: Python 3, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc29c450231545f25185c360b549d269a0be0cdc063637baa73a52cf0b7daaf9
|
|
| MD5 |
beda33ad2420c97b0a62bd046d008f95
|
|
| BLAKE2b-256 |
5a6f01878434a7f39c14dab1c22a2081d18506fb2195abb99bdb268e482cbfa5
|
Provenance
The following attestation bundles were made for fpm-0.12.0-py3-none-musllinux_1_2_x86_64.whl:
Publisher:
wheel.yml on fortran-lang/fpm-on-wheels
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fpm-0.12.0-py3-none-musllinux_1_2_x86_64.whl -
Subject digest:
fc29c450231545f25185c360b549d269a0be0cdc063637baa73a52cf0b7daaf9 - Sigstore transparency entry: 557443773
- Sigstore integration time:
-
Permalink:
fortran-lang/fpm-on-wheels@81132045682a0229b42c9c8718b9eb0b2bfd4c3c -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/fortran-lang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheel.yml@81132045682a0229b42c9c8718b9eb0b2bfd4c3c -
Trigger Event:
push
-
Statement type:
File details
Details for the file fpm-0.12.0-py3-none-musllinux_1_2_i686.whl.
File metadata
- Download URL: fpm-0.12.0-py3-none-musllinux_1_2_i686.whl
- Upload date:
- Size: 2.4 MB
- Tags: Python 3, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97375c01e3968072d92e81e9cfaec6640a45e32faf47b986c4bb9a510276a538
|
|
| MD5 |
8903ebe1ca48196c9c992e5b5d41e53e
|
|
| BLAKE2b-256 |
8a07943616d98e35cb825345533eb9269986763db4c92b7ff48367d724ba47e0
|
Provenance
The following attestation bundles were made for fpm-0.12.0-py3-none-musllinux_1_2_i686.whl:
Publisher:
wheel.yml on fortran-lang/fpm-on-wheels
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fpm-0.12.0-py3-none-musllinux_1_2_i686.whl -
Subject digest:
97375c01e3968072d92e81e9cfaec6640a45e32faf47b986c4bb9a510276a538 - Sigstore transparency entry: 557443801
- Sigstore integration time:
-
Permalink:
fortran-lang/fpm-on-wheels@81132045682a0229b42c9c8718b9eb0b2bfd4c3c -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/fortran-lang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheel.yml@81132045682a0229b42c9c8718b9eb0b2bfd4c3c -
Trigger Event:
push
-
Statement type:
File details
Details for the file fpm-0.12.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: fpm-0.12.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 1.9 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a88785959c4560a4f15766d5148cf90d0003b402a45d32608cf6fce41472cfd2
|
|
| MD5 |
e6a53c8ffaf76abf759423ee585dcbd0
|
|
| BLAKE2b-256 |
6f9ed9cda954f485bc4c16ad4165f8580c60dbb099ba5f17ec491e3ac15d728a
|
Provenance
The following attestation bundles were made for fpm-0.12.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:
Publisher:
wheel.yml on fortran-lang/fpm-on-wheels
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fpm-0.12.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl -
Subject digest:
a88785959c4560a4f15766d5148cf90d0003b402a45d32608cf6fce41472cfd2 - Sigstore transparency entry: 557443728
- Sigstore integration time:
-
Permalink:
fortran-lang/fpm-on-wheels@81132045682a0229b42c9c8718b9eb0b2bfd4c3c -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/fortran-lang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheel.yml@81132045682a0229b42c9c8718b9eb0b2bfd4c3c -
Trigger Event:
push
-
Statement type:
File details
Details for the file fpm-0.12.0-py3-none-manylinux2014_i686.manylinux_2_17_i686.whl.
File metadata
- Download URL: fpm-0.12.0-py3-none-manylinux2014_i686.manylinux_2_17_i686.whl
- Upload date:
- Size: 1.9 MB
- Tags: Python 3, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1185332f0e4de563379c92e57719d2ef4f6271c4a7b27aca9a029e40e11f4b5e
|
|
| MD5 |
b4d44f31d92004deaf37415c821f659f
|
|
| BLAKE2b-256 |
ab6238bd8b1b7d46762e7a64dd457c012a18011f0e6fbfe558d0858d839bd5ee
|
Provenance
The following attestation bundles were made for fpm-0.12.0-py3-none-manylinux2014_i686.manylinux_2_17_i686.whl:
Publisher:
wheel.yml on fortran-lang/fpm-on-wheels
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fpm-0.12.0-py3-none-manylinux2014_i686.manylinux_2_17_i686.whl -
Subject digest:
1185332f0e4de563379c92e57719d2ef4f6271c4a7b27aca9a029e40e11f4b5e - Sigstore transparency entry: 557443757
- Sigstore integration time:
-
Permalink:
fortran-lang/fpm-on-wheels@81132045682a0229b42c9c8718b9eb0b2bfd4c3c -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/fortran-lang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheel.yml@81132045682a0229b42c9c8718b9eb0b2bfd4c3c -
Trigger Event:
push
-
Statement type:
File details
Details for the file fpm-0.12.0-py3-none-macosx_14_0_arm64.whl.
File metadata
- Download URL: fpm-0.12.0-py3-none-macosx_14_0_arm64.whl
- Upload date:
- Size: 1.6 MB
- Tags: Python 3, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57a6ac2eb48da69966e46432334736280a0679591e29b256e51d46786b97b9b9
|
|
| MD5 |
59208c6a54ea39f7d4b610a6c156e0ec
|
|
| BLAKE2b-256 |
3adb9c9e77a1c11fc2b50d010bd338ed50401a2741876decaa0b4f630ae91c79
|
Provenance
The following attestation bundles were made for fpm-0.12.0-py3-none-macosx_14_0_arm64.whl:
Publisher:
wheel.yml on fortran-lang/fpm-on-wheels
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fpm-0.12.0-py3-none-macosx_14_0_arm64.whl -
Subject digest:
57a6ac2eb48da69966e46432334736280a0679591e29b256e51d46786b97b9b9 - Sigstore transparency entry: 557443829
- Sigstore integration time:
-
Permalink:
fortran-lang/fpm-on-wheels@81132045682a0229b42c9c8718b9eb0b2bfd4c3c -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/fortran-lang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheel.yml@81132045682a0229b42c9c8718b9eb0b2bfd4c3c -
Trigger Event:
push
-
Statement type:
File details
Details for the file fpm-0.12.0-py3-none-macosx_13_0_x86_64.whl.
File metadata
- Download URL: fpm-0.12.0-py3-none-macosx_13_0_x86_64.whl
- Upload date:
- Size: 2.3 MB
- Tags: Python 3, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
487d326d62e121dfade2ca02ba72c1285811962ba89af49d0438cf1bb0b67c33
|
|
| MD5 |
53bc5bca7e27fbf053d7d65e5cb33a46
|
|
| BLAKE2b-256 |
f7cab872b551a96b97fb401460f9080f615db793745393d895bdefc4548ecade
|
Provenance
The following attestation bundles were made for fpm-0.12.0-py3-none-macosx_13_0_x86_64.whl:
Publisher:
wheel.yml on fortran-lang/fpm-on-wheels
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fpm-0.12.0-py3-none-macosx_13_0_x86_64.whl -
Subject digest:
487d326d62e121dfade2ca02ba72c1285811962ba89af49d0438cf1bb0b67c33 - Sigstore transparency entry: 557443874
- Sigstore integration time:
-
Permalink:
fortran-lang/fpm-on-wheels@81132045682a0229b42c9c8718b9eb0b2bfd4c3c -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/fortran-lang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheel.yml@81132045682a0229b42c9c8718b9eb0b2bfd4c3c -
Trigger Event:
push
-
Statement type: