| Age | Commit message (Collapse) | Author |
|
It was the name of root project instead of current subproject. This is
only used by pkgconfig generator.
While at it, simplify the way we get the project version.
|
|
It really isn't a sanity check that a specific compiler doesn't work on
a specific platform. This re-implements the check as a shared component
in the ASMCompiler base class, which has the advantage of code sharing.
|
|
This will be able to hold some shared state between the different ASM
compilers (or should that be assemblers?)
|
|
Make sure that they are checked against the correct extension
on Darwin.
Fixes: #7964
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
See https://forums.opensuse.org/t/cant-find-libboost-system-devel-dependency/188865.
|
|
Stable HDF5 has a fixed .pc file, but we need to enable hdf5[cxx]
for H5Cpp.h.
|
|
|
|
Currently what this does is permit freethreaded builds, which are
stablemasked but not masked, which means we get a binpackage cache miss
for something we frankly very much do not care about at all.
We can and do unmask implementations themselves later on in this file,
which should handle all this for us anyway.
|
|
We've been using the desktop profile until now, mostly because it
automatically provides various frameworks we test e.g. wayland, gtk, qt
etc that all install out of the box. It also guarantees that binpackages
match.
The image is also really fat though. :( Switch to the base profile,
install a few packages that otherwise wouldn't be installed, and tweak
individual USE flags for binary coverage.
|
|
Gentoo does a weirdo thing where you cannot detect vala without setting
an environment variable. It's usually only set in ebuild recipes, and
vala simply does not work on Gentoo at all, period, end of story,
outside of that.
Capitulate, and parse the output of portage to find the most recent vala
installed and export that directly into meson's binary table lookup. We
aren't interested in whether *Gentoo* works with Vala, we are interested
in finding out whether newly packaged vala versions in Gentoo are
compatible with meson.
Bug: https://bugs.gentoo.org/513658
|
|
By doing some cleanups here, we can now use a binpkg for dev-build/b2
and often dev-libs/boost.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
This dates back to before we changed to Python 3.12 default in Gentoo. I
don't remember why we specifically wanted/needed 3.12 in the CI builder
though (maybe something to do with distutils removal to test that). The
Python changes here shouldn't make much difference to binpkg eligibility
right now because the binhost has a double builder for old targets, though
it won't cover everything.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
Bug: https://bugs.gentoo.org/910572
|
|
It is required to have unique library names for rust_dependency_map to
work. In the case we have foo crate in multiple versions, we have to
make sure their .rlib file have a different name.
|
|
A crate can depend on 2 different API versions of the same crate:
foo_1_dep and foo_2_dep.
Make sure a Dependency always has a version. When it's defined by a git
URL, or a path, the version could be omitted. Update once we fetched the
dependency's package.
|
|
|
|
Allow multiple targets for the same crate name, which is useful when the
same crate is used for both the host and the build machine.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
_get_rust_dependency_name was less lenient in accepting targets containing
invalid characters for a crate name. This made it impossible to link to
those targets without using a dependency map. Use the same algorithm to
do the conversion.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
edition and lint args were not set the Cargo subproject is a workspace.
|
|
|
|
To test the reflex (not RE/flex) path as well.
|
|
So we can test the byacc path as well as the bison one
|
|
This adds a similar wrapper to the Lex wrapper for yacc/bison/byacc. The
interface is equivalent.
|
|
This module is a bit of a dumping ground for code generators,
particularly ones that are important and non-trivial to wrap, either due
to multiple implementations, major command line changes, or complex
outputs (such as those that may output a directory structure).
The initially provided method is for lex. It provides a simple wrapper
that handles win_flex, reflex, flex, and generic lex.
|
|
|
|
CMake and Meson may disagree on the default value of the libdir
installation path. This results in shared libraries installed in the
default location not assigned to the {libdir_shared} install location
by the Meson CMake interpreter. This results in wrong install plan
metadata and in those libraries being installed in the wrong location.
Fixes #12960.
|
|
There is no point in doing so as it can be readily obtained from the
environment. This in preparation of extracting more installation
location from the environment.
|
|
The default value is not passed further through the converter,
therefore it must take proc-macro into account.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
|
This is used for project to require a nightly Rust compiler, and also
for Meson to enable nightly feature if available.
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
The lints table in Cargo.toml has a very human-targeted syntax. When
building manifest.from_raw, flatten everything into a single list,
prefixing the tool name to every warning option and sorting by priority.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
This makes it possible to pass rust_args as a list.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
|
This makes easier to run a single test after running them all. For
example the test "test_accsadubl" in the suite "default" of project
"orc" used to be displayed "orc:default / test_accsadubl". To run that
test specifically the command line is `meson test -C builddir
orc:test_accsadubl --suite default`. To make this more consistent
the test is now displayed as "default - orc:test_accsadubl".
|
|
Omitting test()'s `suite` kwarg used to default to `test.suite==['']`
because of how stringlistify() works. That had inconsistent behavior
with `suite: []` which makes `test.suite==[]`. That changed when porting
to typed_kwarg (#8855), which made the default `test.suite==[]`.
Change `suite: []`, and missing kwarg, back to `test.suite==['']` which
was the original intention. It has impact on `meson test --suite`
selection, an empty `test.suite` list means that test is never going to
be selected when `--suite` is used, even when we want all tests from a
given subproject.
It was also unclear what `--suite foo` means. Is `foo` a suite or a
project name? It can now be either, it selects all tests from project
`foo` as well as all tests from any project in suite `foo`.
|
|
Fixes: #15028
|
|
Fixes: #15028
|
|
Do not look anymore at proc_macro after init, keeping crate_type as the
sole source of truth about the desired crate types.
|
|
https://doc.rust-lang.org/cargo/guide/project-layout.html
|
|
|
|
This allows keeping the manifest unmodified which is better practice for
a parser. Previously some places had e.g. raw.setdefault().
It also fix some values:
- BuildTarget.doc_scrape_examples is removed. It seems to be some
experimental cargo feature, but I haven't found documentation that
says it should be part of the manifest. It was also missing from raw
manifest.
- BuildTarget.edition does not default to 2015, it default to package's
edition, which itself default to 2015.
- bench value defaults to False for tests.
- Dependency.path must be relative to its Cargo.toml location. If the
value comes from the package it can be used as-is, but if it comes
from workspace it must be made relative.
- Library.name default to its package name with dash replaced with
underscores.
|
|
This allows for a lot of type safety to be introduced, and almost all
casting to be removed.
|
|
We passed a DoSubproject call without half of the fields we'd agreed to
fill out. Which left things running on hopes and dreams.
|
|
|
|
The lookup code only has two callers. One of them is an internal caller
that never sets the `required` key, and the other is the interpreter.
Moving this code to the interpreter allows us to simplify the common
code, especially the types.
|
|
This allows us to avoid making `feature` a union, therefore if we write
code like:
```python
disabled, required, feature = extract_required_kwarg(...)
if disabled:
...
```
and now mypy knows that feature is a `str` inside the `if disabled`
block
|
|
These may be better replaced by setting instance attributes, honestly.
|
|
|