| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
Should target libc++, not libstdc++.
|
| |
|
|
| |
Fix #3969
|
| | |
|
| |\
| |
| | |
Emcc linker bugs and improvments
|
| | |
| |
| |
| |
| |
| |
| | |
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.
|
| |/
|
|
|
| |
clang-cl is handled as a separate case (ClangClCCompiler), which already
gets c_winlibs from VisualStudioLikeCCompilerMixin.
|
| |
|
|
|
|
| |
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
|
| | |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |/
|
|
|
| |
I'm sure there are other places that could use this, but I didn't see
any right off that bat.
|
| | |
|
| |
|
|
| |
- 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
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* PGI C++ PCH enable
PGI compilers support precompiled headers for C++ only.
The common/13 pch test passes if run manually with no spaces in the build path.
However, since Meson run_project_tests.py makes temporary build directories
with spaces in each tests, PGI --pch_dir can't handle this and fails.
So we skip the test for PGI despite it working for usual case with no-spaces
in build dir.
Note: it's fine to have spaces in full path for sourcedir, just no spaces in
relative path to builddir.
* doc
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
I debated a bit whether both classes really belong in the same module,
and decided that they do because the share a number of helpers.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
The compilers module is rather large and confusing, with spaghetti
dependencies going every which way. I'm planning to start breaking out
the internal representations into a mixins submodule, for things that
shouldn't be required outside of the compilers module itself.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
In most cases instead pass `for_machine`, the name of the relevant
machines (what compilers target, what targets run on, etc). This allows
us to use the cross code path in the native case, deduplicating the
code.
As one can see, environment got bigger as more information is kept
structured there, while ninjabackend got a smaller. Overall a few amount
of lines were added, but the hope is what's added is a lot simpler than
what's removed.
|
| |
|
|
|
|
|
| |
This avoids the duplication where the option is stored in a dict at its
name, and also contains its own name. In general, the maxim in
programming is things shouldn't know their own name, so removed the name
field just leaving the option's position in the dictionary as its name.
|
| |\
| |
| | |
ICL (Intel for Windows) support
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| | |
The Intel compiler is strange. On Linux and macOS it's called ICC, and
it tries to mostly behave like gcc/clang. On Windows it's called ICL,
and tries to behave like MSVC. This makes the code that's used to
implement ICC support useless for supporting ICL, because their command
line interfaces are completely different.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
c++11 as c++14
This restrictuion exists for MSVC and clang-cl, but not for ICL which
actually does support C++11 as a distinct standard. This commmit pulls
that behavior out into a mixin class for ClangClCPPCompiler and
VisualStudioCPPCompiler, as well as moving the MSVC specific
functionality into the VisualStudioCPPCompiler class.
|
| | |
| |
| |
| |
| | |
Becuase treating args as either keyword or positional makes inheritance
really awful to work with.
|