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.10.1.tar.gz (713.9 kB view details)

Uploaded Source

Built Distributions

fpm-0.10.1-py3-none-win_amd64.whl (730.8 kB view details)

Uploaded Python 3 Windows x86-64

fpm-0.10.1-py3-none-musllinux_1_1_x86_64.whl (1.5 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

fpm-0.10.1-py3-none-musllinux_1_1_i686.whl (1.6 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ i686

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

Uploaded Python 3 manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3 manylinux: glibc 2.17+ i686

fpm-0.10.1-py3-none-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded Python 3 macOS 11.0+ ARM64

fpm-0.10.1-py3-none-macosx_10_9_x86_64.whl (2.1 MB view details)

Uploaded Python 3 macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: fpm-0.10.1.tar.gz
  • Upload date:
  • Size: 713.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for fpm-0.10.1.tar.gz
Algorithm Hash digest
SHA256 4fa5ad89e7fdaaa19dcc36fe75ee56948774d081dddf8719a762ba6c6a3b5d8f
MD5 a489dfa102d2180a810e565a62190a03
BLAKE2b-256 b273867675eebbcc726e9d11ffdd938cf05edfd4969c834629442647344f7af5

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for fpm-0.10.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 59900bb7055442f01788434a079b27f661a7ff10fede3930adb012f2e8e782aa
MD5 ceaf26b849b180664ebd1194f7b333f3
BLAKE2b-256 b8b4c5578946caac0efff9d532bbfc85fad934004242dc43f54764e5e8e03a8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fpm-0.10.1-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 663fc87edf7fe9962aeef00adc4b5190a49a3ed75d5fc1c38609d90a3ca229ca
MD5 537022539a0a1bda90c2f7e9c9861bb0
BLAKE2b-256 807c18e26002dfc97c56dc2b18d8fc470b18fdbba91c51fc072aff14e41cf2a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fpm-0.10.1-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 9cc526a25636c456b0ac741a43f8d62fe535d24893bc940c44f246ab5be07cd6
MD5 1922345276e6e58afdd56287b46bd53c
BLAKE2b-256 4fe70fc08ebeccf081a405f3392ee6c48668d547718b0c5e052e4971ee99de82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fpm-0.10.1-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 fab6ce71667c101672bf13b18e6b6a7eef39c9c8f724f8995ad751611d2cd7ac
MD5 c57710a0ca44069ff3d17880a0b522c1
BLAKE2b-256 85cc88872b10318a3b41e6a303469af6e0b40b49de79b36537ab4cf365e95083

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fpm-0.10.1-py3-none-manylinux2014_i686.manylinux_2_17_i686.whl
Algorithm Hash digest
SHA256 bc558f7140d55b861a57269fdf347fed521a8fbfa3613ae57b591d72420e5b2a
MD5 c98a77a7cea8f2155f7f655b07c4285a
BLAKE2b-256 6eef5faa7b108df275767b3cc12747fec234eacaa33a58203686130b8ad0335f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fpm-0.10.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b603819dc0a66f757df3fecdbfc1af9bff690499b731be611e14d22320ea508a
MD5 aa2012dccdee16f210f9816bcc92eb8e
BLAKE2b-256 7141a4876bc96221c6859d224df5145f88474b0a5866501f621ce47507535fc2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fpm-0.10.1-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 34c9241baa66d0c1de581288368f5de358dc7525bd19347d6348071a31fad82f
MD5 bfe6fbe3ab8efda7f200184541cb4d70
BLAKE2b-256 ecf965cfd1ec9765f49d5d48aa7f5822db005b03ea073c429eae55bbc6603813

See more details on using hashes here.

Supported by

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