Bluenet is the in-house firmware on Crownstone hardware. Functions: switching, dimming, energy monitoring, presence detection, indoor localization, switchcraft.
CMake is a cross-platform meta build tool that generates files that can be used by build tools. It is possible to generate a Makefile, a Ninja file, or project files for Visual Studio, Xcode, Eclipse, Sublime, etc. It is important to realize that you should run cmake only once. Subsequently you can run e.g. make multiple times. Each time make should only rebuild the files of which the dependencies have changed. It is worthwhile to also use >3.0.0 features and do it right.
One of the issues we have to cope with is the diversity of boards we want to build for. We would like to generate a Makefile (or other file) that is able to generate the binaries for each of these boards.
Another issue is the bootloader. We would like to be able to build all relevant code in one sweep for a particular board. This means that the bootloader and the softdevice also should be built for that board. If we run make again, the dependencies should be tracked properly.
Instead of cmake it is also possible to use e.g. scons. An interesting option is to actually immediately integrate with platform.io.
Related to https://github.com/crownstone/bluenet/issues/55, but different.
CMake is a cross-platform meta build tool that generates files that can be used by build tools. It is possible to generate a Makefile, a Ninja file, or project files for Visual Studio, Xcode, Eclipse, Sublime, etc. It is important to realize that you should run
cmake
only once. Subsequently you can run e.g.make
multiple times. Each timemake
should only rebuild the files of which the dependencies have changed. It is worthwhile to also use >3.0.0 features and do it right.One of the issues we have to cope with is the diversity of boards we want to build for. We would like to generate a Makefile (or other file) that is able to generate the binaries for each of these boards.
Another issue is the bootloader. We would like to be able to build all relevant code in one sweep for a particular board. This means that the bootloader and the softdevice also should be built for that board. If we run
make
again, the dependencies should be tracked properly.Instead of
cmake
it is also possible to use e.g.scons
. An interesting option is to actually immediately integrate with platform.io.We can then specify the following environments: