Add a mechanism to push app configurations to the mission definitions folder.
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 1.5k
- Forks
- 391
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 19
Description
After working with some of the pre-made utility apps provided by the CFE, I've noticed that at some point (relatively early) developers must abandon reuse in favor of clone/own which, in my opinion, is partly due to the CFS CMake build system not providing a clean method to push build configurations into the top level definitions folder.
An example of an app that could benefit from additional configuration would be the CI and TO lab apps. The current implementation of these apps use a hard coded port value for UDP communication with only a means to change the IP listened to via a command in TO Lab. My solution would most likely take the form of changing...
#define cfgCI_PORT 1234
to...
#ifndef cfgCI_PORT
#define cfgCI_PORT 1234 // Default UDP port
#endif
and having a config.cmake located within the missions definitions directory that contains the definition from a cmake instruction...
add_definitions(-DcfgCI_PORT=4321)
It would be nice for the CMake build system to provide the ability to have a companion configuration folder for each app in the definitions folder. This folder could contain headers and additional .cmake files used to specify certain details about the app being built.
It's currently possible to hijack the behavior of the targets.cmake file and add additional instructions like file(copy ...) to inject files into the app before it attempts to build but this would clobber the files currently present in the app directory.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the CFS CMake build system, the missions definitions folder, and the existing targets.cmake behavior for the CI and TO lab apps. Determine how a companion configuration folder, config.cmake files, and headers could be incorporated without clobbering app files. Done means app-specific definitions such as cfgCI_PORT can be supplied from the missions definitions area while preserving existing defaults and builds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, cmake
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100