aldebaran/qibuild

qibuild add-config --host lets you create a qibuild.xml with several host configs (which qibuild does not support)

Opened this issue · 0 comments

Seen on qibuild 3.11.6 from pip.

$ qibuild add-config foo --host
$ qibuild add-config bar --host
$ cat ~/.config/qi/qibuild.xml
<qibuild version="1">
  <defaults>
    <env />
    <cmake />
  </defaults>
  <config host="true" name="bar">
    <env />
    <cmake />
    <profiles />
  </config>
  <config host="true" name="foo">
    <env />
    <cmake />
    <profiles />
  </config>
</qibuild>

Since two config are marked "host" qibuild make-host-tools picks one arbitrarily, possibly the wrong one.

A workaround is to use qibuild set-host-config.

$ qibuild set-host-config bar
$ cat ~/.config/qi/qibuild.xml
<qibuild version="1">
  <defaults>
    <env />
    <cmake />
  </defaults>
  <config host="true" name="bar">
    <env />
    <cmake />
    <profiles />
  </config>
  <config name="foo">
    <env />
    <cmake />
    <profiles />
  </config>
</qibuild>

I think the proper fix is to avoid this "only one host config requirement". As explained in issue #81.
This new bug is one more clue that the current design is flawed.

Note: the current code is quite easy to understand:

add_build_config creates the config (host or not), then add_config adds it without checking for host config collision.

On the contrary set_host_config does check.