Fpm version 0.12.0 released¶

The Fortran Package Manager (FPM) v0.12.0 introduces new powerful features aimed at improving interoperability, build system integration, and modular project design. The release includes continued refactoring and maintenance efforts, enhanced compiler support, and new tooling capabilities.

Highlights¶

🔧 Build system integration via compile_commands.json¶

Projects built with fpm can now export a compile_commands.json file compatible with editors and tools like clangd, VS Code, or CMake Tools. This feature enables powerful code navigation, symbol indexing, and auto-completion across large Fortran codebases.

📦 New metapackages: BLAS/LAPACK and NetCDF¶

Two new metapackages simplify integration with widely used scientific libraries:

  • BLAS/LAPACK support allows linking to external high-performance libraries either when using stdlib.

  • NetCDF support with a pkg-config backend.

🧩 Static and shared library targets¶

Library targets now support both static and shared output types using the [library] type = "shared" or "static" settings. This enables use cases such as plugin architectures, dynamic linking with external applications, or bundling all dependencies into a monolithic archive.

Futher fixes and improvements¶

  • Windows bootstrapping and Flang OpenMP syntax fixes.

  • Optional user-defined flags for compiler introspection.

  • --config flag to specify alternate configuration files.

  • Expanded metapackage support: Intel MPI, SLURM srun, external BLAS for stdlib.

  • Continuous improvements to modular structure and CLI argument handling.

Changelog (selected)¶

Full changelog: GitHub comparison view

New contributor¶

We welcome @krystophny, who contributed major refactoring and introduced the NetCDF and BLAS metapackages.

Feedback and discussion¶

Join the conversation and share your feedback on the Fortran Discourse thread.