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.12.0.tar.gz (817.1 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.12.0-py3-none-win_amd64.whl (864.6 kB view details)

Uploaded Python 3Windows x86-64

fpm-0.12.0-py3-none-musllinux_1_2_x86_64.whl (2.4 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

fpm-0.12.0-py3-none-musllinux_1_2_i686.whl (2.4 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

fpm-0.12.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

fpm-0.12.0-py3-none-manylinux2014_i686.manylinux_2_17_i686.whl (1.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

fpm-0.12.0-py3-none-macosx_14_0_arm64.whl (1.6 MB view details)

Uploaded Python 3macOS 14.0+ ARM64

fpm-0.12.0-py3-none-macosx_13_0_x86_64.whl (2.3 MB view details)

Uploaded Python 3macOS 13.0+ x86-64

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

Hashes for fpm-0.12.0.tar.gz
Algorithm Hash digest
SHA256 9349372a649e8cb880618b6bdde35275a8b76e508165b17b9bccc5fa2fe53256
MD5 b6f465be061d1aa7b28225867fe58253
BLAKE2b-256 130f3460707d2ab8e86b7001ac837913b9334d9b55260557d34373e26377b011

See more details on using hashes here.

Provenance

The following attestation bundles were made for fpm-0.12.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.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

Hashes for fpm-0.12.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 6eb682b8721992d3705f8962f4df4b53f5236d15dbfac3ae5077957212a3c650
MD5 644e5773ac69c84a200239f5092fc323
BLAKE2b-256 8ffce00130d5607ec78d7de5fc16b3ac1cba55ce7dce0934ca96b86aeb4d0244

See more details on using hashes here.

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

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

Hashes for fpm-0.12.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fc29c450231545f25185c360b549d269a0be0cdc063637baa73a52cf0b7daaf9
MD5 beda33ad2420c97b0a62bd046d008f95
BLAKE2b-256 5a6f01878434a7f39c14dab1c22a2081d18506fb2195abb99bdb268e482cbfa5

See more details on using hashes here.

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

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

Hashes for fpm-0.12.0-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 97375c01e3968072d92e81e9cfaec6640a45e32faf47b986c4bb9a510276a538
MD5 8903ebe1ca48196c9c992e5b5d41e53e
BLAKE2b-256 8a07943616d98e35cb825345533eb9269986763db4c92b7ff48367d724ba47e0

See more details on using hashes here.

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

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.12.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for fpm-0.12.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a88785959c4560a4f15766d5148cf90d0003b402a45d32608cf6fce41472cfd2
MD5 e6a53c8ffaf76abf759423ee585dcbd0
BLAKE2b-256 6f9ed9cda954f485bc4c16ad4165f8580c60dbb099ba5f17ec491e3ac15d728a

See more details on using hashes here.

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

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.12.0-py3-none-manylinux2014_i686.manylinux_2_17_i686.whl.

File metadata

File hashes

Hashes for fpm-0.12.0-py3-none-manylinux2014_i686.manylinux_2_17_i686.whl
Algorithm Hash digest
SHA256 1185332f0e4de563379c92e57719d2ef4f6271c4a7b27aca9a029e40e11f4b5e
MD5 b4d44f31d92004deaf37415c821f659f
BLAKE2b-256 ab6238bd8b1b7d46762e7a64dd457c012a18011f0e6fbfe558d0858d839bd5ee

See more details on using hashes here.

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

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

Hashes for fpm-0.12.0-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 57a6ac2eb48da69966e46432334736280a0679591e29b256e51d46786b97b9b9
MD5 59208c6a54ea39f7d4b610a6c156e0ec
BLAKE2b-256 3adb9c9e77a1c11fc2b50d010bd338ed50401a2741876decaa0b4f630ae91c79

See more details on using hashes here.

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

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

Hashes for fpm-0.12.0-py3-none-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 487d326d62e121dfade2ca02ba72c1285811962ba89af49d0438cf1bb0b67c33
MD5 53bc5bca7e27fbf053d7d65e5cb33a46
BLAKE2b-256 f7cab872b551a96b97fb401460f9080f615db793745393d895bdefc4548ecade

See more details on using hashes here.

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

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