Hi,

The attached tarball is a port for https://fpm.fortran-lang.org/ (code source 
at 
https://github.com/fortran-lang/fpm/).

>From pkg/DESCR:

        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.

It is written in (modern-)fortran and use itself for building. Upstream 
provides 
a plain one-file fortran version for bootstrapping it.

It uses two external dependencies which I vendored in the port (tarballs are 
downloaded as part of the port), and I patched fpm.toml file to use them 
instead 
of getting them with git(1).

The build is done in 3 stages:
 - the bootstrap is built
 - fpm (with patches) is built using the bootstrap
 - fpm (with patches) is built using fpm (with patches)

The third step is necessary as fpm adds compilation flags on the build, and the 
patches modifies them. As it build relatively quickly, I don't think it is a 
problem (less than 2 minutes for all the steps).

The default profile used is 'egfortran', so it could works out-of-box with g95 
installed (instead of using 'gfortran' which doesn't exist in OpenBSD ports).

I didn't added RUN_DEPENDS on g95 as it could work with several fortran 
compilers and I don't want to stick to one specifically.

Comments or OK to import ?
-- 
Sebastien Marie

Attachment: fpm.tgz
Description: application/tar-gz

Reply via email to