On Fri, 11 Oct 2024 at 07:31, Aleksandar Nikolic via
lists.yoctoproject.org
<aleksandar.nikolic010=gmail....@lists.yoctoproject.org> wrote:
> I have recipe A that builds a cmake project which, among other dependencies, 
> also has "find_package(pkgconfig)", so, I inherited the pkgconfig class in 
> the recipe. This cmake project is used by other projects since it builds a 
> .so, thus I am also exporting the AConfig.cmake file, which contains the 
> "find_package(pkgconfig)" call. This works well, the project is built and the 
> pkg-config binary is in recipe-sysroot-native (as expected).
>
> Recipe B builds another cmake project, which depends on the cmake project A. 
> Thus, I added recipe A to recipe B's DEPENDS. As expected, this nicely copies 
> everything needed from recipe A (the .so file, the headers, the AConfig.cmake 
> and ATargets.cmake, etc.). However, (expectedly?) it does not copy the 
> pkg-config binary along with it, thus building recipe B fails, because the 
> "find_package(pkgconfig)" call from the AConfig.cmake file fails.
>
> Is the above usage of PkgConfig correct? I understand the pkg-config binary 
> from recipe A's recipe-sysroot-native should not be copied to recipe B's 
> recipe-sysroot-native, but still don't understand how this all is supposed to 
> work. Shouldn't all dependencies from recipe A also be available for recipe B?
>
> It goes without saying, when I inherit the pkgconfig class in recipe B, 
> everything works as expected (because the pkg-config binary is found in 
> recipe-sysroot-native of recipe B), but this is also not correct, as recipe B 
> does not really depend on pkgconfig and shouldn't even know about it.

Build time dependencies on executables aren't transitive like that. If
A needs executable X during its own build, this does not mean that B
(which requires A) would need that same executable.

You either need to split .cmake files to have one for own build of A
(with pkg-config call), and one for consumers of A (without pkg-config
call), or write a bbclass for consumers that contains both DEPENDS on
A and inherit pkgconfig.

Alex
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#64007): https://lists.yoctoproject.org/g/yocto/message/64007
Mute This Topic: https://lists.yoctoproject.org/mt/108943953/21656
Group Owner: yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to