All Projects → fortran-lang → Fpm

fortran-lang / Fpm

Licence: mit
Fortran Package Manager (fpm)

Programming Languages

fortran
972 projects

Projects that are alternatives of or similar to Fpm

sw
Software Manager. Build System, Build System Generator and Package Manager. C/C++ and other languages. Tools and libraries for Software Management.
Stars: ✭ 93 (-49.46%)
Mutual labels:  package-manager, build-system
Dds
A C++ tool for a new decade
Stars: ✭ 194 (+5.43%)
Mutual labels:  build-system, package-manager
Bake
A build system that lets you clone, build and run C/C++ projects with a single command
Stars: ✭ 434 (+135.87%)
Mutual labels:  build-system, package-manager
Build-Scripts
Collection of build scripts useful when testing on downlevel, abandonware and ransomware clients
Stars: ✭ 61 (-66.85%)
Mutual labels:  package-manager, build-system
bramble
Purely functional build system and package manager
Stars: ✭ 173 (-5.98%)
Mutual labels:  package-manager, build-system
cppan
Project evolved into Software Network: https://github.com/SoftwareNetwork/sw
Stars: ✭ 108 (-41.3%)
Mutual labels:  package-manager, build-system
Erlang.mk
A build tool for Erlang that just works.
Stars: ✭ 538 (+192.39%)
Mutual labels:  build-system, package-manager
Bear
Bear is a tool that generates a compilation database for clang tooling.
Stars: ✭ 2,345 (+1174.46%)
Mutual labels:  build-system
Bolt
⚡️ Super-powered JavaScript project management
Stars: ✭ 2,134 (+1059.78%)
Mutual labels:  package-manager
Sampctl
The Swiss Army Knife of SA:MP - vital tools for any server owner or library maintainer.
Stars: ✭ 149 (-19.02%)
Mutual labels:  package-manager
Mingw Builds
Scripts for building the dual-target(32 & 64 bit) MinGW-W64 compilers for 32 and 64 bit Windows
Stars: ✭ 145 (-21.2%)
Mutual labels:  build-system
Fdroidserver
F-Droid server and build tools.
Stars: ✭ 156 (-15.22%)
Mutual labels:  package-manager
Lit
Toolkit for developing, sharing, and running luvit/lua programs and libraries.
Stars: ✭ 167 (-9.24%)
Mutual labels:  package-manager
Tbify
使用淘宝镜像运行命令: tbify [nvm|npm|npx|yarn|pnpm|...]
Stars: ✭ 153 (-16.85%)
Mutual labels:  package-manager
Luarocks
LuaRocks is the package manager for the Lua programming language.
Stars: ✭ 2,324 (+1163.04%)
Mutual labels:  package-manager
Ansible Aur
Ansible module to manage packages from the AUR
Stars: ✭ 149 (-19.02%)
Mutual labels:  package-manager
Docker
Composer in Docker
Stars: ✭ 180 (-2.17%)
Mutual labels:  package-manager
Elba
A package manager for Idris
Stars: ✭ 173 (-5.98%)
Mutual labels:  package-manager
Zef
Raku / Perl6 Module Management
Stars: ✭ 166 (-9.78%)
Mutual labels:  package-manager
Pearl
Pearl is a lightweight package manager for automating reproducible environments between different systems (Linux and OSX). It can be used for dotfiles, plugins, programs and any form of code accessible via git.
Stars: ✭ 166 (-9.78%)
Mutual labels:  package-manager

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].