Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
ccache was used in all command lines but disabled using CCACHE_DISABLE
in Compiler.compile() method. Wrapping invokations still has a cost,
especially on Windows.
With sccache things are even worse because CCACHE_DISABLE was not
respected at all, making configure *extremely* slow on Windows when
sccache is installed.
|
|
Only combine them in the Compiler base class, this will make easier to
run compiler without ccache.
|
|
|
|
|
|
Fixes: #10956
|
|
Move `detect_native_windows_arch()` to `mesonlib/universal.py` and
rename it to `windows_detect_native_arch()`
Use `IsWow64Process2()` to detect native architecture if available
Use native `vcvarsarm64.bat` to initialize vsenv if available
|
|
|
|
This is based on searching for `@FeatureNew*` decorators.
There is also one correction to a version in a decorators;
`build_by_default` was added in #1303, which is 0.38.0, not 0.40.0.
|
|
This makes sure we don't end up picking up an older version of LLVM that
does not work.
|
|
Fixed in Homebrew/homebrew-core#112154.
This reverts commit c20fb659f600149c08d635fc3750f03632164b9b.
|
|
|
|
Only searches if the project already added that language before.
|
|
|
|
|
|
Fixes #2571
|
|
|
|
ml and armasm are Microsoft's Macro Assembler, part of MSVC.
|
|
|
|
We accept a list of known kwargs of required types, but also arbitrary
kwargs understood by the hotdoc program (sometimes via extensions). Now
that we can partially type-check kwargs, do so here.
|
|
Some functions cannot be fully type checked, because our API allows
fully arbitrary kwargs and treats them as data to pass through to the
underlying feature. For example, hotdoc command line arguments.
This change allows us to type check some kwargs with known types and
possibly required status, and make their values consistent(ly defaultable),
while preserving the optional nature of the additional kwargs.
|
|
They are commonly used as a replacement for a `dependency`, and not
accepting them in `summary` breaks the last example in [1] when used as
a value.
[1] https://mesonbuild.com/Disabler.html#disabling-parts-of-the-build
|
|
NASM's installer does not add itself into PATH, even when installed by
choco.
|
|
|
|
|
|
|
|
If those files are not yet known to be typed, skip them. This makes it
possible to trivially check a shortlist of files that were just changed
and see if they regress our mypy coverage. Ideal for use in a git
pre-commit hook.
|
|
Add cc.preprocess() method
|
|
|
|
|
|
|
|
Since vs backend only support the C compiler, everything else are custom
targets. Convert CompileTarget into a Generator to reuse existing code.
This will be useful in the future to support transpilers, and
assemblers.
|
|
This introduce a new type of BuildTarget: CompileTarget. From ninja
backend POV it is the same thing as any other build target, except that
it skips the final link step. It could be used in the future for
transpilers too.
|
|
A compiler object can now return a list of "modes", they are new
compiler object specialized for a specific task.
|
|
When using both_libraries(), or library() with default_library=both, we
remove all sources from args and kwargs when building the static
library, and replace them by the objects from the shared library. But
sources could also come from any InternalDependency, in which case we
currently build them twice (not efficient) and link both objects into
the static library.
It also means that when we needlessly build those source for the static
library, it miss order dependency on generated headers that we removed
from args/kwargs, which can cause build errors in the case the source
from static lib is compiled before the header in shared lib gets
generated.
This happened in GLib:
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2917.
|
|
|
|
|
|
When updating all wraps, it is not an error if some have not been
downloaded or some does not have a wrap file.
|
|
|
|
|
|
|
|
set).
Debugging is broken with clang-cl when FavorSizeOrSpeed is set.
|
|
|
|
|
|
|
|
Make `meson wrap update` command update all wraps in parallel
|
|
This case is identical to the case when there's no dependencies
specified, so it should behave the same way.
|
|
cc.compiles(), and other compiler checks that use cc.compiles() under
the hood, do not use link args at all when doing the compile check, so
messages like this:
```
Checking if "have zlib" with dependency -lz compiles: YES
```
is very misleading. The compiler check command-line for that is:
```
cc [...]/testfile.c -o [...]/output.obj -c -D_FILE_OFFSET_BITS=64 -O0
```
Note the lack of linker args.
|
|
This moves the implementation into msubprojects because it has all the
infrastructure to update wraps in parallel while keeping "meson wrap"
UX.
|
|
|