You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As these are the versions of the respective libraries we're using in the BlackCAT flight software, this has been OK for development so far. However, n2o4 should ideally be usable on as wide a range of setups as possible, and that means being able to support other versions of cFE and OSAL.
Right now, it's not clear to me how to modify the current system to support multiple library versions. cfs-sys just tries to bindgen everything it can (with some manual additions), with no awareness of what versions of cFE and OSAL it's working with. n2o4 does no version detection whatsoever, and manually trying to track which APIs are available in which versions of {cFE, OSAL} (and with which signatures) sounds like it would be tedious and error-prone.
So, are there good ways to automate or semi-automate this?
The text was updated successfully, but these errors were encountered:
A possible approach that I've been kicking around in my head: unify the cfs-sys and n2o4 crates, and in the build script, use the information bindgen has gathered about the API signatures to set a bunch of feature flags that can be used to enable/disable bindings based on what's available.
Merging what is currently the separate cfs-sys crate into the n2o4 crate
is being done for three purposes:
1) At this point, I don't think it likely that anyone would want to use
cfs-sys, except wrapped by n2o4. Certainly, the way n2o4 is
distributed (or not) means it is always tagging along cfs-sys.
2) In the future, we'd like to make n2o4 work with multiple versions of
cFE and OSAL (issue BlackCAT-CubeSat#1). My best ideas for how to do
that would require a merger of the cfs-sys and n2o4 crates anyway.
3) It reduces the file-hierarchy depth and breadth slightly--
fewer places for stuff to be in, basically.
Currently, the
n2o4
andcfs-sys
crates only support a specific version of cFE and OSAL:v7.0.0-rc4
v6.0.0-rc4
As these are the versions of the respective libraries we're using in the BlackCAT flight software, this has been OK for development so far. However,
n2o4
should ideally be usable on as wide a range of setups as possible, and that means being able to support other versions of cFE and OSAL.Right now, it's not clear to me how to modify the current system to support multiple library versions.
cfs-sys
just tries tobindgen
everything it can (with some manual additions), with no awareness of what versions of cFE and OSAL it's working with.n2o4
does no version detection whatsoever, and manually trying to track which APIs are available in which versions of {cFE, OSAL} (and with which signatures) sounds like it would be tedious and error-prone.So, are there good ways to automate or semi-automate this?
The text was updated successfully, but these errors were encountered: