aldebaran/qibuild

qibuild configure should not fail if "Host SDK dir for project XXX does not exist."

Opened this issue · 1 comments

currently (qibuild 3.11.6), given a qiproject like this

<project version="3">
  <qibuild name="libalmath">
    <depends buildtime="true" runtime="true" names="boost eigen3 python libqi rosbag" />
    <depends buildtime="true" names="gtest" />
    <depends host="true" names="libqilang" />
  </qibuild>
</project>

and assuming the python, libqi, rosbag and libqilang dependencies are optional (ie. not used/required by the cmake code)

qibuild configure -s

  • won't complain if the projects python, libqi, rosbag are missing from the build tree and/or the toolchains. Even if they are in the worktree.
  • will fail with message "Host SDK dir for project libqilang does not exist." if libqilang is in the worktree but not in the build tree (ie. was not configured for the host config).

This behavior is inconsistent and prevents the host dependencies to be optional.
Could we change that? The fix would be located in https://github.com/aldebaran/qibuild/blob/master/python/qibuild/cmake_builder.py#L121
I do not see a convincing point for the current behavior. It fails early, but is not very safe anyway.

In the meantime we have some workarounds:

  • patch the qiproject to remove the host dep
  • create a dedicated worktree without the host dep
  • split the project in two projects: one with the dep on libqilang, one without.

I agree this should be changed, this bothered me regularly too.