aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
AgeCommit message (Collapse)AuthorFilesLines
2021-03-08remove unused environment functionEli Schwartz1-4/+0
The script dir is never really used since meson --internal handles this. The last remaining use of the raw script dir got removed in commit 522392e7553823e6b3ac38cadc4fbee72eae9540.
2021-03-08Add /Od flag to msvc optimization 0 argsVili Väinölä1-1/+1
Without specifying optimization the used optimization depends on vs runtime-library. With mdd it is /Od but with md it is /O2.
2021-03-06minstall: Correctly set uid/gid of installed filesPeter Kjellerstedt1-1/+1
In commit caab4d3d, the uid and gid arguments passed to os.chown() by set_chown() were accidentally swapped, causing files to end up with incorrect owner/group if the owner and group are not the same. Also update the documentation to better indicate which argument to install_mode is which. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
2021-03-06Refactor subdir visitation to track files instead of dirs.Jussi Pakkanen2-9/+11
2021-03-06Fix Fortran dep scanner for upper case file extensions. Closes #8395.Jussi Pakkanen1-1/+1
2021-03-05Port CUDA module to new API.Olexa Bilaniuk1-11/+23
2021-03-04compilers: Use EnvironmentException not EnvironmentError/OSErrorDylan Baker1-8/+8
The latter is a python built-in exception, the former is a meson exception.
2021-03-04mass rewrite of string formatting to use f-strings everywhereEli Schwartz84-730/+730
performed by running "pyupgrade --py36-plus" and committing the results
2021-03-04various python neatness cleanupsEli Schwartz26-91/+91
All changes were created by running "pyupgrade --py3-only --keep-percent-format" and committing the results. I have not touched string formatting for now. - use set literals - simplify .format() parameter naming - remove __future__ - remove default "r" mode for open() - use OSError rather than compatibility aliases - remove stray parentheses in function(generator) scopes
2021-03-04raw string literals are next to godlinessEli Schwartz3-5/+5
Invalid escape sequences are deprecated and will be removed from a future version of python. Use r"" to define them so they remain readable.
2021-03-04mintro: include the correct target filenames for flat layoutPaolo Bonzini1-2/+10
Fixes: #8408
2021-03-04mintro: fix flake8 issuesPaolo Bonzini1-1/+1
2021-03-04Simplify module APIXavier Claessens5-103/+85
- ModuleState is now a real class that will have methods in the future for actions modules needs, instead of using interpreter internal API. - New ModuleObject base class, similar to InterpreterObject, that should be used by all objects returned by modules. Its methods gets the ModuleState passed as first argument. It has a `methods` dictionary to define what is public API that can be called from build definition. - Method return value is not required to be a ModuleReturnValue any more, it can be any type that interpreter can holderify, including ModuleObject. - Legacy module API is maintained until we port all modules. In the future modules should be updated: - Use methods dict. - Remove snippets. - Custom objects returned by modules should all be subclass of ModuleObject to get the state iface in their methods. - Modules should never call into interpreter directly and instead state object should have wrapper API. - Stop using ModuleReturnValue in methods that just return simple objects like strings. Possibly remove ModuleReturnValue completely since all objects that needs to be processed by interpreter (e.g. CustomTarget) should be created through ModuleState API.
2021-03-04interpreter: Fix process_new_values()Xavier Claessens1-7/+3
It should recurse on lists and does not need to return a value.
2021-03-04build: Fix backend typeXavier Claessens1-1/+2
2021-03-03pkgconfig: Add missing permitted kwargsXavier Claessens1-1/+1
Fixes #8462
2021-03-03Windows Subsystem for Linux can run .exe without mono interpreterXavier Claessens2-1/+4
Fixes: #8445
2021-03-02wrap: sha256 digest is not case sensitiveXavier Claessens1-2/+2
Fixes: #8450.
2021-03-02fix missing versions with generated sourceRemi Thebault1-0/+6
2021-03-02exernal_project: Fix default cross compile parametersLeif Middelschulte1-1/+1
The variable `{host}` cannot be successfully expanded. Using the `@HOST@` parameter, as suggested by the documentation, works.
2021-03-02mtest: create separate runners for multiple repeatsPaolo Bonzini1-18/+21
Reusing the runners for multiple repeats of the test run gets in the way of the progress report, which stores runners in an OrderedSet. Instead, create a separate SingleTestRunner object for each repeat. While at it, fix the "duplicate suite" assertion as it can fire with TAP tests and --repeat=N. Fixes: #8405
2021-03-01D add build dir to -J switchRemi Thebault1-2/+6
2021-02-27install_man locale supportJason Woodward4-6/+22
Rather than having to manually build the locale aware man paths with `install_data('foo.fr.1', install_dir: join_paths(get_option('mandir'), 'fr', 'man1'), rename: 'foo.1')` Support doing `install_man('foo.fr.1', locale: 'fr')`
2021-02-26pkg-config: dump all PKG_CONFIG environment variables to simplify debuggingJeff Moguillansky1-2/+4
With this change, all the system's built-in pkg-config environment variables are outputted as well, to simplify debugging.
2021-02-26Merge pull request #8429 from dcbaker/submit/rust-fix-linking-with-find-libraryDylan Baker1-2/+2
rust: correctly handle -l link args
2021-02-26interpreter: Clean up and simplify/optimize get_(external|cross)_propertyDylan Baker1-39/+20
These are both way more compilcated than they needed to be, this is a much simpler implementation, and is shared between cross and external properies.
2021-02-26rust: a meson -l argument could be etiher a static or dynamic libraryDylan Baker1-2/+2
I made an incorrect assumption that -l arguments would always be static libraries, but they might well be shared libraries.
2021-02-26hdf5: get include directory from config-toolMichael Kuhn1-2/+5
hdf5's config-tools will not show compile arguments (including the include directory) if called without `-c`. Make sure to get both the compile and link arguments.
2021-02-26modules/fs: Use typed_pos_argsDylan Baker1-75/+40
2021-02-26interpreter: correctly track whether a subproject is initializedDylan Baker1-1/+5
The way the tracking is currently done it works if no new subprojects are added to a configured build directory. For cases where we want to add a new subproject, it fails because we don't initialize builtins for that subproject. This corrects that by checking to see if the subproject already exists, and if it doesn't initializes the bultins for it. Fixes: #8421
2021-02-26Allow printing UserOptions in the summaryStephen Gregoratto1-0/+3
2021-02-26meson: add .has_external_property() methodsTim-Philipp Müller1-0/+10
Useful in case of boolean values to distinguish between a boolean value having been set in the native/cross file and not having been provided, which can't be achieved by passing a fallback parameter to .get_external_property().
2021-02-25deprecated `meson.get_cross_property`Dylan Baker1-0/+1
It's a pure subset of `get_external_property`, and has odd behavior in host == build configurations. `get_external_property` is clear, and uses the standard `native : bool` syntax to control host vs build properties
2021-02-26Merge pull request #8404 from dcbaker/submit/rust-c-dependenciesJussi Pakkanen1-4/+18
Fix linking Rust with C dependencies
2021-02-25interpreter: stop using hasattr for held_objectDylan Baker1-10/+4
We have unholder or isinsatnce(ObjectHolder) for that
2021-02-25interpreter: Fix ObjectHolder usageDylan Baker1-48/+52
2021-02-25interpreterbase: fix ObjectHolderDylan Baker1-3/+3
There are two problems: 1. It doesn't take the generic type as a parameter 2. it sets subpproject to None, but expects to always get a string
2021-02-25Support multiple args in error()Xavier Claessens1-23/+12
Seems it got forgotten when that was added to warnings() and message(). Fixes: #8414.
2021-02-25Allow custom target output to be processed by generatorsMatthias Klumpp2-19/+41
2021-02-23mcompile: do not pass the builddir to ninja if it is the current directoryEli Schwartz1-1/+3
Because when you don't specify -C, this logging feels silly: ninja: Entering directory `.
2021-02-23mcompile: make sure arguments are passed in the correct orderEli Schwartz1-7/+8
meson compile itself doesn't permit GNU-style argument permutation, i.e. TARGET to precede options, so why should we expect ninja to? And indeed, ninja doesn't document support for this -- but it does accept it anyway, which is confusing and results in people thinking it's "supposed to" work. However, if NINJA=samu then this is in fact enforced. samu does not permit GNU-style argument permutation. As a result, the arguments passed to mcompile are actively re-ordered before being passed to the subprocess, and samu dies with a fatal error. Fix ordering in mcompile.py and add a comment to warn future readers that the order does, in fact, matter.
2021-02-23rust: replace for loop with any()Dylan Baker1-4/+1
This is a little cleaner, and short circuits correctly, unlike the loop it replaces
2021-02-23rust: fix linking with external dependenciesDylan Baker1-0/+17
Rust can link with any dependency that uses c linkage, which is pretty much what we assume across the board anyway.
2021-02-22[CUDA] Bugfix: Forward sanitizer_*_args() methods to host compiler.Olexa Bilaniuk1-0/+6
Enables -Db_sanitize=undefined and company. Also serves as a testcase for NVCC comma-shielding: Because the test- case declares `b_sanitize=address,undefined`, the host GCC compiler needs `-fsanitize=address,undefined`, but this stands a danger of being split by NVCC when wrapped with `-Xcompiler=args,args`. Special, already-existing comma-shielding codepaths activate to prevent this splitting. Closes #8394.
2021-02-22minstall: Add --skip-subprojects optionXavier Claessens9-77/+111
By default all subprojects are installed. If --skip-subprojects is given with no value only the main project is installed. If --skip-subprojects is given with a value, it should be a coma separated list of subprojects to skip and all others will be installed. Fixes: #2550.
2021-02-19Fix combining C and Fortran. Closes #8377.Jussi Pakkanen1-2/+5
2021-02-19[TAP] Fix TAP parser when test exits with statusLuke Drummond1-0/+1
Some time between 0.56 and 0.57 the TAP parser broke when a test exits with a nonzero status. The TAP protocol does not specify this behaviour - giving latitude to implementers, and meson's previous behaviour was to report the exit status gracefully. This patch restores the old behaviour and adds a regression test
2021-02-19Ensure that $lang_args and $lang_link_args are properly parsedDylan Baker1-16/+12
Currently we don't handle things correctly if we get a string we should split, and the linker and needs compiler arguments. It would result in two unsplit strings in a list, instead of the split arguments in a list Fixes: #8348
2021-02-18environment: Allow setting build options in cross filesDylan Baker1-4/+11
This did work previously, so we need to let it continue working. I'm proposing removing it in 0.60 because the correct solution has always worked. I've also been a bit more defensive here, and made setting `subproject:opt = foo` in the machine files an error, as we have `[subproject:built-in options]` or `[subproject:project options]` for that.
2021-02-18allow build.b_* optionsDylan Baker1-2/+1
These continue to be ignored as they always have, but no longer raise an error. Fixes: #8354