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] -=-=-=-=-=-=-=-=-=-=-=-