Fix #2284, improve add_cfe_tables function #2299
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Checklist (Please check before submitting)
Describe the contribution
Improves the functionality and adds additional documentation about how this function is intended to work. The improvements add some flexibility and intelligence and should be backward compatible with existing use cases.
The add_cfe_app() function now adds an additional interface target that can be referenced when building tables, and this includes the directory-scope properties from the original app build. Therefore, calls to add_cfe_tables from other (non-app) contexts can get the full set of include directories.
This also makes the target name simpler when adding custom properties, it is simply "${APP_NAME}.table"
Finally, instead of invoking the table tool (elf2cfetbl) directly in the context of the table build rule, it generates a custom makefile rule instead, which is called from the top-level (mission) scope to do the conversions.
Fixes #2284
Testing performed
Build and sanity check table builds of CFS apps in a variety of configurations, with and without mission-provided overrides
Expected behavior changes
Updates to how the table tool is actually invoked
System(s) tested on
Debian
Additional context
This also sets up for an easier migration path to EDS-based tables, as in this context the table building process must be run using a host-native compiler rather than the target compiler (because EDS, not the compiler, defines the binary layout).
Contributor Info - All information REQUIRED for consideration of pull request
Joseph Hickey, Vantage Systems, Inc.