| Age | Commit message (Collapse) | Author |
|
Fixes: 6c88d9992192379511c4777c526786cbacf06167
Fixes: d3542ff690d0be723cfd3ebfaaac99290517837f
Fixes: ff0c758b2a8015f7e7ca6fc627c29ef7bb4771b3
|
|
|
|
The reason it is a string array is that this allows us to add more
values than true/false should it be needed. For an example see
`b_lto`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Compiler.get_language_stdlib_only_link_flags
|
|
|
|
|
|
|
|
|
|
This is calculated by `Environment().is_cross_build(for_machine)`. Since
we have that in the Compiler class, just calculate it in the Compiler
initializer
|
|
We end up needing it everywhere, so just store it. This patch is huge
already, so it's just the conversion to passing Environment, more
cleanups to come.
|
|
The IntelCPPCompiler was incorrectly adding -fno-rtti when RTTI was
enabled (rtti=True) instead of when it was disabled. This change
corrects the logic to match the behavior of GCC and Clang compilers,
which properly add -fno-rtti when rtti=False.
Fixes #15220
|
|
libc++ uses the same macro name, just with different values, for debugstl.
If the distro or similar predefines a hardening mode lower than the mode
debugstl wants (or in any other way not equal), we get an annoying redefinition
warning.
Closes: https://github.com/mesonbuild/meson/issues/13812
|
|
Bug: https://github.com/mesonbuild/meson/issues/13978
|
|
This has two problems:
1) it keeps breaking with Apple Clang (bug #14440, bug #14856)
2) it gets confused when using GCC with libc++ (a rare configuration)
because compiler version != libc++ version
There's no reason to keep catering for old libc++ here. The feature
was somewhat immature in older libc++ anyway.
Just rip it out and then we can go back and restore it for the niche
case later.
Bug: https://github.com/mesonbuild/meson/issues/14440
Bug: https://github.com/mesonbuild/meson/issues/14856
Closes: https://github.com/mesonbuild/meson/issues/13978
|
|
It's not obvious so add a comment, lest someone think handling the case
is a bug.
|
|
The Microchip XC32 compiler is a GCC-based compiler implemented using
existing GNU compiler classes. As the XC32 version and GCC version do
not match mixins have been implemented to override versions used in
versions checks where applicable.
|
|
|
|
This reverts commit 806289a5d27958a084bc6cba41b7cf9ccee4ecf4.
|
|
The goal is to reduce code duplication, and allow each language to
implement as little as possible to get good checking. The main
motivation is that half of the checks are fragile, as they add the work
directory to the paths of the generated files they want to use. This
works when run inside mesonmain because we always have an absolute build
directory, but when put into run_project_tests.py it doesn't work
because that gives a relative build directory.
|
|
a16ec8b0fb6d7035b669a13edd4d97ff0c307a0b changed the threshold to 17
for Apple Clang, but it needs to be 16 instead.
Bug: https://github.com/mesonbuild/meson/issues/14440
Closes: https://github.com/mesonbuild/meson/issues/14856
|
|
Fixes a regression introduced in commit d37d649b08b8 "Make all Meson level
options overridable per subproject." This change results in every file
printing the warning "cl : Command line warning D9002 : ignoring unknown
option '/std:vc++14'"
Now that "get_option_..." is called before overwriting the option (instead
of after), we have to operate on compiler options, not meson options.
There is no such compiler option as /std:vc++14 (the meson option vc++xx is
split into /std:c++xx for the C++ standard version, and a separate flag
that enables Microsoft extensions). Remove the mapping from c++14 to
vc++14.
|
|
libc++ deprecated _LIBCPP_ENABLE_ASSERTIONS from version 18.
However, the libc++ shipped with Apple Clang backported that
deprecation in version 17 already,
which is the version which Apple currently ships for macOS.
This PR changes the _LIBCPP_ENABLE_ASSERTIONS deprecation check
to use version ">=17" on Apple Clang.
|
|
|
|
Move building the -std option to the new get_option_std_args method,
special casing CUDA to never include the option from the host compiler.
This fixes again #8523, which was broken by the option refactoring
(unsurprisingly, since the fix was ripped out unceremoniously without
a replacement).
Fixes: #14365
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
This is just a wrapper around `OptionStore.get_option_for`, but without
taking an `OptionKey`. This complicates the subproject passing, since
`OptionKey` is designed to encapsulate the option name and subproject.
|
|
|
|
This will allow us to take choices out of the UserOption class, which
doesn't actually use this attribute.
|
|
This reduces code, makes this clearer, and will be a nice step toward
the goal of getting everything typesafe.
For `UserIntegerOption` this makes a fairly nice, but substantial change
in that the old method used a tuple of `(min, value, max)` to pass to the
initializer, while all other types just passed `value`. The new
`UserIntegerOption` does the same, with keyword arguments for the min
and max values.
|
|
This saves a *tiny* bit of typing, but at the cost of requiring either
the current solution of throwing up our hands and saying "typing is too
hard, better to have bugs!" or an extensive amount of `TypedDict`s,
`overloads`, and a very new version of mypy. Let's get our type safety
back, even if it means writing a little bit more code.
|
|
Because the latter doesn't always interact with the MRO correctly.
|
|
|
|
Support lists for ObjC and ObjC++ standards
|
|
- see https://gitlab.kitware.com/cmake/cmake/-/merge_requests/5168
|
|
|
|
So we can re-use it in the ObjC++ standards
|
|
|
|
We'll want to use this for the ObjC++ compiler too.
|
|
|
|
|
|
Remove trailing periods for consistency with other option descriptions, and use
a consistent description for `winlibs` options everywhere (the one in the
documentation).
|
|
fixes #13271
|