Skip to main content

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-data
  • README.md – with your project’s name
  • .gitignore
  • src/project_name.f90 – with a simple hello world subroutine
  • app/main.f90 (if --app flag used) – a program that calls the subroutine
  • test/main.f90 (if --test flag used) – an empty test program

Building your Fortran project with fpm

fpm understands the basic commands:

  • fpm build – build your library, executables and tests
  • fpm run – run executables
  • fpm test – run tests
  • fpm 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fpm-0.11.0.tar.gz (734.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

fpm-0.11.0-py3-none-win_amd64.whl (786.2 kB view details)

Uploaded Python 3Windows x86-64

fpm-0.11.0-py3-none-musllinux_1_2_x86_64.whl (2.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

fpm-0.11.0-py3-none-musllinux_1_2_i686.whl (2.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

fpm-0.11.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

fpm-0.11.0-py3-none-manylinux2014_i686.manylinux_2_17_i686.whl (1.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

fpm-0.11.0-py3-none-macosx_14_0_arm64.whl (1.5 MB view details)

Uploaded Python 3macOS 14.0+ ARM64

fpm-0.11.0-py3-none-macosx_13_0_x86_64.whl (2.2 MB view details)

Uploaded Python 3macOS 13.0+ x86-64

File details

Details for the file fpm-0.11.0.tar.gz.

File metadata

  • Download URL: fpm-0.11.0.tar.gz
  • Upload date:
  • Size: 734.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fpm-0.11.0.tar.gz
Algorithm Hash digest
SHA256 54d0624f3725230d8c6b18b5b8c64110b8b320c89555dea5a2eca525386e5a42
MD5 908db7798ee31ea49f9e938748f58fa1
BLAKE2b-256 a955504883a1b3de26e0e27f8d5cde3505adbd5c16324c91a3c40eb732f104f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for fpm-0.11.0.tar.gz:

Publisher: wheel.yml on fortran-lang/fpm-on-wheels

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fpm-0.11.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: fpm-0.11.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 786.2 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fpm-0.11.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 99c0f602f82c162e1a0fbc7588861093dc74785bc9e1e35116416f4244d65bf3
MD5 7cd15fe0ddd56ea8da29e03ba8794ae0
BLAKE2b-256 e8e1fc0c9bdb88d20161bff6e2e1e834a81e8c65739b6bff0d16505603701895

See more details on using hashes here.

Provenance

The following attestation bundles were made for fpm-0.11.0-py3-none-win_amd64.whl:

Publisher: wheel.yml on fortran-lang/fpm-on-wheels

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fpm-0.11.0-py3-none-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: fpm-0.11.0-py3-none-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 2.3 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

Hashes for fpm-0.11.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 21cf686cfe353b003e33d210ba1f197800ce7c75aa68136fa90d7fa45f49c847
MD5 7a48bab5d6332f295d622e11df7b7472
BLAKE2b-256 efde9ed354214eb61c6bebd747a1bdb82e56f73f0395d3d48069d6702b2194e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for fpm-0.11.0-py3-none-musllinux_1_2_x86_64.whl:

Publisher: wheel.yml on fortran-lang/fpm-on-wheels

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fpm-0.11.0-py3-none-musllinux_1_2_i686.whl.

File metadata

  • Download URL: fpm-0.11.0-py3-none-musllinux_1_2_i686.whl
  • Upload date:
  • Size: 2.3 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

Hashes for fpm-0.11.0-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 4fda016baa9aa9def1d2fefd689c0c7253ab166f37b856c4ae2b11dd0928f2c3
MD5 8b43be58df44870449b647a805609f69
BLAKE2b-256 cc9bd526972a3f605d0cb3dbdf3ea9aa81125cb1e36345b6fcddeb682689ae0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for fpm-0.11.0-py3-none-musllinux_1_2_i686.whl:

Publisher: wheel.yml on fortran-lang/fpm-on-wheels

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fpm-0.11.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for fpm-0.11.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 c8ee6ab3ae9514f5380af050fe2d542b192ea5e1cb5625caa0a7cde5c84719f8
MD5 a6a18e08a132f80b5fc0e08067b958bc
BLAKE2b-256 b964b8f1d1d55f223466069d82fa187525f63b7da14ffc13fbdd20b45b1b8cd5

See more details on using hashes here.

Provenance

The following attestation bundles were made for fpm-0.11.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: wheel.yml on fortran-lang/fpm-on-wheels

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fpm-0.11.0-py3-none-manylinux2014_i686.manylinux_2_17_i686.whl.

File metadata

File hashes

Hashes for fpm-0.11.0-py3-none-manylinux2014_i686.manylinux_2_17_i686.whl
Algorithm Hash digest
SHA256 43583ee85e39f284193bbceaf86a37605279a0558082dc55e6fabb74d7701440
MD5 5d693c2e05329d9aca6c1b33416d9360
BLAKE2b-256 c3c94c961cd4cc279f246346117aba463459c33f47f95d01edf46787f9bbbdc9

See more details on using hashes here.

Provenance

The following attestation bundles were made for fpm-0.11.0-py3-none-manylinux2014_i686.manylinux_2_17_i686.whl:

Publisher: wheel.yml on fortran-lang/fpm-on-wheels

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fpm-0.11.0-py3-none-macosx_14_0_arm64.whl.

File metadata

  • Download URL: fpm-0.11.0-py3-none-macosx_14_0_arm64.whl
  • Upload date:
  • Size: 1.5 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

Hashes for fpm-0.11.0-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 800fe4d0c1deb4fd602eb9c1401bc2fb4c41bb31d0e7e7f4c378ac57e9c5197d
MD5 c20a2b25b090ca648bacb2a81c58ca29
BLAKE2b-256 90fb11ed6c6ac9f530745cb5ba24286dbe6685518cd3f637ad81de12da1da678

See more details on using hashes here.

Provenance

The following attestation bundles were made for fpm-0.11.0-py3-none-macosx_14_0_arm64.whl:

Publisher: wheel.yml on fortran-lang/fpm-on-wheels

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fpm-0.11.0-py3-none-macosx_13_0_x86_64.whl.

File metadata

  • Download URL: fpm-0.11.0-py3-none-macosx_13_0_x86_64.whl
  • Upload date:
  • Size: 2.2 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

Hashes for fpm-0.11.0-py3-none-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 99c5cce3f92b9268e9f3bf11ed85a7b6481be25a2a6d7eebfe30eafdd5a0d5bd
MD5 1aa9f5b43bcefa55698a07ea4063fa38
BLAKE2b-256 3d1298f853cc7f3333d998b2db48060ace89873577e929d404dbb85f58f00273

See more details on using hashes here.

Provenance

The following attestation bundles were made for fpm-0.11.0-py3-none-macosx_13_0_x86_64.whl:

Publisher: wheel.yml on fortran-lang/fpm-on-wheels

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page