Implement modern CMake packaging #429
Labels
No Label
API Change
Breaking API Change
bug
build
cosmetics
Documentation
duplicate
feature
help wanted
hotfix
invalid
question
Refactor
Tests
wontfix
No Milestone
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: fsfw/fsfw#429
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Modern CMake packaging requires providing a
FindXYZ.cmake
orXYZconfig.cmake
file and then expecting the application code to usefind_package(FSFW REQUIRED)
. This could be used to configure the FSFW in addition or instead of theFSFWConfig.h
file. It would also allow the user to only compile specific parts of the code through linked targets, e.g. if a user needs the data link layer, they would need to links against theFSFW::DataLinkLayer
and if the user needs RMAP, they would need to link againstFSFW::RMAP
. It probably also would be a good idea to restructure the code into modules which are always required (internally) by the FSFW, e.g. returnvalues or the ObjectManager, and components which are optional. If this is done which is an API change anyway, it might also be a good idea to separate sources and headers like it is done in most C++/C projects ( but im not sure about that.. I actually like the current structure)It probably would be a good idea to move the version management to
CMake
completely like suggested in the CMake tutorial