Skip to content

feat: build with meson by default - #309

Merged
jdhughes-dev merged 2 commits into
developfrom
meson-default
Aug 11, 2026
Merged

feat: build with meson by default#309
jdhughes-dev merged 2 commits into
developfrom
meson-default

Conversation

@jdhughes-dev

Copy link
Copy Markdown
Collaborator

Meson now builds every target on every platform and with every compiler that is tested, using the build file a target provides where there is one and a generated build file otherwise, so it is the default.

This changes how every target is built, so it is worth being clear about what changes.

The argument becomes --meson and --no-meson, because a build with the pymake build engine can no longer be asked for by leaving meson off. pm.meson defaults to True and can be set to False.

A meson build is always in place, and a build that is not was not, so the source of a downloaded target is no longer copied to a temporary directory before it is built by default. A target that provides a meson build file is now built with the flags that build file sets rather than the flags pymake determines, so an executable will not be identical to one built before this change.

test_build asks for the pymake build engine, which it used to get by default. Without that the pymake build engine would no longer be built or tested by anything, since test_meson_build already asks for meson.

The exclusions that kept meson from building some targets are all gone, having been a module statement meson could not read for sutra, a Windows path separator for mt3dms, vs2dt and gridgen, and the link language for mf2000, mf2005, swtv4 and mflgr.

@codecov

codecov Bot commented Aug 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 79.710%. Comparing base (44d0a28) to head (4b99601).
⚠️ Report is 1 commits behind head on develop.

Additional details and impacted files
@@            Coverage Diff            @@
##           develop      #309   +/-   ##
=========================================
  Coverage   79.710%   79.710%           
=========================================
  Files           20        20           
  Lines         3588      3588           
=========================================
  Hits          2860      2860           
  Misses         728       728           
Files with missing lines Coverage Δ
pymake/pymake_parser.py 35.483% <ø> (ø)

... and 2 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Meson now builds every target on every platform and with every compiler
that is tested, using the build file a target provides where there is one
and a generated build file otherwise, so it is the default.

The argument becomes --meson and --no-meson, since a build can no longer
be asked for by turning meson on. A meson build is always in place, which
a build that is not was not, so the source of a downloaded target is no
longer copied before it is built by default.

test_build asks for the pymake build engine, which it used to get by
default, so that it is still built and tested.
@jdhughes-dev
jdhughes-dev merged commit 22c6533 into develop Aug 11, 2026
15 checks passed
@jdhughes-dev
jdhughes-dev deleted the meson-default branch August 11, 2026 11:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant