Hi all,

I've sent an RFC patch [1] that introduces an initial Meson-based build
system for OpenOCD, alongside the existing Autotools setup. The Meson-
based build is not yet feature-complete compared to Autotools, but it
should be complete enough to evaluate Meson's advantages and its
suitability as a long-term replacement, especially in terms of build
speed and maintainability.

I would very much appreciate:

 - Testing on different platforms and toolchains  
 - Feedback on the Meson project structure, options, and feature
coverage  
 - Reports of any build or test regressions compared to Autotools  
 - Suggestions for missing features or improvements  

For those who are not familiar with Meson [2], here is a short
introduction for building OpenOCD. Note that you can also use the
lightweight Meson implementation muon [3].

### Basic configure and build

This builds OpenOCD out-of-tree into the `build` directory:

  meson setup build
  meson compile -C build

Afterwards, you can install OpenOCD with:

  meson install -C build

The installation prefix can be configured this way:

  meson setup build -Dprefix=/home/johndoe/openocd

### Code coverage and Clang static analyzer (scan-build)

Code coverage is integrated and can be used this way:

  meson setup build -Db_coverage=true
  meson compile -C build

To build for Clang static analyzer (scan-build), use the following
command:

  meson setup build
  ninja -C build scan-build

### Documentation

There are three targets to build the documentation: `doxygen`, `manual-
info`, and `manual-pdf`. For example, to build the Doxygen
documentation:

  meson compile -C build doxygen

Basic configuration, building (GCC and Clang), and installation have
been tested and are working on the following platforms:

 - Linux (x86_64, aarch64)
 - FreeBSD (x86_64)
 - Windows 10 (64-bit)
   - MSYS2: MSYS, MINGW64, UCRT64
   - Cygwin

Note: macOS support has not been tested yet. Feedback and test results
on this platform are very welcome!

If you get a chance to try it out, please share your results (platform,
toolchain, configuration, and any issues) on Gerrit or on the mailing
list.

Thanks!

[1] https://review.openocd.org/c/openocd/+/9541
[2] https://mesonbuild.com/
[3] https://muon.build/

Reply via email to