Age | Commit message (Collapse) | Author | Files | Lines |
|
This has a bunch of nice features. It obviously centralizes everything,
which is nice. It also means that env is only re-read at `meson --wipe`,
not `meson --reconfigure`. And it's going to allow more cleanups.
|
|
I would have prefered to do these seperatately, but they are combined in
some cases, so it was much easier to convert them together.
this eliminates the builtins_per_machine dict, as it's duplicated with
the OptionKey's machine parameter.
|
|
There's starting to be a lot of things including coredata that coredata
needs to itself include. putting it in mesonlib makes more sense
|
|
|
|
they're probably not strictly needed, but it makes mypy happy.
|
|
Fixes #8084.
|
|
And then update the choices in each leaf class. This way we don't end up
with another case where we implicitly allow an invalid standard to be
set on a compiler that doesn't have a 'std' setting currently.
|
|
Most options don't use language prefaced options (std vs c_std)
internally, as we don't need that due to namespacing. Let's do that
across the board
|
|
Intel C++ Compiler 19.1 has C++20 features.
https://software.intel.com/content/www/us/en/develop/articles/intel-c-compiler-191-for-linux-release-notes-for-intel-parallel-studio-xe-2020.html
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
|
|
Unlike MSVC and ClangCl it needs to call into it's own compiler check
args
|
|
This is groundwork to put _build_wrapper in the base Compiler, which is
needed to make the D compilers truly type safe.
|
|
|
|
Every class needs to set this, so it should be part of the base. For
classes that require is_cross, the positional argument remains in their
signature. For those that don't, they just allow the base class to set
their value to it's default of False.
|
|
It's an implementation detail after all
|
|
Add support for NVidia HPC SDK compilers
|
|
|
|
fixes #7404
|
|
|
|
Simmilar to gcc, the list of pre-processor defines can be fetched with
`-dM -E` option. The way cpu_family is determined on linux relies on
this list.
Fixes incorrect value of cpu_family on linux, when crosscompiling:
```
CC="clang -m32" meson ./build
```
Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
Co-authored-by: Dylan Baker <dylan@pnwbakers.com>
|
|
during ArmClangCPPCompiler initialisation
|
|
A current rather untyped storage of options is one of the things that
contributes to the options code being so complex. This takes a small
step in synching down by storing the compiler options in dicts per
language.
Future work might be replacing the langauge strings with an enum, and
defaultdict with a custom struct, just like `PerMachine` and
`MachineChoice`.
|
|
Should target libc++, not libstdc++.
|
|
Fix #3969
|
|
|
|
Emcc linker bugs and improvments
|
|
clang-cl is handled as a separate case (ClangClCCompiler), which already
gets c_winlibs from VisualStudioLikeCCompilerMixin.
|
|
Emscripten does have a stand alone linker, wasm-ld. This patch adds the
linker, adds detection for the linker, and removes the IsLinkerMixin for
emscripten. This is a little more correct, and makes the code a lot
cleaner and more robust.
|
|
Emscripten has pthread support (as well as C++ threads), but we don't
currently implement them. This fixes that by adding the necessary code.
The one thing I'm not sure about is setting the pool size. The docs
suggest that you really want to do this to ensure that your code works
correctly, but the number should really be configurable, not sure how to
set that.
Fixes #6684
|
|
Sot hat the BasicLinkerIsCompilerMixin comes before ClangCCompiler,
which hides its "call the linker" methods, as emcc doesn't have a
separate linker.
|
|
Instead of checking the compiler id inside the VisualStudioLikeCompiler
class, this creates two subclasses that each represent the divergent
behavior of the two compilers
|
|
|
|
...But somehow it still remains in C++ compiler.
|
|
|
|
Pass options to linker detection
|
|
I'm sure there are other places that could use this, but I didn't see
any right off that bat.
|
|
Currently this is done at the instance level, but we need it at the
class level to allow compiler "lang" args to be gotten early enough.
This patch also removes a couple of instance of branch/leaf classes
providing their own implementation that is identical to the Compiler
version.
|
|
We know that if a compiler class inherits CCompiler it's language will
be C, so doing this at the class level makes more sense.
|
|
|
|
- Typos were found by codespell v1.16.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Now that the linkers are split out of the compilers this enum is
only used to know what platform we're compiling for. Which is
what the MachineInfo class is for
|
|
This allows us to detect use classes rather than methods to determine
what C standards are available.
|
|
Most of the cuda code is from Olexa Bilaniuk.
Most of the PGI code is from Michael Hirsc
|
|
|
|
|