-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Describe the bug
Underlying cause of conan-io/conan-center-index#28861
When generating the meson configuration files with MesonToolchain(native=True), the native file does not contain the binaries for pkgconf where they have been specified in the build requirements. These are necessary to crosscompile a Meson project which depends on native binaries. For example, see conan-io/conan-center-index#28663
How to reproduce it
conan-io/conan-center-index#28663 reproduces the issue and conan-io/conan-center-index#28861 has further information.
Additionally, using the following recipe:
from conan import ConanFile
from conan.tools.meson import MesonToolchain
from conan.tools.env import VirtualBuildEnv
from conan.tools.build import cross_building
class TestConan(ConanFile):
name = "test"
settings = "os", "arch", "compiler", "build_type"
def build_requirements(self):
self.tool_requires("meson/[>=1.4.0 <2]")
self.tool_requires("pkgconf/[>=2.2 <3]")
def generate(self):
VirtualBuildEnv(self).generate()
MesonToolchain(self).generate()
if cross_building(self):
MesonToolchain(self, native=True).generate()Using the profiles build and host respectively -
[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=gnu20
compiler.cstd=gnu17
compiler.libcxx=libstdc++11
compiler.version=15
os=Linux
[settings]
arch=armv7hf
build_type=Release
compiler=gcc
compiler.cppstd=gnu20
compiler.cstd=gnu17
compiler.libcxx=libstdc++11
compiler.version=15
os=Linux
conan install . --profile:build=build --profile:host=host --build=missing
Then examine the generated conan_meson_native.ini file. It does not contain the required pkg-config entry in [binaries] (it is contained in the conan_meson_cross.ini file, but this is not used when Meson is asked to find native binaries in a cross compilation context).