<div dir="ltr">Hi Patrick:<div>    I try to build and run unit test repository which support meson such as phosphor-logging and phosphor-network. There is dependency issue while building them and I wonder it is a bug or my environment issue.</div><div>/openbmc/phosphor-logging$ meson builddir && ninja -C builddir test<br>The Meson build system<br>Version: 0.59.2<br>Source dir:  /openbmc/phosphor-logging<br>Build dir:  /openbmc/phosphor-logging/builddir<br>Build type: native build<br>Project name: phosphor-logging<br>Project version: 1.0.0<br>C++ compiler for the host machine: c++ (gcc 7.5.0 "c++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0")<br>C++ linker for the host machine: c++ ld.bfd 2.30<br>Host machine cpu family: x86_64<br>Host machine cpu: x86_64<br>Program python3 found: YES (/usr/bin/python3)<br>Found pkg-config: /usr/bin/pkg-config (0.29.1)<br>Run-time dependency systemd found: YES 237<br>Found CMake: /usr/bin/cmake (3.10.2)<br>Run-time dependency sdbusplus found: NO (tried pkgconfig and cmake)<br>Cloning into 'sdbusplus'...<br>remote: Enumerating objects: 3559, done.<br>remote: Counting objects: 100% (609/609), done.<br>remote: Compressing objects: 100% (384/384), done.<br>remote: Total 3559 (delta 346), reused 403 (delta 162), pack-reused 2950<br>Receiving objects: 100% (3559/3559), 891.70 KiB | 7.37 MiB/s, done.<br>Resolving deltas: 100% (2289/2289), done.<br><br>Executing subproject sdbusplus<br><br>sdbusplus| Project name: sdbusplus<br>sdbusplus| Project version: 1.0.0<br>sdbusplus| C compiler for the host machine: cc (gcc 7.5.0 "cc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0")<br>sdbusplus| C linker for the host machine: cc ld.bfd 2.30<br>sdbusplus| C++ compiler for the host machine: c++ (gcc 7.5.0 "c++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0")<br>sdbusplus| C++ linker for the host machine: c++ ld.bfd 2.30<br>sdbusplus| Run-time dependency libsystemd found: NO (tried pkgconfig and cmake)<br><br>subprojects/sdbusplus/meson.build:14:0: ERROR: Dependency "libsystemd" not found, tried pkgconfig and cmake<br><br>A full log can be found at  /openbmc/phosphor-logging/builddir/meson-logs/meson-log.txt<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Patrick Williams <<a href="mailto:patrick@stwcx.xyz">patrick@stwcx.xyz</a>> 於 2021年12月17日 週五 上午1:12寫道:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, Dec 16, 2021 at 01:53:41PM +0800, Deng Tyler wrote:<br>
> Hi Patrick:<br>
>     Thank for your kind reply and that's really helpful. I am trying to<br>
> figure out the meson subprojects system but still encounter lot of barrier.<br>
> I run unt test using command "meson buiildir && ninja -C builddir test" in<br>
> my development environment but never work. Could you help to cite an<br>
> example in current openbmc repository? Do openbmc contributor run unit test<br>
> by meson subprojects or run-unit-test-docker.sh when they are developing?<br>
<br>
I can't really comment on what other people do, but I can tell you what I do.<br>
<br>
1. If the repository supports Meson, I always attempt to build / test using<br>
   standalone support (ie. meson subprojects).<br>
<br>
2. If 'meson subprojects' doesn't seem to work, I fix it to make it work.<br>
<br>
3. If the repository is anything else and it isn't too much effort, I try to<br>
   port it to meson.<br>
<br>
4. When all else fails I use 'run-unit-test-docker.sh'.  I often execute it with<br>
   an alias I have: `NO_FORMAT_CODE=1 lf-ut`[1].<br>
<br>
---<br>
<br>
Do you have examples of meson+ninja failing?  I'm fairly certain it works fine<br>
for almost every repository I'm listed as a maintainer on.  I've also used it<br>
(or fixed it) fairly recently for: bmcweb, phosphor-logging, and<br>
phosphor-certificate-manager.<br>
<br>
Maybe you can point to what failure you're seeing in that case as well (you<br>
can upload a log to <a href="http://gist.github.com" rel="noreferrer" target="_blank">gist.github.com</a> )?<br>
<br>
<br>
<br>
1. <a href="https://github.com/williamspatrick/dotfiles/blob/fb542abf99c944051544990f69a6d20c82d2a904/env/30_linux/lfopenbmc.zsh#L76" rel="noreferrer" target="_blank">https://github.com/williamspatrick/dotfiles/blob/fb542abf99c944051544990f69a6d20c82d2a904/env/30_linux/lfopenbmc.zsh#L76</a><br>
<br>
-- <br>
Patrick Williams<br>
</blockquote></div>