Commit Graph

10529 Commits

Author SHA1 Message Date
Xavier Claessens c8abede403 Windows Subsystem for Linux can run .exe without mono interpreter
Fixes: #8445
2021-03-03 08:05:00 -05:00
Xavier Claessens b7bcdb7839 wrap: sha256 digest is not case sensitive
Fixes: #8450.
2021-03-02 12:38:46 -05:00
Remi Thebault 25848fc05f fix missing versions with generated source 2021-03-02 09:31:40 -08:00
Leif Middelschulte 8339594014 exernal_project: Fix default cross compile parameters
The variable `{host}` cannot be successfully expanded.
Using the `@HOST@` parameter, as suggested by the documentation, works.
2021-03-02 08:20:28 -05:00
Dylan Baker 1ac4358eae docs/faq: Add a section on user defined functions and macros [skip ci]
Fixes #3234
2021-03-01 15:10:51 -08:00
Paolo Bonzini 0c663d056a mtest: create separate runners for multiple repeats
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-02 00:57:57 +02:00
Remi Thebault 3bf207ab1b D add build dir to -J switch 2021-03-01 09:51:40 -08:00
Jussi Pakkanen 62b744b2c4 Require Windows 10 or newer for the MSI package. [skip ci] 2021-02-28 22:41:41 +02:00
Jussi Pakkanen eacd43d5b5 Add filecmp to list of bundled modules. Closes #8431. [skip ci] 2021-02-28 22:41:41 +02:00
Jussi Pakkanen 5e95f13737 Remove remnants of 32 bit support. [skip ci] 2021-02-28 22:41:41 +02:00
Jussi Pakkanen b86ef3f850
Merge pull request #8389 from dcbaker/submit/single-test-runner
Add a script to run a single meson functional test case (with test.json support)
2021-02-27 21:06:07 +02:00
Jason Woodward 50af09de03 install_man locale support
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-27 14:35:23 +02:00
Jeff Moguillansky 0047f7439c pkg-config: dump all PKG_CONFIG environment variables to simplify debugging
With this change, all the system's built-in pkg-config environment variables
are outputted as well, to simplify debugging.
2021-02-26 16:52:15 -08:00
Dylan Baker 6a9a1557e4
Merge pull request #8429 from dcbaker/submit/rust-fix-linking-with-find-library
rust: correctly handle -l link args
2021-02-26 16:50:53 -08:00
Dylan Baker 219535aad4 interpreter: Clean up and simplify/optimize get_(external|cross)_property
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-26 15:31:15 -08:00
Dylan Baker d7d80945ea rust: a meson -l argument could be etiher a static or dynamic library
I made an incorrect assumption that -l arguments would always be static
libraries, but they might well be shared libraries.
2021-02-26 14:26:15 -08:00
Michael Kuhn 2d8d21d5bc hdf5: get include directory from config-tool
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-26 23:04:02 +02:00
Jordan Justen e127e47d7a tests/rust: Add rust case linking to libm in rust static library
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-26 11:58:47 -08:00
Dylan Baker fad0a498fb modules/fs: Use typed_pos_args 2021-02-26 09:34:27 -08:00
Dylan Baker e079553959 interpreter: correctly track whether a subproject is initialized
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-26 09:05:30 -08:00
Stephen Gregoratto ec5fe58e6d Allow printing UserOptions in the summary 2021-02-26 10:28:00 -05:00
Tim-Philipp Müller ace22f21a7 meson: add .has_external_property() methods
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-26 10:15:17 -05:00
Riccardo Schirone c5aee36fa2 Add Rizin to the list of meson users 2021-02-26 07:06:28 -05:00
Dylan Baker aa4efc709e deprecated `meson.get_cross_property`
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-25 15:18:39 -08:00
Jussi Pakkanen 542dea2571
Merge pull request #8404 from dcbaker/submit/rust-c-dependencies
Fix linking Rust with C dependencies
2021-02-26 00:22:57 +02:00
Dylan Baker eba9535428 interpreter: stop using hasattr for held_object
We have unholder or isinsatnce(ObjectHolder) for that
2021-02-25 23:08:23 +02:00
Dylan Baker 69c22181f7 interpreter: Fix ObjectHolder usage 2021-02-25 23:08:23 +02:00
Dylan Baker b8e4600bb8 interpreterbase: fix ObjectHolder
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-25 23:08:23 +02:00
Xavier Claessens cef5cab23c Support multiple args in error()
Seems it got forgotten when that was added to warnings() and message().

Fixes: #8414.
2021-02-25 22:58:45 +02:00
Matthias Klumpp 4e5efd3897
Allow custom target output to be processed by generators 2021-02-25 20:53:41 +02:00
Jussi Pakkanen 74ebb1ba59 Clarify that wrap requests are for user submission. [skip ci] 2021-02-25 00:40:20 +02:00
Eli Schwartz c7ddde58fd
mcompile: do not pass the builddir to ninja if it is the current directory
Because when you don't specify -C, this logging feels silly:

ninja: Entering directory `.
2021-02-23 19:37:04 -05:00
Eli Schwartz 691eb0250a
mcompile: make sure arguments are passed in the correct order
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-23 19:37:03 -05:00
Dylan Baker 0edd005804 rust: replace for loop with any()
This is a little cleaner, and short circuits correctly, unlike the loop
it replaces
2021-02-23 16:22:56 -08:00
Dylan Baker 6544f151db rust: fix linking with external dependencies
Rust can link with any dependency that uses c linkage, which is pretty
much what we assume across the board anyway.
2021-02-23 16:22:56 -08:00
Jussi Pakkanen 671647188c Add note about using Ninja on old Meson versions. [skip ci] 2021-02-23 22:00:19 +02:00
Jordan Justen 5edbc0acd7 tests/rust: Add rust case linking to zlib dependency
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-23 11:31:05 -08:00
Dylan Baker 44c836e0d9 add a script to run a single test
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-23 09:08:55 -08:00
Dylan Baker 3e11da6db5 run_*_tests: Add some type annotations 2021-02-23 08:38:19 -08:00
Dylan Baker 8a12115741 run_project_tests: Delete a build directory if it already exists
This can happen if you abort a run before the cleanup finishes
2021-02-23 08:38:19 -08:00
Dylan Baker 44d5ea2a1f run_project_tests: split json parsing code from test gathering code 2021-02-23 08:38:19 -08:00
Olexa Bilaniuk 4c1a0c400f [CUDA] Bugfix: Forward sanitizer_*_args() methods to host compiler.
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-22 23:56:55 +02:00
Xavier Claessens 2fabd4c7dc minstall: Add --skip-subprojects option
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-22 23:03:55 +02:00
Patryk Obara 36d9d7a96f docs/users: Add DOSBox Staging 2021-02-21 19:53:37 -05:00
Jussi Pakkanen 72865a2773 Fix combining C and Fortran. Closes #8377. 2021-02-19 18:18:39 +02:00
Luke Drummond 79f7328d6a [TAP] Fix TAP parser when test exits with status
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-19 17:17:20 +02:00
Dylan Baker 90a7de3f2b Ensure that $lang_args and $lang_link_args are properly parsed
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-19 17:16:42 +02:00
Dylan Baker 91e56c7d59 environment: Allow setting build options in cross files
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-18 10:57:20 -08:00
Dylan Baker b03039ec9d allow build.b_* options
These continue to be ignored as they always have, but no longer raise an
error.

Fixes: #8354
2021-02-18 10:57:20 -08:00
Krzysztof Małysa c24a0f8524 compilers: clang: Drop -Xclang before -fcolor-diagnostics flag
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
2021-02-18 17:30:33 +02:00