diff --git a/src/HAP.cpp b/src/HAP.cpp index ea031a3..fe6c82e 100644 --- a/src/HAP.cpp +++ b/src/HAP.cpp @@ -24,6 +24,8 @@ * SOFTWARE. * ********************************************************************************/ + +#include "version.h" #include #include diff --git a/src/HomeSpan.cpp b/src/HomeSpan.cpp index d5d7398..413e5ec 100644 --- a/src/HomeSpan.cpp +++ b/src/HomeSpan.cpp @@ -24,6 +24,8 @@ * SOFTWARE. * ********************************************************************************/ + +#include "version.h" #include #include diff --git a/src/HomeSpan.h b/src/HomeSpan.h index 94ad261..333380c 100644 --- a/src/HomeSpan.h +++ b/src/HomeSpan.h @@ -27,9 +27,7 @@ #pragma once -#ifndef ARDUINO_ARCH_ESP32 -#error ERROR: HOMESPAN IS ONLY AVAILABLE FOR ESP32 MICROCONTROLLERS! -#endif +#include "version.h" #pragma GCC diagnostic ignored "-Wpmf-conversions" // eliminates warning messages from use of pointers to member functions to detect whether update() and loop() are overridden by user #pragma GCC diagnostic ignored "-Wunused-result" // eliminates warning message regarded unused result from call to crypto_scalarmult_curve25519() diff --git a/src/Network.cpp b/src/Network.cpp index ea024bb..bf9ee39 100644 --- a/src/Network.cpp +++ b/src/Network.cpp @@ -24,6 +24,8 @@ * SOFTWARE. * ********************************************************************************/ + +#include "version.h" #include diff --git a/src/Settings.h b/src/Settings.h index a94c3c1..56e96a6 100644 --- a/src/Settings.h +++ b/src/Settings.h @@ -24,41 +24,9 @@ * SOFTWARE. * ********************************************************************************/ - -// USER-DEFINED SETTINGS AND REFERENCE ENUMERATION CLASSES - -#include #pragma once -////////////////////////////////////////////////////// -// HomeSpan Version // - -#define HS_MAJOR 1 -#define HS_MINOR 9 -#define HS_PATCH 1 - -#define STRINGIFY(x) _STR(x) -#define _STR(x) #x - -#define HOMESPAN_VERSION STRINGIFY(HS_MAJOR) "." STRINGIFY(HS_MINOR) "." STRINGIFY(HS_PATCH) - -#define VERSION(major,minor,patch) major*10000+minor*100+patch - -#ifndef REQUIRED - #define REQUIRED 0 -#endif - -#if (REQUIRED>VERSION(HS_MAJOR,HS_MINOR,HS_PATCH)) - #error THIS SKETCH REQUIRES A LATER VERSION OF THE HOMESPAN LIBRARY -#endif - -#define ARDUINO_ESP_VERSION STRINGIFY(ESP_ARDUINO_VERSION_MAJOR) "." STRINGIFY(ESP_ARDUINO_VERSION_MINOR) "." STRINGIFY(ESP_ARDUINO_VERSION_PATCH) - -#if ESP_ARDUINO_VERSION_MAJOR<2 - #error HOMESPAN REQUIRES VERSION 2 OF THE ARDUINO ESP32 LIBRARY -#endif - ////////////////////////////////////////////////////// // DEFAULT SETTINGS // diff --git a/src/version.h b/src/version.h new file mode 100644 index 0000000..953e596 --- /dev/null +++ b/src/version.h @@ -0,0 +1,67 @@ +/********************************************************************************* + * MIT License + * + * Copyright (c) 2020-2024 Gregg E. Berman + * + * https://github.com/HomeSpan/HomeSpan + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + ********************************************************************************/ + +#pragma once + +////////////////////////////////////////////////////// +// HomeSpan Version // + +#define HS_MAJOR 1 +#define HS_MINOR 9 +#define HS_PATCH 1 + +////////////////////////////////////////////////////// + +#ifndef ARDUINO_ARCH_ESP32 + #error ERROR: HOMESPAN IS ONLY AVAILABLE FOR ESP32 MICROCONTROLLERS! + #include +#endif + +#include + +#if ESP_ARDUINO_VERSION_MAJOR!=2 + #error ERROR: HOMESPAN REQUIRES VERSION 2 OF THE ARDUINO ESP32 LIBRARY. HOMESPAN IS NOT COMPATIBLE WITH VERSION 1 OR VERSION 3 + #include +#endif + +#define STRINGIFY(x) _STR(x) +#define _STR(x) #x + +#define HOMESPAN_VERSION STRINGIFY(HS_MAJOR) "." STRINGIFY(HS_MINOR) "." STRINGIFY(HS_PATCH) + +#define VERSION(major,minor,patch) major*10000+minor*100+patch + +#ifndef REQUIRED + #define REQUIRED 0 +#endif + +#if (REQUIRED>VERSION(HS_MAJOR,HS_MINOR,HS_PATCH)) + #error ERROR: THIS SKETCH REQUIRES A LATER VERSION OF THE HOMESPAN LIBRARY + #include +#endif + +#define ARDUINO_ESP_VERSION STRINGIFY(ESP_ARDUINO_VERSION_MAJOR) "." STRINGIFY(ESP_ARDUINO_VERSION_MINOR) "." STRINGIFY(ESP_ARDUINO_VERSION_PATCH)