* [PIO build] Update build scripts for scons 4.5.x
* [Build] Fix build error due to strange cast of double type in rules
* [Build] Work-around for new ESP8266 macro of round()
Whoever thought it would be a good idea to make round() an explicit cast to `long`....
* [Build ESP8266] Replace calls to round()
* [Build] Use HWrandom to overcome build issues
* [Build] Fix missing include
* [Build] Remove extern "C" to allow for (C++) function overloading
* [Build] include ESPEasy_common.h instead of Arduino.h where possible
* [Cleanup] Moving not commonly needed code out of ESPEasy_common.h
* [Build] Remove "Helpers" folder from concat script
* [Build] Include ESPEasy_common.h instead of ESPEasy_config.h
* [Build] Add Helpers folder to concat .cpp for ESP8266
* [Build] Add ESPEasyCore to concat cpp & split global RulesCalculate obj
* [Build test] Disable lots of plugins + not concat Helpers/*.cpp
* [Build test] Disable P037 to test build failures
* [Build test] Undef round right after include <Arduino.h>
* [Build] Revert disabling plugins + concat Helpers/*.cpp
* [Build] Include cmath after Arduino.h to redefine round()
* [Build] Fix ESP32 build error
* [Build] Add ESP32_CLASSIC define for ESP32 IR build
In order to be able to build in Windows, we need to concatenate all .cpp files
in some folders to reduce the number of compiled object files.
This is needed due to the limitation of Windows to have a command line longer than 32767 characters.
The linker command was becoming longer than this maximum.
However the DataStructs folder does have at least one templated .cpp file.
Since you may need to include a .cpp file if it contains a templated class,
the DataStruct folder could not be concatenated into a single .cpp file.
Therefore the templated class(es) will be stored in a folder postfixed with
_templ