aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-10-25Skip wrapdb test if there is no connectivity.checknetworkdJussi Pakkanen1-0/+9
2022-10-25Condense test directory numbers.Jussi Pakkanen111-25/+25
2022-10-24Move JNISystemDependency to dependencies.base.detect_compilerTristan Partin1-3/+2
Only searches if the project already added that language before.
2022-10-24Fix mismatched param names between Compiler and BasicLinkerIsCompilerMixinTristan Partin2-6/+10
2022-10-24Use f-strings in JavaCompilerTristan Partin1-2/+2
2022-10-24Add missing compiler functions to JavaCompilerTristan Partin1-0/+6
Fixes #2571
2022-10-24basic support for oneapi compilersRobert Cohn7-5/+77
2022-10-24Add MASM compilerXavier Claessens7-5/+217
ml and armasm are Microsoft's Macro Assembler, part of MSVC.
2022-10-24Not all compilers support depfileXavier Claessens3-3/+4
2022-10-24hotdoc module: add partially typed kwargsEli Schwartz1-40/+45
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.
2022-10-24add option to typed_kwargs that allows unknown kwargs throughEli Schwartz1-6/+7
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.
2022-10-24Accept disablers in summary valuesElliott Sales de Andrade4-5/+13
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
2022-10-24nasm: Harcode default path on WindowsXavier Claessens2-8/+9
NASM's installer does not add itself into PATH, even when installed by choco.
2022-10-24Add missing doc for NASM languageXavier Claessens2-0/+6
2022-10-24Add yasm as fallback for nasm languageXavier Claessens5-8/+50
2022-10-24Add NASM compilerXavier Claessens8-1/+184
2022-10-24run_mypy: add extra logging and permit specifying files to checkEli Schwartz1-15/+36
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.
2022-10-23Merge pull request #10916 from xclaesse/preprocessJussi Pakkanen17-21/+247
Add cc.preprocess() method
2022-10-23gnulike: Fix preprocessing files with any extensionXavier Claessens2-1/+6
2022-10-23Add doc and release notes for cc.preprocess()Xavier Claessens2-0/+36
2022-10-23Add unit test for cc.preprocess()Xavier Claessens6-0/+28
2022-10-23vs backend: Add support for CompileTargetXavier Claessens2-0/+46
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.
2022-10-23Add cc.preprocess() method for c-like compilersXavier Claessens4-3/+83
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.
2022-10-23Compilers: Add a preprocessor mode for clike compilersXavier Claessens4-1/+38
A compiler object can now return a list of "modes", they are new compiler object specialized for a specific task.
2022-10-23Fix excluding sources for static lib in both_libraries()Xavier Claessens3-10/+35
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.
2022-10-23Fix typos in docsElliott Sales de Andrade26-34/+34
2022-10-22doc: Fix linkZhao, Gang1-1/+1
2022-10-21msubprojects: Fix issues when updating all wrapsXavier Claessens1-22/+10
When updating all wraps, it is not an error if some have not been downloaded or some does not have a wrap file.
2022-10-19BUG: Don't add debug files as targets when not building in debug modeThomas Li1-2/+4
2022-10-18ninja: Simplify getting rule name from compiler objectXavier Claessens1-17/+11
2022-10-14hotdoc: Fix typo in argumentNirbheek Chauhan1-1/+1
2022-10-13fix: don't set FavorSizeOrSpeed in vs backend if optimization disabled (/Od ↵Luke Elliott1-1/+2
set). Debugging is broken with clang-cl when FavorSizeOrSpeed is set.
2022-10-13Add b_thinlto_cache for automatically configuring incremental ThinLTOTatsuyuki Ishi7-25/+69
2022-10-13clang: Support ThinLTO with moldTatsuyuki Ishi1-4/+9
2022-10-13linkers: Add missing mold entries to __init__Tatsuyuki Ishi1-0/+2
2022-10-12Merge pull request #10357 from xclaesse/update-wrapdbJussi Pakkanen5-54/+109
Make `meson wrap update` command update all wraps in parallel
2022-10-12interpreter: Fix msg when none of the dependencies have namesNirbheek Chauhan1-5/+3
This case is identical to the case when there's no dependencies specified, so it should behave the same way.
2022-10-12interpreter: Don't say we're using -lfoo args when we're notNirbheek Chauhan1-9/+11
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.
2022-10-11Make `meson wrap update` command update all wraps in parallelXavier Claessens4-17/+74
This moves the implementation into msubprojects because it has all the infrastructure to update wraps in parallel while keeping "meson wrap" UX.
2022-10-10Move some code from wraptool.py to wrap.pyXavier Claessens2-34/+32
2022-10-10wrap: Ignore directories that have a .wrap with the same nameXavier Claessens1-3/+3
If we update e.g. glib.wrap from wrap-git with directory=glib to wrap-file with directory=glib-2.70 we could still have the glib directory that is not referenced by any .wrap file any more. We should still ignore that directory otherwise it overrides the glib.wrap we parsed.
2022-10-10Merge pull request #8941 from xclaesse/wrapdbJussi Pakkanen7-23/+125
Automatically use WrapDB fallback
2022-10-10Document and test new WrapDB auto fallbackXavier Claessens4-0/+44
2022-10-09Get fallback varname from wrap file after it has been configuredXavier Claessens1-8/+8
When _subproject_impl() is called the wrap file could not have been downloaded form wrapdb yet, it is done when fetching the subproject. Delay getting the variable name to when we actually need it, at that point we are sure the wrap file has been downloaded.
2022-10-09Get wrap from wrapdb when not found locallyXavier Claessens1-13/+55
Download wrap file from wrapdb automatically when it is not found locally but we have it in wrapdb.json. This makes for example `dependency('glib-2.0')` work out of the box simply by running `meson wrap update-db`, even if the project does not provide any wraps.
2022-10-09Add "meson wrap update-db" commandXavier Claessens1-2/+18
It downloads releases.json from wrapdb and store it in subprojects/wrapdb.json. That file will be used by Meson to find dependency fallbacks offline.
2022-10-09Fix some wording in a JNISystemDependency commentTristan Partin1-1/+1
2022-10-09Add BSD support to the JNISystemDependencyTristan Partin2-0/+12
Supports all BSDs that Meson currently supports. Fixes #10883
2022-10-09run wrapped-due-to-env commands on unix via the env programEli Schwartz1-1/+18
First, check if the env program exists. If it does, it is faster than doing it via a python script `basically-env.py` that maybe imports all of mesonbuild.* as a side effect of project structure. We do not, however, use env for setting up PATH additions, since env can override an environment variable but not extend it. So in that case we still need to wrap the command via python. By default, all run_targets (at least) are wrapped and now wrap via the `env` program as they export e.g. MESONINTROSPECT='/usr/bin/meson introspect'
2022-10-09compilers: Add optimization=plain optionJan Tojnar19-32/+63
https://github.com/mesonbuild/meson/pull/9287 changed the `optimization=0` to pass `-O0` to the compiler. This change is reasonable by itself but unfortunately, it breaks `buildtype=plain`, which promises that ā€œno extra build flags are usedā€. `buildtype=plain` is important for distros like NixOS, which manage compiler flags for optimization and hardening themselves. Let’s introduce a new optimization level that does nothing and set it as the default for `buildtype=plain`.