fortran-lang / Fpm
Programming Languages
Projects that are alternatives of or similar to Fpm
Fortran Package Manager
This is the repository of the Fortran Package Manager (fpm). If you are looking for fpm – packaging made simple instead, see jordansissel/fpm.
Fortran Package Manager is an early prototype. You can use it to build and package your Fortran projects, as well as to include supported Fortran dependency projects. As a prototype, changes to fpm’s behavior and inputs may occur as development continues. Please follow the issues to contribute and/or stay up to date with the development. As the prototype matures and we enter production, we will do our best to stay backwards compatible.
To report a bug report or suggest a feature, please read our contributor guidelines.
Getting started
Setting up fpm
Binary download
x86-64
binaries 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-v0.1.0-linux-x86_64
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.
Github Actions
To setup fpm within Github actions for automated testing, you can use the fortran-lang/setup-fpm action.
Bootstraping on other platforms
For other platforms and architectures have a look at the bootstrapping instructions.
Creating 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--with-executable
flag used) – a program that calls the subroutine -
test/main.f90
(if--with-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
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.
Bootstrapping instructions
This guide explains the process of building fpm on a platform for the first time. If your platform and architecture are already supported, download the binary from the release page instead.
Download this repository
$ git clone https://github.com/fortran-lang/fpm
$ cd fpm/
Build a bootstrap version of fpm
You can use the install script to bootstrap and install fpm:
$ ./install.sh
By default, the above command installs fpm
to ${HOME}/.local/bin/
.
To specify an alternative destination use the --prefix=
flag, for example:
$ ./install.sh --prefix=/usr/local
which will install fpm to /usr/local/bin
.
To test that everything is working as expected you can now build fpm with itself and run the tests with:
$ cd fpm
$ fpm test