
It can be ported to and build everywhere where a C++ compiler is available. The bottom line is, it is just a C++ program. Soon there might be ports to teensy or other hardware. To me it seems that Kaleidoscope is defined more by its core structure and plugins than by the fact that it currently uses Arduino under the hood.
KDEVELOP ARDUINO SOFTWARE
Quite often software outlives its initial platform and it is wise to anticipate that. Even though the Model 01 currently uses Arduino as a platform, nobody can tell what is going to last longer, Kaleidoscope or Arduino. Using the term Arduino Library too excessively does not seem to be a good idea.

Stroustrup and friends have to deal with the same problems as we do, i.e. It is right, though, that future C++ will have a new concept that might be called modules. At least slightly longer than the term Arduino Library. Nope, the term module is very old and modular programming has been around for ages. Terminology (plugin, module, project, etc.)Īs I understand it, ‘modules’ are a newish c++ core feature. Which raises the question, which wheel was invented first? The mere thing I did, is wrapping the, in my eyes, more suitable wheel in a way to make it usable to build Kaleidoscope and to provide advanced functionality that was actually missing But as you pointed out, Arduino-CMake was there even before arduino-builder became a standalone tool. In other places I mentioned, that I certainly hate reinventing the wheel.
KDEVELOP ARDUINO WINDOWS
If Windows and OSX binaries would be added to the Kaleidoscope repository, I could easily make Kaleidoscope-CMake support the astyle-target in a platform independent manner. Build targets like make astyle require the astyle binary which is currently only bundled together with the Kaleidoscope project as a Linux version. I could not make everything supported by kaleidoscope-builder truly portable. But it sometimes makes me angry, when I find non-portable open-source tools that are Windows-only. Just to make this clear, I am a hardcore Linux user.
KDEVELOP ARDUINO CODE
And why shouldn’t Windows users be able to use their favorite IDE for code development instead of the pretty limited Arduino IDE? Isn’t it one of the major advantages of the Arduino IDE, that anybody can run it on every platform? So, why would we want to force advanced users to use Unix-compatible platforms or to run Cygwin on Windows, just to be able to use the GNU make based build system? Don’t Windows users deserve to use the advanced features like make astyle, too. I thought the last point, platform independentness, to be quite important, too. Parallel builds are not supported by arduino-builder, as far as I can see, at least it is not by kaleidoscope-builder. I never do anything else then at least make -j 8 when I build the firmware (with Kaleidoscope-CMake). Actually, compiling is one of the processes that can most easily be parallelized. Why not use them for compiling as they are there. That really pays off, even for small projects with a small amount of files to compile.Įverybody nowadays has multi-core processors. Moreover, those that have tried Ninja in comparison to GNU make will confirm that it is pleasantly faster in determining what needs to be compiled, when e.g. Kaleidoscope-CMake ensures that using any underlying build system on any platform will build only the necessary bits. And then, they are still not done as they need to fix the run-time errors and then compile again…and again…and again… Even very skilled programmers need to run the compile process several times before they get rid of all syntax errors. Kaleidoscope builder currently compiles the whole firmware every time which is a tremendous waste of time and energy that sums up. This is usually acceptable, as tools like GNU make try to determine what actually needs to be compiled. When developing C++ code, the compile overhead that comes with compile-modify-compile cycles sums up heavily.

make astyle, are available with Kaleidoscope-CMake.ĭetailed usage information is provided here. So most of the make targets that you are used to, such as e.g. I couldn’t resist the temptation to port all of kaleidoscope_builder’s features. Testers working on other platforms are warmly welcome. Kaleidoscope-CMake was developed under Linux. elf files are compared to assert identity of the contained symbols. Currently, the stock firmware is build with Kaleidoscope-CMake and the stock GNU make build system.
