| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are cases when it is useful to wrap the main meson executable with
a script that sets up environment variables, passes --cross-file, etc.
For example, in a Yocto SDK, we need to point to the right meson.cross
so that everything "just works", and we need to alter CC, CXX, etc. In
such cases, it can happen that the "meson" found in the path is actually
a wrapper script that invokes the real meson, which may be in another
location (e.g. "meson.real" or similar).
Currently, in such a situation, meson gets confused because it tries to
invoke itself using the "meson" executable (which points to the wrapper
script) instead of the actual meson (which may be called "meson.real" or
similar). In fact, the wrapper script is not necessarily even Python, so
the whole thing fails.
Fix this by using Python imports to directly find mesonmain.py instead
of trying to detect it heuristically. In addition to fixing the wrapper
issue, this should make the detection logic much more robust.
|
| |
|
| |
|
|\
| |
| | |
--warnlevel got renamed to --warning-level
|
| | |
|
| | |
|
|/
|
|
|
|
| |
Outputs two profile logs: one for the interpreter run and another for
the backend-specific build file generation. Both are stored in
meson-private in the build directory.
|
|
|
|
|
|
| |
We're going to want to use these functions in meson configure as well to
make the command line options the same between `meson` and `meson
configure`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently meson only accepts `-Dopt=value` for builtin options when
calling `meson configure` and `--opt=value` for builtin options when
calling `meson` initially. This is a confusing behavior, and users only
get a small warning at the top of a potentially long configuration
summary to catch this.
This has confused end users and developers alike, there are at least 5
duplicates of the bug this fixes, and I have personally been asked about
this more times than I can count. The help documentation doesn't make
it clear that -D cannot be used to set options like prefix and bindir.
This adds support for -D options to the initial meson call, but not --
options to the meson configure call. I think it's better to have one way
to do things, and -- options are kinda one off while -D is used
everywhere else, so lets stick with that.
Related #969
|
|
|
|
|
|
| |
We have all the information needed to calculate the builtin arguments in
the coredata module already, don't duplicate that in the mesonmain
module as well.
|
|
|
|
|
| |
This means that there are no special args passed ot builtin args
anymore.
|
|
|
|
|
|
|
| |
Currently we manually pass the argparse action, this isn't very DRY,
since the builtin_types already has all the data necessary to find that.
This adds a new function to determine the action based on the default
type.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Try to be more consistent on using save() and load() methods to pickle
data.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR #2527 suggests "making failing tests more strict about failing
gracefully".
To achive this, make meson exit with distinct exit statuses for meson errors
and python exceptions, and check the exit status is as expected for failing
tests.
I can't see how to write a test for this, within the current framework.
You can test this change by reverting the fix (but not the test) from commit
1a159db8 and verifying that 'test cases/failing/66 string as link target'
fails.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since c2a5ac39, MesonApp.generate() closes the logfile before returning,
which means that when invoked by mesonmain.run(), any MesonException is not
logged there.
MesonApp.generate() does not appear to have any other users I can find.
This somewhat reduces the diagnostic value of the logfile.
This also interacts badly with running project tests in CI, as _run_tests
chooses to report the logfile contents, rather than stdout, for the
configure step, and it thus doesn't report any configure error which caused
a test failure.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Examples:
meson.build:2:0: ERROR: Dependency is both required and not-found
meson.build:4: WARNING: Keyword argument "link_with" defined multiple times.
These are already matched by the default compilation-error-regexp-alist in
emacs.
Also:
Don't start 'red' markup until after the \n before an error
Unabsorb full-stop at end of warning with location from mlog.warning()
Update warning_location test
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This fixes the REGEN build target since VSINSTALLDIR does not get set by
Visual Studio when building targets.
Fixes #2848.
|
|
|
|
| |
This ternary checks the value of a bool, and returns the same value.
|
|
|
|
|
|
|
|
| |
Currently passing a bad combo or array option, providing a non-boolean
to a bool arg, or a host of other things can cause an traceback from a
MesonException, don't do that.
Fixes #2683
|
| |
|
| |
|
| |
|
|\
| |
| | |
Make sysconfdir, localstatedir and sharedstatedir defaults depend on prefix
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Rather than requiring a bit of boilerplate in every meson.build, which is
only documented in a comment in mesoncore.py, use sensible defaults for
sysconfdir, localstatedir and sharedstatedir depending on the prefix.
Fixes #1637
v2:
For clarity, give get_builtin_option_default() a noneIfSuppress argument,
rather than overloading prefix '' and None with special meanings.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Taking mconf for instance:
before:
$ meson configure --help
usage: meson [-h] [-D SETS] [--clearcache] [directory [directory ...]]
after:
$ meson configure --help
usage: meson configure [-h] [-D SETS] [--clearcache] [directory [directory ...]]
|
|/
|
|
|
|
|
|
|
| |
Unfortunately, `time.time` and file timestamps are not guaranteed to be
in sync and due to various kernel caches may be different enough to
cause rebuilds to fail [1]. This was masked by older ninja versions that
could not read sub-second timestamps.
[1] https://travis-ci.org/mesonbuild/meson/jobs/296797872
|
|
|
|
|
| |
This only touches newlines, spaces, and (occaisionally) commas. Anything
else is left for another commit.
|
|
|
|
|
|
| |
Similar to configure
Closes https://github.com/mesonbuild/meson/issues/2316
|
| |
|
|
|
|
|
|
| |
Now it errors out while displaying the possible options
See: https://bugs.python.org/issue25061 for native support
|
|\
| |
| | |
Don't error if build directory is already configured and update instructions
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
|
|
|
|
|
|
| |
MESONINTROSPECT is set when running postconf scripts, which implies that
introspection is possible. But it isn't really possible because coredata
hasn't been written yet. We also still need to make sure to delete
coredata if any postconf scripts fail.
|
|
|
|
|
|
|
| |
This is really useful when debugging test failures. Without a stack
trace, you have to grep the source code for the error message.
Also set this in run_tests.py.
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
i18n: Improve data_dirs support
|