Summary of changes:
- New custom dependency for atomic
- --cap-lints allow used for Cargo subprojects
- Cargo features are resolved globally
- Meson can run "clippy" on Rust projects
- Devenv support in external project module
- Fixed sizeof and find_library methods for Fortran compilers
- format command now accept stdin argument
- "machine" entry in target introspection data
- Add new language Linear Asm
- Control the number of child processes with an environment variable
- Support for Rust 2024
- Support TASKING VX-Toolset
- Test targets no longer built by default
- Install vcs_tag() output
(From OE-Core rev: 37d4a5b2653b94d5030b5026b1ecf979420cfb20)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
0001-python-module-do-not-manipulate-the-environment-when.patch
refreshed for 1.6.1
Changelog:
===========
- dependencies: support old vulkan SDK version
- Handle top level options set in subprojects. Closes#13847.
- ci: fix Ubuntu Bionic job
- modernize Rust template
- run_single_test.py: skip setup_symlinks() call on Windows
- tests: HDF5 no longer skips on MacOS
- mdevenv: exec directly into the program to run
- CMakeToolchain: Log output on compiler state failure
- msetup: Correction of the message text
- run_single_test.py: Fix for symlink changes
- libgcrypt-config is no more on ubuntu-rolling
- fix generate_gir with BothLibraries dependency
- env2mfile: add flag to use _FOR_BUILD envvars.
- environment: Never require an exe_wrapper for native builds
- rust: fix computation of library directory
- De-duplicate BuildTarget.sources
- Fix building on AIX when no project languages are used
- coverage.py: Guard use of --html-nested behind version check.
- Xcode backend: only use found appleframeworksn
- Enable GCC to find free-threaded python DLL library
- modules/rust: Add support for autolib field in the Cargo.toml
- env2mfile: Use a cross valac on Debian if possible
- env2mfile: Automatically set exe_wrapper on Debian if possible
- env2mfile: Use Debian cross-prefixed GObject-Introspection tools
- env2mfile: Generalize detection of pkg-config to have a list of tools
- Add GNU/Hurd kernel results
(From OE-Core rev: ca17f6c26c7f1fa93950143a41204daf57e5b4ed)
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When cross-compiling prepend the sysroot to the hardcoded /usr/src paths
that Meson looks in for the GoogleTest sources.
[ YOCTO #13508 ]
(From OE-Core rev: feb9a58814720a4382d3f02467dcecb276f58040)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
0001-Make-CPU-family-warnings-fatal.patch
refreshed for 1.5.2
Changelog:
============
- nasm: Use different test sources for x86 and x86_64
- mdist: correctly detect dirty hg repos with non-English locale, redux
- backend/ninja: Generate sysroot in rust-project.json
- mdist: detect pathological git repo cases and show a slightly better error
- compilers: Pass mode to determine_args, not its string value
- CI: mark arch as skipping frameworks/libgcrypt
- When configuring fails in Github Actions, print folded logs
- Prevent raw exception during project()
- compilers: avoid -Wunused-value compiler warning in CLikeCompiler.has_type()
- compilers: avoid -Wunused-value compiler warning in CLikeCompiler.has_members()
- mformat: better handling of continuation lines
- mformat: detect invalid config
- tests: handle uncommon architecture format for nm
- mformat: regenerate long lines even if they're already multiline
- Add support for LLVM 19 in Debian.
- mformat: provide nice error message instead of backtrace for invalid value
- mformat: A triple string with a ' in it cannot be simplified
- tests/format: Make the compare script more useful
- linkers: skip -export_dynamic flag before MacOS 10.7
- format: fix indentation of comments
- mformat: correctly handle editorconfig files without the root setting
- cargo: Ignore Cargo.lock if toml implementation is missing
- compilers: do not strip '-isystem' from C build arguments
- Fix compiling ObjC/ObjC++ on Windows/MinGW
- mformat: fix formatting of empty build file
- tests: nasm: make it easier to debug generator() style build
- mdist: correctly detect dirty hg repos with non-English locale
(From OE-Core rev: 292b015bae6fdd11f086dc30f385f45ef2f0eb8d)
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When the optimization flags were reduced to a single option, a different
and clearly untested codepath was used where the output was unquoted. This
caused errors when testing meson in the SDK.
Use repr() in the single item case as per the multiple item case to correctly
quote the output and fix build failures.
(From OE-Core rev: 7c2b573e6cbe518f54ea5c3539fc91ed63b80ebf)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As with a previous change to the class[1], the "pkgconfig" entry is now
deprecated and "pkg-config" should be used instead.
[1] oe-core d64b307891422e290bbe821d4303b3af526bbe17
(From OE-Core rev: 3e441544f1aa7258718a1cadd6836d9cd9dc65ab)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since we want to be able to stop unpacking to WORKDIR, correct the WORKDIR
references in recipe do_compile/do_install tasks to use UNPACKDIR in the
appropraite places instead.
(From OE-Core rev: d73595df69667fe9d12ecd407b77a0b8dae2109c)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The newly released version 1.2.2 adds version 17 to CMake LLVM
detection, so we will now choose the OE provided LLVM version
instead of the one on host during native builds.
(From OE-Core rev: 90edba29f9f4c115af5202c566eaa935656de1eb)
Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If PYTHONDONTWRITEBYTECODE set to 1, do_install:append will fail because
no .pyc is removed.
Add -f flag to prevent command fail.
(From OE-Core rev: 2073b6f14f39c71199c07a1ba181b67984421a10)
Signed-off-by: Yang Xu <yang.xu@mediatek.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
From an SDK, running a meson setup build without an explicit setup
command can result in a native build when a cross build is expected.
The problem is in meson-wrapper where it tries to detect whether a
setup command is being used. The logic looks through all arguments for
a command, and the first argument it finds that doesn't start with a -
is treated as the command. This doesn't work for an implicit setup
command if any option with a space-separated argument exists. In this
case, the argument is incorrectly selected as the command, causing the
setup command options for the cross build to be excluded from the
command line, and thus a native build.
Improve the logic by just looking at the first argument. If it is
a known comand, then record it. Otherwise just assume it is the
implicit setup command.
Note that this fix does not address the possibility of a new meson
command. Two new echo statements are included to help the user in case
of trouble:
```
~/git/weston-imx$ meson --warnlevel 3 --prefix=/usr -Ddoc=false -Dbackend-drm-screencast-vaapi=false -Dcolor-management-lcms=false -Dpipewire=false -Dbackend-x11=false -Dxwayland=true -Dsimple-clients=all -Dbackend-wayland=false -Dbackend-default=drm -Dbackend-rdp=false -Dtest-junit-xml=false -Dlauncher-libseat=false -Dimage-jpeg=false -Dimage-webp=false -Drenderer-g2d=true build
meson-wrapper: Implicit setup command assumed
meson-wrapper: Running meson with setup options: " --cross-file=/opt/fsl-imx-internal-xwayland/6.1-langdale/sysroots/x86_64-pokysdk-linux/usr/share/meson/aarch64-poky-linux-meson.cross --native-file=/opt/fsl-imx-internal-xwayland/6.1-langdale/sysroots/x86_64-pokysdk-linux/usr/share/meson/meson.native "
The Meson build system
Version: 0.63.3
```
(From OE-Core rev: 9338bd66a3c9ab5cb781f2ee588306c5b31a3cb5)
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch disables is_debianlike() so that it always returns False in the
name of deterministic builds. However, the caller default_libdir() then
looks at the host filesystem to decide if /usr/lib64 exists and will
return either lib or lib64, so it still isn't deterministic.
This is only used for the default libdir value and meson.bbclass
always passes an explicit --libdir, so this is moot.
(From OE-Core rev: af4200197948f4900761cb1db11680aeab286f92)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The meson-wrapper adds setup options to facilitate cross-compilation.
The current options are exclusive to the setup sub-command and might
cause issues with other sub-commands.
Update the wrapper to make options sub-command specific.
(From OE-Core rev: 7bcda141f2019862b4fb5d8dec7956cd8344b420)
Signed-off-by: Liam Beguin <liambeguin@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When using meson-native directly from bitbake this has no effect and
everything works as before; the use case is being able to build
meson-driven projects from the 'direct SDK' environment. Build systems
like cmake/autotools are entirely driven by environment variables,
but meson needs configuration files, and so this replicates how SDKs
set things up.
In particular, with this change the libepoxy build test from the SDK
test suite is able to pass.
(From OE-Core rev: 87d4f6d176f27c22dbb99abc271b9a6eaca314f8)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rebase 0001-python-module-do-not-manipulate-the-environment-when.patch
(From OE-Core rev: 65411c5d632adeac5eab322ae1a54ec8b6d3e5af)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meson would fail to detect compiler type in some rare care where
specific substring '-xt' is detected in compiler --version output and
it so happens that this string can be generated by clang --version if
clang is installed into a directory containing 'xt-' in its name. with
recipe specific sysroots, this is quite likely to happen in OE build
system as we are seeing the issue with newly proposed gnome-text-editor
recipe
https://lists.openembedded.org/g/openembedded-devel/topic/90150031#96301
(From OE-Core rev: ff75909f2a9e970aaf389e0012888c29f02376e3)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rename this class to be python-prefixed to match the other new Python
build system classes.
(From OE-Core rev: 25d6bf8079797906bde7c0cf63a0466c981ba5bb)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
PIP_INSTALL_PACKAGE isn't used anymore, so remove all instances of it
from the recipes.
(From OE-Core rev: 15baf24f750ab2c8b0a46d4a3bf2ae9bfa3d0aff)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Upstream provides a pyproject.toml which declares setuptools.build_meta
to be backend for PEP-517 packaging.
Set PIP_INSTALL_PACKAGE as this recipe does not inherit pypi and
therefor no PYPI_PACKAGE is defined
[YOCTO #14638]
(From OE-Core rev: 0d9bc65139a9cabbeabe166e83f2d61f47d7bdd7)
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Backport patches to epiphany/gcr/g-i to address failures with new meson.
(From OE-Core rev: 2ab302edc33681f94b2cd85b564f6feebe154392)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This allows automated version updates when possible, and reduces friction in manual ones.
(From OE-Core rev: 54d4a767ab7beaa64cfc4c221317ea03b0b119ab)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In qemu, they merged the 32 and 64 bit riscv variants into one target for meson
purposes but this isn't officially supported by upstream meson. In normal builds
this would just be a warning but in OE, this is fatal.
Avoid the fatal errors for now and build as qemu intended whilst this is resolved
by the upstreams.
(From OE-Core rev: 7c1356e762d357dad95decf7b1d6147a2efae174)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This replaces the specific gtkdoc wrapper setting
(which was rejected by upstream in https://github.com/mesonbuild/meson/pull/9627)
with a generic, officially supported and documented exe_wrapper,
which is enabled subject to qemu usermode support
(just as is done for g-i and gtk-doc with autotools).
gtk-doc support is adjusted so that this wrapper is passed to
meson's gtk-doc module, which passes it to gtk-doc.
The adjusted patch is re-submitted upstream.
The side effect of this is that meson is now able to run
target binaries in a generic way when it wants to, so this
may affect cross-builds - hopefully in a positive way.
(From OE-Core rev: 17fb047282a413aae5af991ecf5bbb225e19581e)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>