From de8108648f487c284a10d66f8e16475790f01876 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Fri, 22 Apr 2016 17:33:00 +0100 Subject: [PATCH] Added a versioning system to the config files --- Marlin/Configuration.h | 13 +++++++++++++ Marlin/Configuration_adv.h | 13 +++++++++++++ Marlin/SanityCheck.h | 14 ++++++++++++++ Marlin/Version.h | 10 ++++++++++ 4 files changed, 50 insertions(+) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 502690ada..1c34d5976 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -38,6 +38,19 @@ #ifndef CONFIGURATION_H #define CONFIGURATION_H +/** + * + * *********************************** + * ** ATTENTION TO ALL DEVELOPERS ** + * *********************************** + * + * You must increment this version number for every significant change such as, + * but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option. + * + * Note: Update also Default_Version.h ! + */ +#define CONFIGURATION_H_VERSION 1 + #include "boards.h" #include "macros.h" diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 952da0fa7..328df8eef 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -33,6 +33,19 @@ #ifndef CONFIGURATION_ADV_H #define CONFIGURATION_ADV_H +/** + * + * *********************************** + * ** ATTENTION TO ALL DEVELOPERS ** + * *********************************** + * + * You must increment this version number for every significant change such as, + * but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option. + * + * Note: Update also Default_Version.h ! + */ +#define CONFIGURATION_ADV_H_VERSION 1 + #include "Conditionals.h" // @section temperature diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h index a913cb1b0..8d90554e5 100644 --- a/Marlin/SanityCheck.h +++ b/Marlin/SanityCheck.h @@ -38,6 +38,20 @@ #error "Versions of Arduino IDE prior to 1.6.0 are no longer supported, please update your toolkit." #endif +/** + * We try our best to include sanity checks for all the changes configuration + * directives because people have a tendency to use outdated config files with + * the bleding edge source code, but sometimes this is not enough. This check + * will force a minimum config file revision, otherwise Marlin will not build. + */ +#if ! defined(CONFIGURATION_H_VERSION) || CONFIGURATION_H_VERSION < REQUIRED_CONFIGURATION_H_VERSION + #error You are using an old Configuration.h file, updated it before building Marlin. +#endif + +#if ! defined(CONFIGURATION_ADV_H_VERSION) || CONFIGURATION_ADV_H_VERSION < REQUIRED_CONFIGURATION_ADV_H_VERSION + #error You are using an old Configuration_adv.h file, updated it before building Marlin. +#endif + /** * Marlin release, version and default string */ diff --git a/Marlin/Version.h b/Marlin/Version.h index 68f3f7604..edf1a9999 100644 --- a/Marlin/Version.h +++ b/Marlin/Version.h @@ -44,6 +44,16 @@ */ #define STRING_DISTRIBUTION_DATE "2016-04-27 12:00" +/** + * Required minimum Configuration.h and Configuration_adv.h file versions. + * + * You must increment this version number for every significant change such as, + * but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option on + * the configuration files. + */ +#define REQUIRED_CONFIGURATION_H_VERSION 1 +#define REQUIRED_CONFIGURATION_ADV_H_VERSION 1 + /** * @todo: Missing documentation block */