Skip to content

news: fpm v0.12.0 release #166

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 18, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions pages/news/2025/05-18-fpm-verion-0.12.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
author: Federico Perini, Christopher Albert, Ivan Pribec, Minh Dao
date: 2025-05-18
category: release
---

# 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](https://fpm.fortran-lang.org/spec/metapackages.html) 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)

- Export `compile_commands.json` by [@perazz](https://github.com/perazz) in [#1129](https://github.com/fortran-lang/fpm/pull/1129)
- [metapackage] BLAS by [@krystophny](https://github.com/krystophny) in [#1121](https://github.com/fortran-lang/fpm/pull/1121)
- [metapackage] NetCDF by [@krystophny](https://github.com/krystophny) in [#1120](https://github.com/fortran-lang/fpm/pull/1120)
- [metapackage] stdlib: enable external BLAS/LAPACK by [@perazz](https://github.com/perazz) in [#1139](https://github.com/fortran-lang/fpm/pull/1139)
- feat: `shared` and `static` library targets by [@perazz](https://github.com/perazz) in [#1138](https://github.com/fortran-lang/fpm/pull/1138)
- Enter custom path to the config file via command line by [@minhqdao](https://github.com/minhqdao) in [#945](https://github.com/fortran-lang/fpm/pull/945)

**Full changelog**: [GitHub comparison view](https://github.com/fortran-lang/fpm/compare/v0.11.0...v0.12.0)

## New contributor

We welcome [@krystophny](https://github.com/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](https://fortran-lang.discourse.group/t/fpm-version-0-12-0-released).

Loading