The new software collection will use CMake for better cross-platform compatibility and dependency management. Set up a framework by creating a CMake project in the root. External dependencies should be added to an ext subdirectory of the root. Our applications and libraries will be in the src subdirectory. The src directory does not need its own CMakeLists since different platforms (Raspberry Pi vs. desktop) may exclude some, and this behavior will be easier to manage from the root CMakeLists.txt.
Dependencies
The base station requires NanoGUI and GLFW. Add the active NanoGUI repository to ext as a git submodule. Configure NanoGUI in the root CMakeLists.txt as described in the default configurations. Additionally, set NanoGUI to build as a static link by shutting off the shared option. NanoGUI includes GLFW, but make sure GLFW and GL can be included in the base station.
Base Station Skeleton Program
To test NanoGUI/GLFW/GL, make a quick test program in src/basestation and add it to CMake. The test program may be committed to the repository for cross-platform testing; however, the GUI elements should be removed when done (the main file as a "Hello world" program may be left).
Build Options
Building the full base station and dependencies on the rover computers is unnecessary and will likely result in errors. Add a CMake option to generate the build files without any graphical elements.
Docs
Fill in the readme file with build instructions and document the no graphics option.
Scope
The new software collection will use CMake for better cross-platform compatibility and dependency management. Set up a framework by creating a CMake project in the root. External dependencies should be added to an
ext
subdirectory of the root. Our applications and libraries will be in thesrc
subdirectory. Thesrc
directory does not need its own CMakeLists since different platforms (Raspberry Pi vs. desktop) may exclude some, and this behavior will be easier to manage from the root CMakeLists.txt.Dependencies
The base station requires NanoGUI and GLFW. Add the active NanoGUI repository to
ext
as a git submodule. Configure NanoGUI in the root CMakeLists.txt as described in the default configurations. Additionally, set NanoGUI to build as a static link by shutting off the shared option. NanoGUI includes GLFW, but make sure GLFW and GL can be included in the base station.Base Station Skeleton Program
To test NanoGUI/GLFW/GL, make a quick test program in
src/basestation
and add it to CMake. The test program may be committed to the repository for cross-platform testing; however, the GUI elements should be removed when done (the main file as a "Hello world" program may be left).Build Options
Building the full base station and dependencies on the rover computers is unnecessary and will likely result in errors. Add a CMake option to generate the build files without any graphical elements.
Docs
Fill in the readme file with build instructions and document the no graphics option.