Navtech uses the CMake (documentaion here) build tool to simplify development, CMake easily allows swapping between toolchains and has built-in support for using cross compilers. It also has support for unit testing.
Navtech uses VSCode with remoting tools to allow any host operating system that can run VSCode to build and cross compile projects that will run on NavOS devices
Remote - SSH (Microsoft) - If using Server/VM based Ubuntu
Remote - WSL (Microsoft) - If using WSL based Ubuntu
CMake Tools - (vector-of-bool)
VSCode CMake Basic Setup
cmake: Scan for Kits
cmake: Edit user-local CMake kits
Add this to the file
"name": "GCC for arm-navtech-linux-gnueabihf 9.3.0",
"toolchainFile": "/home/<your username>/toolchains/arm-navtech-linux-gnueabihf_sdk-buildroot//share/buildroot/toolchainfile.cmake",
"C": "/home/<your username>/toolchains/arm-navtech-linux-gnueabihf_sdk-buildroot//bin/arm-buildroot-linux-gnueabihf-gcc",
"CXX": "/home/<your username>/toolchains/arm-navtech-linux-gnueabihf_sdk-buildroot//bin/arm-buildroot-linux-gnueabihf-g++"
cmake: Select a Kit - Choose GCC for x86_64-linux-gnu 9.3.0 or GCC for arm-buildroot-linux-gnueabihf 9.3.0
CMake Test to prove both x86_64 and ARM Hard Float Compiler work