Add Meson build system as alternative to CMake #10
+473
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This pull request introduces Meson as an alternative build system for IMAS-Core, complementing the existing CMake build system. This addition provides developers with a modern, fast, and user-friendly build option while maintaining full backward compatibility with the current CMake workflow.
Motivation
Key Features
🔧 Complete Build System Implementation
al-corewith all backends (HDF5, UDA, MDSplus)imas-corePython package📦 Backend Support
🐍 Python Integration
setuptools-scmFiles Added/Modified
New Meson Files
meson.build- Main build configurationmeson_options.txt- Build options and feature togglessrc/meson.build- Core library build configurationinclude/meson.build- Public Header installation configurationpython/meson.build- Python bindings build configurationBuild Options
Compatibility
Testing
imas-coreDevelopment Environment
We used
pixito manage the development environment for testing the Meson build system.The
pixi.tomlfile has been updated to include Meson and Ninja as build tools, ensuring a consistent and reproducible environment for developers.Here is the configuration I used:
pixi.toml
mesoncommand can be used throughpixi run meson ....Note: This is a non-breaking change that purely adds functionality. All existing CMake-based workflows continue to work unchanged.