summaryrefslogtreecommitdiffstats
path: root/meta/classes/meson.bbclass
AgeCommit message (Collapse)Author
2021-05-14meson.bbclass: split python routines into a separate classAlexander Kanavin
This allows reusing them in nativesdk-meson without copy-pasting code. (From OE-Core rev: f2715f5f2a56f9b660f9f0fe2933ec231a2dd8c0) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-31meson: use native-file instead of environment variablesRoss Burton
Meson now supports native-files, which are the same as cross files but describe the native build. By writing and using a native file which describes the tools to use, we can drop the environment variable overriding. (From OE-Core rev: 20a5af2583de60969124b4dc15e045ee47516da4) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-02meson: update 0.56.2 -> 0.57.1Alexander Kanavin
Replace hacky 0001-gnome.py-prefix-g-i-paths-with-PKG_CONFIG_SYSROOT_DI.patch with entries in meson.cross. Rest of the patches are refreshed. (From OE-Core rev: 85b4aea551ac4a0f47f916957dd9707c81813a2b) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-06meson.bbclass: add a cups-config entryAlexander Kanavin
This is required by newer meson versions in cross builds, as acknowledgement that the tool in PATH is ok to use. (From OE-Core rev: 267d1dc0794fc348a5f7af3de201c452c8b705a3) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-17meson.bbclass: avoid unexpected operating-system namesAndreas M?ller
For example 'linux-gnueabi' is not what meson consumers expect: See canonical table of OS names for Meson (thanks Ross). Surprisingly this did not pop up earlier but wrong system-name can break building as described in [1] [1] https://lists.openembedded.org/g/openembedded-core/topic/meson_host_machine_system/73023862 (From OE-Core rev: 010202076760329829fbde8dab4f535d6f755873) Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-12meson.bbclass: Close the log file after readingAnton Eliasson
This fixes warnings like: WARNING: package-name-0.0.1-r0 do_configure: <string>:164: ResourceWarning: unclosed file <_io.TextIOWrapper name='/source_directory/build/tmp/work/arch/package-name/0.0.1-r0/package-name-0.0.1//meson-logs/meson-log.txt' mode='r' encoding='UTF-8'> (From OE-Core rev: 4fe8bb4e3f15a3f4e153605d57096c565c5fac21) Signed-off-by: Anton Eliasson <anton.eliasson@axis.com> Reviewed-by: Ola x Nilsson <ola.x.nilsson@axis.com> Signed-off-by: Anton Eliasson <anton.eliasson@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-06microblaze: Adjust Linux items from microblazeeb to microblazeMark Hatle
Due to recent changes to the tune, in order to match config.guess, the name of the big-endian microblaze architecture was changes to 'microblaze'. (From OE-Core rev: 6f6a6bbac684ead3fe6d070d61f17c2f611a2c87) Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-27meson: update 0.52.1 -> 0.53.0Alexander Kanavin
Unset LD, and do not set ld in cross file from LD as new version of meson passes that value directly to -fuse-ld=... which requires one of lld, bfd, gold. (From OE-Core rev: e0e30637a139feb744ca284aa63d47efefc5cb5d) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-27meson.bbclass: warn if cross property defaults are usedRoss Burton
The Meson idiom for checks which require running code on the target (which isn't possible in cross compilation) is to use a cross property, which the user can set in the cross file: if cc_can_run rres = cc.run(test_foo_code) have_foo = rres.compiled() and rres.returncode() == 0 else have_foo = meson.get_cross_property('have_foo', false) endif The default value may be overly conservative so we should review every property and explicitly set them as apppropriate. oe-core 669ddaf added a log message when the default value is used, so look for this message and emit a warning that the user will see. (From OE-Core rev: 91b74ee03ada5d4517a5d8ef3895cc60f87780aa) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-19classes, conf, lib: Add support for powerpc64leKhem Raj
LE is default for modern powerpc64, power8+ PowerPC64 Little Endian Linux ABI specifies Power8 as the minimum ISA. The basic ABI can run on earlier versions of the 64 bit PowerPC ISA, but it was helpful to define a new, minimum instruction set for Linux distribution releases during the switch to Little Endian. (From OE-Core rev: b9c73fb6d1afb3367d871a3d6bf7d0d6a53968a9) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-28meson: map the system property in the cross fileRoss Burton
We can't just use HOST_OS, as in meta-mingw SDKs that is 'mingw32' but Meson expects 'windows'. (From OE-Core rev: f408bbb1cc72b84905b22d100f52c0a9f54ff3fe) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16meson.bbclass: allow buildtype to be changedTrevor Woerner
Some upstream projects are employing the buildtype parameter so users can create, say, "production" versus "debug" builds. Therefore create a configurable parameter so recipes/users can tweak it. (From OE-Core rev: 5b12211ef7856bedafd356f6b7a03add46eca6c7) Signed-off-by: Trevor Woerner <twoerner@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-09meson.bbclass: Prevent meson from downloading wrapped projectsPeter Kjellerstedt
Meson has support for downloading subprojects using something called wraps. This interferes with bitbake's expectations of all downloads being done by the fetch task. To avoid this, tell meson to not download any wraps. Suggested-by: Mattias Jernberg <mattias.jernberg@axis.com> (From OE-Core rev: b547637ad84bad8f7fe27193bf636541f8588ae8) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19meson.bbclass: Handle microblaze* mapping to cpu familyNathan Rossi
(From OE-Core rev: 01692856b8294109ac553c5c0cc23dbb5f1a8970) Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08mesa,llvm,meson: Update llvm to 8.0.1 plus define and use LLVM version globallyKhem Raj
- Add missing dependency on libedit - Define LLVMVERSION on the same lines as GCCVERSION and other tools - Use LLVMVERSION in mesa and meson.bbclass to get llvm version instead of hardcoding it - Use llvm patches unmodified from meta-clang, helps in keeping them in sync - Define PREFERRED_VERSION for llvm, llvm-native, nativesdk-llvm (From OE-Core rev: 3c08b638348abd543fc92baf56c28ca16ae6aac6) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03meson.bbclass: do not pass native compiler/linker flags via command lineAlexander Kanavin
With 0.51.0 version these command line options override what is in the cross file (e.g. the cross-flags). I could not determine what is the scenario when the native flags are needed (this would be building a native binary in the context of cross build). If we find such a scenario we would need to find a way to pass native flags through some other channel. (From OE-Core rev: 6239b77c78b4b584274019130b715f21ac9defdf) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-22meson.bbclass: export STRIP=${BUILD_STRIP}Ross Burton
In Meson the environment variables are always the native tools, so export STRIP=${BUILD_STRIP} along with CC et al to silence this Meson warning: WARNING: Env var STRIP seems to point to the cross compiler. This is probably wrong, it should always point to the native compiler. (From OE-Core rev: 8d1557356d2c7d94eeef2a9b61d3c9622e337a9e) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-16meson.bbclass: Remove the MESON_*_ARGS variablesPeter Kjellerstedt
The options in ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} are already passed via ${CC}/${CXX} and there is no reason to pass them a second time. Thus we can remove MESON_TOOLCHAIN_ARGS. And when it is removed, the other MESON_*_ARGS variables revert to the standard CFLAGS, CXXFLAGS and LDFLAGS, so just use them directly instead. Apart from the obvious improvement with not passing a lot of options twice, this also solves a problem where -pie would be passed on the command line in a way that it would prevent building any dynamic libraries using meson if using a toolchain that is not built with --enable-default-pie and if security_flags.inc is used. (From OE-Core rev: 300f4ac59d4b96fc25a40565b22441b51ab08ede) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-27meson.bbclass: Make meson support aarch64_be.Lei Maohui
Added aarch64_be into cpu family. (From OE-Core rev: 40187613038aa9c1ca16eaa46d0669f69f80a398) Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-04-01llvm: fix more places where '8.0' version of llvm was hardcodedAlexander Kanavin
So that it says '8.0.0' to reflect the recent PV change. (From OE-Core rev: 3b4049157a72bcd984f93405a75946a39c045f2d) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-15meson.bbclass: point to llvm-configAnuj Mittal
Allow packages using llvm-config to find it using meson's dependency interface. (From OE-Core rev: e2e733c813e1eabaaff795a30b82e703dfeecfe7) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-03Added armeb into meson.bbclass.Lei Maohui
(From OE-Core rev: b0021e3d33ba0fb60a340d4553267b18d296b2be) Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-08meson.bbclass: map mips64el TARGET_ARCH to mips64 for the cross fileAndrea Adami
Meson uses 'mips64' for both big- and little-endian MIPS64 machines, so map mips64el to mips64. (From OE-Core rev: 8d1023f222f32ef64d37c3cb15b7dcf9c3e5990d) Signed-off-by: Andrea Adami <andrea.adami@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-29meson: map powerpc64 TARGET_ARCH to ppc64 for the cross fileVictor Kamensky
Meson uses 'ppc64' for 64 bit powerpc. Issue came up while building systemd for MACHINE that uses ppc64e5500 tune. (From OE-Core rev: eccd5414c37be26df63a90154c1808f6f5618b7d) Signed-off-by: Victor Kamensky <kamensky@cisco.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12meson.bbclass: Fix build issues with /tmp mounted with noexecMark Asselstine
Since commit d297f7ebf3f6 [fribidi: use Meson instead of autotools] build failures have been observed with this package. The immediate issue was related to improperly named #defines per https://github.com/fribidi/fribidi/commit/46f52d588ab5, however, the root cause was FRIBIDI_SIZEOF_INT getting a value of "-1". After searching the meson logs the following was found: Could not run: /tmp/tmp2fxe6ha1/output.exe (error: [Errno 13] Permission denied) Checking for size of "int": -1 Which pointed to the real root cause being /tmp mounted with noexec, a common configuration on Redhat and other distros. This issues has been raised in the meson community: https://github.com/mesonbuild/meson/issues/2972 but is yet to be addressed. Using the discussion from issue#2972 and the fact that the underlying code makes use of python 'tempfile' we can simply create a 'tmp' directory and make use of TMPDIR to avoid this issue. (From OE-Core rev: 9800daf59d2235bc492d1aeb600e46ad62303510) Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25meson: stop Meson using target CFLAGS in native buildsRoss Burton
With the goal of autoconf-compatibility Meson respects $CFLAGS et al in builds. In cross-compiled build the cross file is the one true source of flags and the environment isn't used, but in a native build the environment will still be respected. As this can lead to target flags being used in the build for native binaries (including a single native binary inside a target recipe), export CFLAGS=${BUILD_CFLAGS) et al. (From OE-Core rev: 4ca0002860dca771836c0ce1c7a92b79a5f2db3f) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25meson: pass correct endian in the cross fileRoss Burton
Meson doesn't care for the value of the endian field, but packages may want to use it and Meson master now validates the value. Use siteinfo to obtain the endianism and write the correct value. (From OE-Core rev: 2f9adf05efdddf8dae9c58976ae56cf32d9e57f0) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-02meson: don't dump full error log on failureRoss Burton
If the configure fails then we don't really want to see hundreds of lines of test output (this would be similar to dumping out autoconf's config.log). The error includes the path of the full log if further debugging is required. (From OE-Core rev: 09917f582aa1a7b752fa96303e06f9f4712a1d86) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10meson: improve code styleRoss Burton
Use elif for consistency. (From OE-Core rev: 2ad89f12c9819326b29588a8a6c642aaae990f18) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06meson: map mipsel TARGET_ARCH to mips for the cross fileRoss Burton
Meson uses 'mips' for both big- and little-endian MIPS machines, so map mipsel to mips. (From OE-Core rev: 23734432a24da77aa838ad4bdcbcc294cde08348) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05meson: map architecture to correct values in cross fileRoss Burton
The cross file specifies the host/target cpu_family, which should be one of a defined set of values[1] but if it isn't Meson won't complain and instead recipes may behave unexpectedly. [1] http://mesonbuild.com/Reference-tables.html#cpu-families (From OE-Core rev: e33b902a1dc4294dac148715f4d3ca5b0a6ee1b7) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05meson: various class improvementsRoss Burton
- Ensure that the PACKAGECONFIG arguments are always in EXTRA_OEMESON - Log the arguments that are being passed in do_configure. - Do verbose builds so the compile logs are useful for debugging build problems (From OE-Core rev: 3112ff268d095a65ecb893dd6ca88a85b0f70446) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18meson: only use lists of commands in cross file if requiredRoss Burton
There's a bug in Meson[1] where it find_program("foo") will fail if foo is defined in the cross file as a list. This is causing the Meson build of libdrm to fail, but for this instance we can work around the problem by only using lists in the cross file if there are arguments, and just using a string if there are not. [1] https://github.com/mesonbuild/meson/issues/3737 (From OE-Core rev: 7fd8bc469c2caacc1c2021bd0aa83dd6da7fe1e7) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-04meson.bbclass: refactor native overrideMartin Kelly
The native override is specified in two different places, so let's move it into a function to reduce code duplication. (From OE-Core rev: c455ec4a12d4966524da9436722476aa2d428765) Signed-off-by: Martin Kelly <mkelly@xevo.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-06meson.bbclass: fix to build for more projectsChen Qi
We should use the value of CC for the c compiler setting in cross compilation configuration file for meson. For example, if we only use ${HOST_PREFIX}gcc instead of ${CC}, we would meet the following do_compile failure for systemd. cc1: fatal error: linux/capability.h: No such file or directory Do the same change for LD, AR, NM, STRIP and READELF. (From OE-Core rev: 177bd96a531fcc85e62baff04aba327e2bccee07) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-02-24meson.bbclass: Add support for nativesdkPeter Kjellerstedt
We need to use the meson.cross file when building for nativesdk. Additionally, we need to trick meson's sanity tests, just as it is done for target builds. (From OE-Core rev: abcb330c462c2c06d36f8f3681a6bd07d562c1fe) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-29meson: Adjust for clang compilerKhem Raj
Remove hardcoding c/c++ compiler to be gcc alone, its possible to use clang as replacement for cross compilers from meta-clang, therefore set clang/clang++ if TOOLCHAIN = "clang" (From OE-Core rev: 05789489d25a5ceac0403613ad789d78198be6ee) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-19meson.bbclass: add MESON_LINK_ARGS to vardepsMartin Kelly
Currently, we include MESON_C_ARGS in write_config[vardeps], but we don't include MESON_LINK_ARGS, which also affects meson.cross. In addition, we include TOOLCHAIN_OPTIONS, from which both are derived. Add MESON_LINK_ARGS, and remove TOOLCHAIN_OPTIONS, which does not directly appear in meson.cross and should be pulled in indirectly by MESON_C_ARGS and MESON_LINK_ARGS. (From OE-Core rev: 4db37cc8d9139076682e2528d29e92fad2eb1c90) Signed-off-by: Martin Kelly <mkelly@xevo.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-19meson.bbclass: include C{, XX}FLAGS in cross argsMartin Kelly
Currently, CFLAGS and CXXFLAGS are not making it into the compile line. This is because meson appends CFLAGS/CXXFLAGS from the environment only for native but not for cross builds (probably to keep cross-builds more isolated). As a result, we need to make sure these vars goes into meson.cross. This is similar to what cmake.bbclass does with OECMAKE_C_FLAGS and OECMAKE_CXX_FLAGS. Change c_args and cpp_args in meson.cross to include these vars, and update write_config[vardeps] accordingly. (From OE-Core rev: f435d1b75d3775f6ec0df6027766008b40209fd7) Signed-off-by: Martin Kelly <mkelly@xevo.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-19meson.bbclass: compile with --buildtype plainMartin Kelly
OE manages all the compile flags, so we don't want meson to inject its own flags. Currently, it's injecting -O0 and causing build breaks when security flags are enabled (because _FORTIFY_SOURCE requires an optimized build and meson defaults to a debug -O0 build). Add --buildtype plain so meson will not add its own optimization flags. (From OE-Core rev: 73ff85986d82c8da601d7c7cf9a02961f2f66a09) Signed-off-by: Martin Kelly <mkelly@xevo.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-13meson.bbclass: use HOST_CC_ARCH, not TARGET_CC_ARCHChristopher Larson
Using TARGET_CC_ARCH is inconsistent with CC, which uses HOST_CC_ARCH, and the rest of meson.bbclass, which uses HOST_PREFIX, HOST_OS, etc. (From OE-Core rev: 8a61e0c0c53275ebc623296f46676d920b11eb3b) Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-05meson: export native env only for native buildMartin Kelly
Although the meson crossfile should take care of setting the right cross environment for a target build, meson slurps any set CFLAGS, CXXFLAGS, LDFLAGS, and CPPFLAGS from the environment and injects them into the build (see mesonbuild/environment.py:get_args_from_envvars for details). This means that we are seeing native CFLAGS, CXXFLAGS, LDFLAGS, and CPPFLAGS in the target build, which is wrong and causes build failures when target and native have libraries in common (the linker gets confused and bails). That said, we *do* need to set certain vars for all builds so that meson can find the right build tools. Without this, meson will fail during its sanity checking step because it will determine the build tools to be unrunnable since they output target instead of native artifacts. The solution to all of this is to set CC, CXX, LD, and AR globally to the native tools while setting the other native vars *only* for the native build. For target builds, these vars will get overridden by the cross file as we expect. (From OE-Core rev: de7ae028c65a978969b2e06fdc1a2d08bc141a5b) Signed-off-by: Martin Kelly <mkelly@xevo.com> Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-05meson: add a recipe and class from meta-oeAlexander Kanavin
The original recipe has been provided and improved by: Ross Burton <ross.burton@intel.com> Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> Adam C. Foltzer <acfoltzer@galois.com> Peter Kjellerstedt <peter.kjellerstedt@axis.com> Linus Svensson <linussn@axis.com> I have added patches to fix up gtk-doc and gobject-introspection in cross-compilation environments, and also change the order of linker arguments to replicate autotools more closely (and fix linking errors in some corner cases). (From OE-Core rev: 1f8dea686cdfd6d360ba4a97f62d274c39eaeb8e) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>