From 170f7e8a4569f30dcbf423f39b858a015da2c1f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Fri, 22 Apr 2016 16:07:26 +0100 Subject: [PATCH] Rework Marlin's versioning system --- .../bin/generate_version_header_for_marlin | 10 ++- Marlin/Configuration.h | 2 +- Marlin/Default_Version.h | 36 --------- Marlin/SanityCheck.h | 35 +++++++++ Marlin/Version.h | 74 +++++++++++++++++++ Marlin/language.h | 39 ++++------ 6 files changed, 132 insertions(+), 64 deletions(-) delete mode 100644 Marlin/Default_Version.h create mode 100644 Marlin/Version.h diff --git a/LinuxAddons/bin/generate_version_header_for_marlin b/LinuxAddons/bin/generate_version_header_for_marlin index a7bef9a5a2..7160b77786 100755 --- a/LinuxAddons/bin/generate_version_header_for_marlin +++ b/LinuxAddons/bin/generate_version_header_for_marlin @@ -9,8 +9,16 @@ echo " * It does not get committed to the repository" >>"$OUTFILE" echo " */" >>"$OUTFILE" echo "" >>"$OUTFILE" +echo "#define PROTOCOL_VERSION \"1.0\"" >>"$OUTFILE" +echo "#define DEFAULT_SOURCE_URL \"https://github.com/MarlinFirmware/Marlin\"" >>"$OUTFILE" +echo "#define DEFAULT_MACHINE_NAME \"Travis 3D Printer\"" >>"$OUTFILE" +echo "#define DEFAULT_MACHINE_UUID \"3442baa1-08ee-435b-8a10-99d185bd43b8\"" >>"$OUTFILE" +echo "" >>"$OUTFILE" + echo "#define BUILD_UNIX_DATETIME" `date +%s` >>"$OUTFILE" echo "#define STRING_DISTRIBUTION_DATE" `date '+"%Y-%m-%d %H:%M"'` >>"$OUTFILE" +echo "" >>"$OUTFILE" + ( set +e cd "$DIR" BRANCH=`git symbolic-ref -q --short HEAD` @@ -33,7 +41,5 @@ echo "#define STRING_DISTRIBUTION_DATE" `date '+"%Y-%m-%d %H:%M"'` >>"$OUTFILE" URL=`git config --local --get remote.origin.url | sed "sx.*github.com.xhttps://github.com/x" | sed "sx\.gitx/x"` if [ "x$URL" != "x" ] ; then echo "#define SOURCE_CODE_URL \""$URL"\"" >>"$OUTFILE" - echo "// Deprecated URL definition" >>"$OUTFILE" - echo "#define FIRMWARE_URL \""$URL"\"" >>"$OUTFILE" fi ) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 97add8a214..edbeb44ab7 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -76,7 +76,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during diff --git a/Marlin/Default_Version.h b/Marlin/Default_Version.h deleted file mode 100644 index 95f37f2553..0000000000 --- a/Marlin/Default_Version.h +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Marlin 3D Printer Firmware - * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] - * - * Based on Sprinter and grbl. - * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -/** - * This file is a placeholder for a file which could be distributed in an archive - * It takes the place of an automatically created "_Version.h" which is generated during the build process - */ - -// #error "You must specify the following parameters related to your distribution" - -#if true -#define SHORT_BUILD_VERSION "1.1.0-RCBugFix" -#define DETAILED_BUILD_VERSION "1.1.0-RCBugFix From Archive" -#define STRING_DISTRIBUTION_DATE "2016-04-16 12:00" -// It might also be appropriate to define a location where additional information can be found -// #define SOURCE_CODE_URL "http:// ..." -#endif diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h index 221c42eb50..89b77578a7 100644 --- a/Marlin/SanityCheck.h +++ b/Marlin/SanityCheck.h @@ -38,6 +38,41 @@ #error Versions of Arduino IDE prior to 1.6.0 are no longer supported, please update your toolkit. #endif +/** + * Marlin release, version and default string + */ +#ifndef SHORT_BUILD_VERSION + #error SHORT_BUILD_VERSION Information must be specified +#endif + +#ifndef DETAILED_BUILD_VERSION + #error BUILD_VERSION Information must be specified +#endif + +#ifndef STRING_DISTRIBUTION_DATE + #error STRING_DISTRIBUTION_DATE Information must be specified +#endif + +#ifndef PROTOCOL_VERSION + #error PROTOCOL_VERSION Information must be specified +#endif + +#ifndef MACHINE_NAME + #error MACHINE_NAME Information must be specified +#endif + +#ifndef SOURCE_CODE_URL + #error SOURCE_CODE_URL Information must be specified +#endif + +#ifndef DEFAULT_MACHINE_UUID + #error DEFAULT_MACHINE_UUID Information must be specified +#endif + +#ifndef WEBSITE_URL + #error WEBSITE_URL Information must be specified +#endif + /** * Dual Stepper Drivers */ diff --git a/Marlin/Version.h b/Marlin/Version.h new file mode 100644 index 0000000000..d8926d5cfd --- /dev/null +++ b/Marlin/Version.h @@ -0,0 +1,74 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * This file is the standard Marlin version identifier file, all fields can be + * overriden by the ones defined on _Version.h by using the Configuration.h + * directive USE_AUTOMATIC_VERSIONING. + */ + +/** + * Marlin release version identifier + */ +#define SHORT_BUILD_VERSION "1.1.0-RCBugFix" + +/** + * Verbose version identifier which should contain a reference to the location + * from where the binary was downloaded or the source code was compiled. + */ +#define DETAILED_BUILD_VERSION SHORT_BUILD_VERSION " (Github)" + +/** + * The STRING_DISTRIBUTION_DATE represents when the binary file was built, + * here we define this default string as the date where the latest release + * version was tagged. + */ +#define STRING_DISTRIBUTION_DATE "2016-04-16 12:00" + +/** + * @todo: Missing documentation block + */ +#define PROTOCOL_VERSION "1.0" + +/** + * Defines a generic printer name to be output to the LCD after booting Marlin. + */ +#define MACHINE_NAME "3D Printer" + +/** + * The SOURCE_CODE_URL is the location where users will find the Marlin Source + * Code which is installed on the device. In most cases —unless the manufacturer + * has a distinct Github fork— the Source Code URL should just be the main + * Marlin repository. + */ +#define SOURCE_CODE_URL "https://github.com/MarlinFirmware/Marlin" + +/** + * Default generic printer UUID. + */ +#define DEFAULT_MACHINE_UUID "cede2a2f-41a2-4748-9b12-c55c62f367ff" + +/** + * The WEBSITE_URL is the location where users can get more information such as + * documentation about a specific Marlin release. + */ +#define WEBSITE_URL "http://marlinfw.org" diff --git a/Marlin/language.h b/Marlin/language.h index 0bbae448b3..e9a30a2d7d 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -66,43 +66,32 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif -#define PROTOCOL_VERSION "1.0" - -#ifndef DEFAULT_MACHINE_NAME - #define DEFAULT_MACHINE_NAME "3D Printer" +#ifdef DEFAULT_SOURCE_CODE_URL + #undef SOURCE_CODE_URL + #define SOURCE_CODE_URL DEFAULT_SOURCE_CODE_URL #endif #ifdef CUSTOM_MACHINE_NAME + #undef MACHINE_NAME #define MACHINE_NAME CUSTOM_MACHINE_NAME #else - #define MACHINE_NAME DEFAULT_MACHINE_NAME -#endif - -#ifndef DEFAULT_SOURCE_URL - /** - * The SOURCE_CODE_URL is the location where users will find the Marlin Source - * Code which is installed on the device. In most cases —unless the manufacturer - * has a distinct Github fork— the Source Code URL should just be the main - * Marlin repository. - */ - #define DEFAULT_SOURCE_URL "https://github.com/MarlinFirmware/Marlin" -#endif - -#ifndef SOURCE_CODE_URL - #define SOURCE_CODE_URL DEFAULT_SOURCE_URL -#endif - -#ifndef DETAILED_BUILD_VERSION - #error BUILD_VERSION Information must be specified + #ifdef DEFAULT_MACHINE_NAME + #undef MACHINE_NAME + #define MACHINE_NAME DEFAULT_MACHINE_NAME + #endif #endif #ifndef MACHINE_UUID - #define MACHINE_UUID "00000000-0000-0000-0000-000000000000" + #define MACHINE_UUID DEFAULT_MACHINE_UUID #endif +#ifdef DEFAULT_WEBSITE_URL + #undef WEBSITE_URL + #define WEBSITE_URL DEFAULT_WEBSITE_URL +#endif // Common LCD messages