esphome/esphome/core/macros.h
Otto Winter ac0d921413
ESP-IDF support and generic target platforms (#2303)
* Socket refactor and SSL

* esp-idf temp

* Fixes

* Echo component and noise

* Add noise API transport support

* Updates

* ESP-IDF

* Complete

* Fixes

* Fixes

* Versions update

* New i2c APIs

* Complete i2c refactor

* SPI migration

* Revert ESP Preferences migration, too complex for now

* OTA support

* Remove echo again

* Remove ssl again

* GPIOFlags updates

* Rename esphal and ICACHE_RAM_ATTR

* Make ESP32 arduino compilable again

* Fix GPIO flags

* Complete pin registry refactor and fixes

* Fixes to make test1 compile

* Remove sdkconfig file

* Ignore sdkconfig file

* Fixes in reviewing

* Make test2 compile

* Make test4 compile

* Make test5 compile

* Run clang-format

* Fix lint errors

* Use esp-idf APIs instead of btStart

* Another round of fixes

* Start implementing ESP8266

* Make test3 compile

* Guard esp8266 code

* Lint

* Reformat

* Fixes

* Fixes v2

* more fixes

* ESP-IDF tidy target

* Convert ARDUINO_ARCH_ESPxx

* Update WiFiSignalSensor

* Update time ifdefs

* OTA needs millis from hal

* RestartSwitch needs delay from hal

* ESP-IDF Uart

* Fix OTA blank password

* Allow setting sdkconfig

* Fix idf partitions and allow setting sdkconfig from yaml

* Re-add read/write compat APIs and fix esp8266 uart

* Fix esp8266 store log strings in flash

* Fix ESP32 arduino preferences not initialized

* Update ifdefs

* Change how sdkconfig change is detected

* Add checks to ci-custom and fix them

* Run clang-format

* Add esp-idf clang-tidy target and fix errors

* Fixes from clang-tidy idf round 2

* Fixes from compiling tests with esp-idf

* Run clang-format

* Switch test5.yaml to esp-idf

* Implement ESP8266 Preferences

* Lint

* Re-do PIO package version selection a bit

* Fix arduinoespressif32 package version

* Fix unit tests

* Lint

* Lint fixes

* Fix readv/writev not defined

* Fix graphing component

* Re-add all old options from core/config.py

Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2021-09-20 11:47:51 +02:00

56 lines
2.4 KiB
C

#pragma once
#define VERSION_CODE(major, minor, patch) ((major) << 16 | (minor) << 8 | (patch))
#if defined(USE_ESP8266)
#include <core_version.h>
#if defined(ARDUINO_ESP8266_MAJOR) && defined(ARDUINO_ESP8266_MINOR) && defined(ARDUINO_ESP8266_REVISION) // v3.0.1+
#define ARDUINO_VERSION_CODE VERSION_CODE(ARDUINO_ESP8266_MAJOR, ARDUINO_ESP8266_MINOR, ARDUINO_ESP8266_REVISION)
#elif ARDUINO_ESP8266_GIT_VER == 0xefb0341a // version defines were screwed up in v3.0.0
#define ARDUINO_VERSION_CODE VERSION_CODE(3, 0, 0)
#elif defined(ARDUINO_ESP8266_RELEASE_2_7_4)
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 7, 4)
#elif defined(ARDUINO_ESP8266_RELEASE_2_7_3)
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 7, 3)
#elif defined(ARDUINO_ESP8266_RELEASE_2_7_2)
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 7, 2)
#elif defined(ARDUINO_ESP8266_RELEASE_2_7_1)
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 7, 1)
#elif defined(ARDUINO_ESP8266_RELEASE_2_7_0)
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 7, 0)
#elif defined(ARDUINO_ESP8266_RELEASE_2_6_3)
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 6, 3)
#elif defined(ARDUINO_ESP8266_RELEASE_2_6_2)
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 6, 2)
#elif defined(ARDUINO_ESP8266_RELEASE_2_6_1)
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 6, 1)
#elif defined(ARDUINO_ESP8266_RELEASE_2_5_2)
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 5, 2)
#elif defined(ARDUINO_ESP8266_RELEASE_2_5_1)
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 5, 1)
#elif defined(ARDUINO_ESP8266_RELEASE_2_5_0)
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 5, 0)
#elif defined(ARDUINO_ESP8266_RELEASE_2_4_2)
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 4, 2)
#elif defined(ARDUINO_ESP8266_RELEASE_2_4_1)
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 4, 1)
#elif defined(ARDUINO_ESP8266_RELEASE_2_4_0)
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 4, 0)
#elif defined(ARDUINO_ESP8266_RELEASE_2_3_0)
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 3, 0)
#else
#warning "Could not determine Arduino framework version, update esphome/core/macros.h!"
#endif
#elif defined(USE_ESP32_FRAMEWORK_ARDUINO)
#if defined(IDF_VER) // identifies v2, needed since v1 doesn't have the esp_arduino_version.h header
#include <esp_arduino_version.h>
#define ARDUINO_VERSION_CODE \
VERSION_CODE(ESP_ARDUINO_VERSION_MAJOR, ESP_ARDUINO_VERSION_MINOR, ESP_ARDUINO_VERSION_PATH)
#else
#define ARDUINO_VERSION_CODE VERSION_CODE(1, 0, 0) // there are no defines identifying minor/patch version
#endif
#endif