How to reduce time consumed by Building/Compiling during Software Development?


I have been using PX4 for a while to make custom drones but just recently started delving more into the software development.

I have followed the instructions outlined in the PX4 developer guide and have successfully reached the Module Template stage. For the most part, everything is going according to the instructions.

As expected, once you duplicate the template module and add it to the necessary CMake files so that it is included during the Build Process, the Firmware no longer compiles/builds. This is because the template files have various basic errors such as unused variables and no inputs or outputs.

Since I am not familiar with the code, I was planning on going through the code line-by-line and going through every compile error until I fully understood the code and had a functional working module. (I would undoubtedly have to post questions here occasionally if there was a compile error I could not understand.) There is no problem with this, except building the code takes a long time and it would be nice if there was a way to speed up the Build process for software development

Keeping that in mind, here are my questions.

  1. is there way for the system to not rebuild the whole Firmware? and instead just the part that has changed? I am using Qt Creator to build and flash the Firmware and below you will find my build settings.

  1. Is there a way to just build the module I am working on, and not the entire Firmware?

These are just guiding questions. I would appreciate any advice on how to make compiling less time consuming during module/software development.

Thank you.

Solved~ish so I thought I’d share my perspective here in case anyone ran across the same issue.

I now realize that my question/issue is not as relevant as I thought.

I did not realize how much of the development was done offboard, which means independent from the firmware and in fact runs on the Companion Computer. These algorithms use MAVROS or another protocol to communicate with the flight controller. In other words, most developer needs can be accomplished through offboard algorithms and developers do not need to recompile the firmware to test out offboard algorithms.