Age | Commit message (Collapse) | Author | Files | Lines |
|
This adds an experimental meson module to build projects with other
build systems.
Closes: #4316
|
|
|
|
I wrote this to convert run_tests.get_backend_commands() over to the
new meson wrappers, but that turned out to be harder than I expected,
so just splitting this out for now.
|
|
|
|
- Implicit include dirs was checked twice in a row
- Add define only if it does not yet exist rather than remove.
|
|
- "Go To Document" action previously only worked
on c/cpp files which had the include directories
set but it was not possible to move from header to another header.
|
|
|
|
On my machine this spawns 24 processes and then runs like the single
test I asked it to run. With this change, running a single test goes
from 7 seconds to less than a second.
|
|
When cross-compiling, also report build machine compilers in the
compiler report produced by run_project_tests.py
|
|
Add a cross-file for MSVC UWP ARM64.
Bump cidata tag to get an updated install.ps1 script (run by run.ps1)
which sets the vcvars environment correctly when cross-compiling.
Since arranging the correct environment for simultaneous cross and
native 'cl' use is hard, this is test run uses '--cross-only' so we
don't require a native compiler.
Extend '--cross-only' so it also explicitly uses a machine file which
makes all build machine compilers unusable.
|
|
|
|
|
|
Store the first line of VisualStudio compiler output as full_version,
so it gets output when we report compiler details.
|
|
This reverts commit 8ee1c9a07a3a35e3ed262fbc358fd86c257a966e.
No rationale was given for this change prior to merging. After the fact
it was described as desired by distro packagers, however as a distro
packager I believe this commit hurts me.
From a distro packaging perspective, we primarily care about one thing:
previously building code should still build. Hence, -Werror is bad for
our use case. meson handles this via -D werror which is different from
-D warning_level and as long as the former is disabled, warnings in the
build do not cause harm (but may attract review attention for upstream
to fix).
buildtype is a completely unrelated concern, and the intention for
=plain is to disable debug or optimization settings that result in
codegen differences and thus different built artifacts. This must not
happen in distro builds because the *distributed programs* should
conform to policy settings.
Unfortunately, completely disabling warnings happens silently, and
cannot be overridden even if you really, really believe you know what
you're doing. It is thematically broken, since use of
add_project_arguments() to add more -W flags is not likewise ignored.
But if you try to add -Wall in that manner, meson will lecture you to
use warning_level which you cannot do. And if you have custom warning
flags which depend on options enabled by judicious use of -Wall via
default_options: 'warning_level=1', then you end up with generated
warnings complaining about your command line rather than your code, such
as:
cc1: warning: ‘-Wformat-y2k’ ignored without ‘-Wformat’ [-Wformat-y2k]
cc1: warning: ‘-Wformat-extra-args’ ignored without ‘-Wformat’ [-Wformat-extra-args]
cc1: warning: ‘-Wformat-zero-length’ ignored without ‘-Wformat’ [-Wformat-zero-length]
cc1: warning: ‘-Wformat-contains-nul’ ignored without ‘-Wformat’ [-Wformat-contains-nul]
cc1: warning: ‘-Wformat-security’ ignored without ‘-Wformat’ [-Wformat-security]
which then break the build with -Werror.
Throughout all this, a buildtype of "plain" does *not* disable -D
werror=true, which is the part where distro builds actually break down!
Users who both wish to disable debug/optimization codegen, *and* disable
warning commentary, are encouraged to do so by doing both, not by doing
one and having the other be assumed.
Fixes #7399
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Besides refactoring code into smaller functions:
- Makes the --rebase behaviour the default for consistency: it was
already rebasing when current branch and revision are the same, it is
less confusing to rebase when they are different too.
- Add --reset mode that checkout the new branch and hard reset that
branch to remote commit. This new mode guarantees that every
subproject are exactly at the wrap's revision.
- Local changes are always stashed first to avoid any data loss. In the
worst case scenario the user can always check reflog and stash list to
rollback.
Fixes: #7526
|
|
If the command fails on some subprojects continue with the rest but
return non-0 code. This is useful for CI scripts to ensure it tests
latest code instead of old cached code in case of network error or
something.
|
|
|
|
User could have cloned manually a subproject.
|
|
It describes well what it does, compared to obscure "rev-parse".
|
|
It is often desired to only update git repositories and not pull
files from wrapdb.
|
|
Besides being simpler, it has the advantage of picking directories that
don't have a .wrap file assotiated.
|
|
And check the install data in the same way that mtest checks
serialisation data.
Fixes https://github.com/mesonbuild/meson/issues/2354
|
|
|
|
Same as coredata.dat and build.dat loading. Also, do not assert if
things change. Raise the appropriate exception.
Fixes https://github.com/mesonbuild/meson/issues/7613
|
|
Add '--cross-only' option to run_tests.py, so we can arrange not to run
tests in the 'native' suite when only a cross-compiler is available, as
they can't succeed.
|
|
|
|
Split out tests (and parts of tests) which require a native compiler
from the 'common' suite to a new suite called 'native', so we can
selectively avoid running those tests when only a cross-compiler is
available.
Also move test '211 cmake module' to 'cmake' suite, since it appears
that the way we use cmake requires a native compiler.
|
|
Also add a failing test case for that error.
|
|
Don't stop generating STATIC_LINKER rules at the first MachineChoice
which isn't available (i.e. generate a STATIC_LINKER rule, even if
STATIC_LINKER_FOR_BUILD isn't needed)
Also warn about internal errors which lead to non-existent rule
references, rather than exploding with a KeyError.
|
|
This means that, in the common case of a simple meson.build which
doesn't contain any 'native: true' targets, we won't require a native
compiler when cross-compiling, without needing any changes in the
meson.build.
|
|
|
|
typing: Strict type annotations
|
|
Handle add_languages(native:) in introspector
|
|
If the meson.build doesn't use a native compiler, the native compiler
options (e.g. 'c_args') shouldn't be present in the output of 'meson
introspect --buildoptions'.
|
|
|
|
|
|
This bug not beeing caught in review is another reason for
adding strict typing support to meson.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|