-
Notifications
You must be signed in to change notification settings - Fork 232
meson build: simplify build script, increase usability #71
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
base: main
Are you sure you want to change the base?
Conversation
Still a WIP, submitted for early feedback. I believe that meson should handle the dependencies for the cross use case, but have not yet tested. Somewhere in there I found that Qt6 was being pulled in for This should build on native Linux (enable Qt or disable ruledit for now), further testing to come. Summary output should look something like this, which I hope will make determining build configuration a lot more straightforward than parsing the string given to meson:
A bit of churn, unfortunately, as I've also run a code formatter over the build files. Please let me know if you're interested in this work (or parts of it) and I can work on that, though the deps summary is really enabled (at least without much boilerplate) by having deps be a dependency or 'not found'. |
This will produce a summary of the build environment, enabled features, and identified dependencies (with version where possible). To enable this work, many dependencies have been rewritten to directly use the `foo_dep = dependency('foo', required: false)` syntax, enabling us to take advantage of the 'not found' behaviour for many current conditionals (see features below), significantly reducing boilerplate requred. Meson cross build files should still enable resolution of libraries in the cross build environment. Targets of opportunity (combo with 'try', 'true', 'false', deps with conditional logic) have been converted to the meson `feature` option type, which has several advantages (including helpers) and reduces boilerplate. Features that are `disabled` are treated as 'not found' for the purposes of dependency resolution.
64966c9
to
6224044
Compare
Looks promising.
Sometime in the past we went the other direction; dependency() -> compiler.find_xxx() for supporting crosser based builds via cross properties. That's not to say that the situation is necessary still the same (it's quite likely that we now could construct working cross file some other way) |
Agree, I can split some things (e.g. meson |
RM #1303
This will produce a summary of the build environment,
enabled features, and identified dependencies (with version where
possible).
To enable this work, many dependencies have been rewritten to directly
use the
foo_dep = dependency('foo', required: false)
syntax, enablingus to take advantage of the 'not found' behaviour for many current
conditionals (see features below), significantly reducing boilerplate
requred. Meson cross build files should still enable resolution of
libraries in the cross build environment.
Targets of opportunity (combo with 'try', 'true', 'false', deps with
conditional logic) have been converted to the meson
feature
optiontype, which has several advantages (including helpers) and reduces boilerplate.
Features that are
disabled
are treated as 'not found' for the purposesof dependency resolution.