BinghamtonRover / BurtOS-2

Base station/rover computer apps and libraries for the Binghamton University Rover Team
3 stars 0 forks source link

Initialize CMake files, base station dependencies, and placeholder programs #1

Closed superdan-t closed 3 years ago

superdan-t commented 3 years ago

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 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.