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.8.1.tar.gz (548.7 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.8.1-py3-none-win_amd64.whl (565.0 kB view details)

Uploaded Python 3Windows x86-64

fpm-0.8.1-py3-none-musllinux_1_1_x86_64.whl (1.3 MB view details)

Uploaded Python 3musllinux: musl 1.1+ x86-64

fpm-0.8.1-py3-none-musllinux_1_1_i686.whl (1.4 MB view details)

Uploaded Python 3musllinux: musl 1.1+ i686

fpm-0.8.1-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

fpm-0.8.1-py3-none-manylinux2014_i686.manylinux_2_17_i686.whl (1.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

fpm-0.8.1-py3-none-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

fpm-0.8.1-py3-none-macosx_10_9_x86_64.whl (1.9 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: fpm-0.8.1.tar.gz
  • Upload date:
  • Size: 548.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for fpm-0.8.1.tar.gz
Algorithm Hash digest
SHA256 02d4b3a9aa68330c78eaa8032c89ad858786f0fabad797e5162ea34ebfd9359b
MD5 0949c614f1b721408e1ea5187c469d22
BLAKE2b-256 7fc84142e86f3b4f55da918f7ff98d8846b351f1fc9e4e2deb2654a3d02f04f1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for fpm-0.8.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 98d3bf23c2ca83027d913402f9d146148a3e482ae9329c1afe49f3325b987b1b
MD5 1062d464b4ad031bc0359b25c5851668
BLAKE2b-256 f2c1850172b5e2efc601611b2748091d2e76bb549da295dc44394a6390728ab0

See more details on using hashes here.

File details

Details for the file fpm-0.8.1-py3-none-musllinux_1_1_x86_64.whl.

File metadata

  • Download URL: fpm-0.8.1-py3-none-musllinux_1_1_x86_64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3, musllinux: musl 1.1+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for fpm-0.8.1-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3e173e5571c1b92c3e7652824f21eed40807135060c863ab7375973d9a3c14a5
MD5 f41169df16970f7358dd971a75f2b573
BLAKE2b-256 a5aa60bf0706d689899a5a4f232b65c5f233f39cf45128dbfd9823c6128fcf77

See more details on using hashes here.

File details

Details for the file fpm-0.8.1-py3-none-musllinux_1_1_i686.whl.

File metadata

  • Download URL: fpm-0.8.1-py3-none-musllinux_1_1_i686.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3, musllinux: musl 1.1+ i686
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for fpm-0.8.1-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 a907a9937a8e63e83a2be9f5ba4d03adbbb3350f2085e095588d62ebdce3aba5
MD5 6b5e1d16572e80d3937d2743c8818783
BLAKE2b-256 18aa56b3de0f8c9b20897de7e229db7eacd3f1419ff43656a4be8775b41efd28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fpm-0.8.1-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b8c917b7555dff4b694cfafc8f7ca171c2b775182bdb1e82109bd1937acefc7d
MD5 22d4d9fc60bea16d78f38c407ddb2aa6
BLAKE2b-256 56e6d8a12276de43de5ded4e458c23e0ba396215b97c4dd1a5fc8a8988d99673

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fpm-0.8.1-py3-none-manylinux2014_i686.manylinux_2_17_i686.whl
Algorithm Hash digest
SHA256 05aa655574dc1396916cbdd60aa2f42240dcb26f9d88dcb8178604e5ea25646d
MD5 299ea00d3245d216e9d36496c0f7cba5
BLAKE2b-256 c8c538b2c37701080e995d08dab21b0476e546f4e78f0f78c6d75fcc03453e73

See more details on using hashes here.

File details

Details for the file fpm-0.8.1-py3-none-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fpm-0.8.1-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: Python 3, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for fpm-0.8.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 abba09452980726f154c037b4af3f98efee9e20253c772f2793e56f59f746d1a
MD5 e0dce650cbd6eb4234d915f4257b1e03
BLAKE2b-256 e40a39c5392c2a5dae59c1f1b0d6fc43315181dca0efc68700653a9bf83d2786

See more details on using hashes here.

File details

Details for the file fpm-0.8.1-py3-none-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: fpm-0.8.1-py3-none-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: Python 3, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for fpm-0.8.1-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 256b60d02b7be4b62efd4d55a90472397ae8ae48c3997de5c9293b6a1cc9811e
MD5 44cabf24e1981a094727e41b9b3c9320
BLAKE2b-256 850416a70411b890f07d60ad810dc53c6939d79e7d37013f7635fda497d53803

See more details on using hashes here.

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