Overview
This is used to manage cmake configurations in a global way for the ros build environment. With it, platform specific configurations can be selected from a library of existing configurations, or created and saved as a user-defined platform module.
Platform configurations define cmake variables that are often specific to your cpu and/or os structure. This includes things like cflags, lflags and install prefixes. Quite often, finding the optimal set of flags for your embedded platform is non-trivial, so if this knowledge is shared here, it can make it easier for future developers also wanting to build on the same platform.
Usage
The list of commands that can be passed to the toolchain script can be seen below:
> rosplatform --help Usage: rosplatform : shows the currently set ros platform rosplatform clear : clear the currently set ros platform rosplatform create : create a user-defined platform configuration rosplatform delete : delete a platform configuration rosplatform help : print this help information rosplatform list : list available eros and user-defined platforms rosplatform select : interactively select a platform configuration rosplatform select <str> : directly select the specified platform configuration rosplatform validate : attempt to validate a platform (not yet implemented) Description: Create/delete and manage the platform configuration for this ros environment Location of the user platform directory can be modified via --dir or more permanently via /home/snorri/.ros/eros/eros.cfg. Options: -h, --help show this help message and exit -d DIR, --dir=DIR location of the user platforms directory.
Creation, and deletion are interactive, selection also if you do not supply an argument. You will be prompted for the required actions.
Under the Hood
rosconfig.cmake
Practically, this manages what is saved in the global ros config file $ROS_ROOT/rosconfig.cmake.
Platform Libraries
There exist several pre-made platform configuration modules for popular configurations in the eros_platforms package. Alternatively, you can create and add platform modules to your own user-defined library.