aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2021-03-02Refactor subdir visitation to track files instead of dirs.subdirrefacJussi Pakkanen5-9/+22
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-01docs/faq: Add a section on user defined functions and macros [skip ci]Dylan Baker1-1/+78
Fixes #3234
2021-03-02mtest: create separate runners for multiple repeatsPaolo Bonzini2-18/+27
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-28Require Windows 10 or newer for the MSI package. [skip ci]Jussi Pakkanen1-0/+12
2021-02-28Add filecmp to list of bundled modules. Closes #8431. [skip ci]Jussi Pakkanen1-0/+1
2021-02-28Remove remnants of 32 bit support. [skip ci]Jussi Pakkanen1-8/+4
2021-02-27Merge pull request #8389 from dcbaker/submit/single-test-runnerJussi Pakkanen4-129/+244
Add a script to run a single meson functional test case (with test.json support)
2021-02-27install_man locale supportJason Woodward9-6/+39
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 Baker6-2/+55
rust: correctly handle -l link args
2021-02-26interpreter: Clean up and simplify/optimize get_(external|cross)_propertyDylan Baker7-47/+38
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-26tests/rust: Add rust case linking to libm in rust static libraryJordan Justen5-0/+53
When building on Linux, I see: rustc -C linker=cc --color=always --crate-type rlib --crate-name rs_math -g --emit dep-info=rs_math.d --emit link -L /usr/lib/x86_64-linux-gnu -o librs_math.rlib -l static=m ../rs_math.rs error: failed to add native library /usr/lib/x86_64-linux-gnu/libm.a: file too small to be an archive I think the "file too small to be an archive" message is coming from libLLVM, and is a case of LLVM not handling this type of "script archive". So, possibly this is just LLVM not handling a linking case. The rust_args usage in meson.build is invalid, but required to reproduce the issue in the test case. Perhaps meson should automatically add the library include path via the dep_m meson object, or maybe the meson.build can add the link path in a better way. Changing '-l static=m' to '-l dylib=m' appears to fix this case. (See comments in meson.build.)
2021-02-26modules/fs: Use typed_pos_argsDylan Baker1-75/+40
2021-02-26interpreter: correctly track whether a subproject is initializedDylan Baker6-1/+35
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 Gregoratto6-0/+10
2021-02-26meson: add .has_external_property() methodsTim-Philipp Müller5-2/+51
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-26Add Rizin to the list of meson usersRiccardo Schirone1-0/+1
2021-02-25deprecated `meson.get_cross_property`Dylan Baker4-4/+10
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 Pakkanen6-4/+80
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 Claessens4-23/+24
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 Klumpp6-23/+67
2021-02-25Clarify that wrap requests are for user submission. [skip ci]Jussi Pakkanen1-2/+9
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 Baker2-1/+21
Rust can link with any dependency that uses c linkage, which is pretty much what we assume across the board anyway.
2021-02-23Add note about using Ninja on old Meson versions. [skip ci]Jussi Pakkanen1-1/+3
2021-02-23tests/rust: Add rust case linking to zlib dependencyJordan Justen5-0/+59
Reworks: * Add MESON_SKIP_TEST error for darwin from polyglot test * Remove dependencies from executable Dylan's changes: * Add support for both static and shared testing * Test with pkg-config, cmake, and system * reformat to meson's style Co-authored-by: Dylan Baker <dylan@pnwbakers.com>
2021-02-23add a script to run a single testDylan Baker3-1/+92
As a Meson developer it's often frustrating to have a single functional test with a regression. These tests can be awkward to reproduce, especially when they make use of a test.json file. This script provides a simmple interface to call functional tests 1 at a time, regardless of whether they use a test.json or not. If they do use a test.json, and have a matrix, then the `--subtest` option can be used to select spcific combinations, for example: ```sh ./run_single_test.py "test cases/frameworks/15 llvm" --subtest 1 ``` will run only the second (zero indexed of course) subtest from the llvm test cases. This is not a super elegent script, but this is super useful.
2021-02-23run_*_tests: Add some type annotationsDylan Baker2-15/+27
2021-02-23run_project_tests: Delete a build directory if it already existsDylan Baker1-0/+2
This can happen if you abort a run before the cleanup finishes
2021-02-23run_project_tests: split json parsing code from test gathering codeDylan Baker1-113/+123
2021-02-22[CUDA] Bugfix: Forward sanitizer_*_args() methods to host compiler.Olexa Bilaniuk3-0/+40
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 Claessens21-77/+195
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-21docs/users: Add DOSBox StagingPatryk Obara1-0/+1
2021-02-19Fix combining C and Fortran. Closes #8377.Jussi Pakkanen3-4/+23
2021-02-19[TAP] Fix TAP parser when test exits with statusLuke Drummond3-1/+12
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 Baker4-16/+41
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 Baker2-2/+6
These continue to be ignored as they always have, but no longer raise an error. Fixes: #8354
2021-02-18compilers: clang: Drop -Xclang before -fcolor-diagnostics flagKrzysztof Małysa1-3/+3
Using -Xclang -fcolor-diagnostics provides no advantage to using just -fcolor-diagnostics option and sometimes causes problems: * uncolored diagnostics on Arch Linux: https://bugs.archlinux.org/task/69662 * simple problem with removing flag -fcolor-diagnostics: https://github.com/clangd/clangd/issues/279