Commit 6502a67 (merge of PR #764) accidentally downgraded the
`extension_memory` option from `type: 'feature'` to `type: 'boolean'`
during conflict resolution. The PR itself just removed quotes around
boolean values (the Meson 1.1 deprecation fix), but its branch was
based on an older master where extension_memory was still boolean;
the merge resolution chose that stale version over master's `feature`.
meson.build still calls `build_memory.enabled()` and `.auto()`, which
are feature-option methods; on a boolean option they raise:
ERROR: Unknown method "enabled" in object
<[BooleanHolder] holds [bool]: False> of type BooleanHolder.
Restore the `type: 'feature', value: 'auto'` declaration that existed
on master before the merge. No change needed in meson.build; its usage
of enabled() + auto() is correct for a feature option.
Verified:
- `meson setup` now succeeds (pre-fix: failed with the error above)
- `meson configure -Dextension_memory=enabled` applies cleanly
- `ninja -C build` builds libunity.a including the memory extension
1. Call the version extraction script directly instead
of through a Python returned from `find_program()`.
2. We don't need to use `meson.project_source_root()` as
`find_program()` will search relative to the current meson.build
script.
3. Lower the required version back to `>= 0.37.0`, and modify
some things to get rid of warnings with this version selected.
The use of `summary()`, `dict`, and positional arguments in
`pkgconfig.generate()` generate warnings with this version so
remove `summary()` and dict()`, also pass keyword arguments to
`pkgconfig.generate()`.
The following features from the CMake build have been implemented:
* Library version retrieved from unity.h.
* Extension support.
* Library, header, and package configuration file installation.
This commit is entirely based on existing work by Owen Torres.