From 1d3ee1caba821cf595d3b0d9be638a54565c756d Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 5 Oct 2022 01:21:19 +0200 Subject: [PATCH] build: Add Configuration_var.h as a configuration wrapper Instead of including Configuration_prusa.h directly, include Configuration_var which then includes the proper variant file though a preprocessor macro. This allows to keep the existing build system intact, but also redefine at compile time the final header without having to make copies on the file system. --- Firmware/Configuration.cpp | 2 +- Firmware/Configuration.h | 2 +- Firmware/ConfigurationStore.cpp | 2 +- Firmware/Configuration_var.h | 10 ++++++++++ Firmware/config.h | 2 +- Firmware/first_lay_cal.cpp | 2 +- Firmware/messages.cpp | 4 ++-- Firmware/mmu2_power.cpp | 2 +- Firmware/pat9125.cpp | 2 +- Firmware/sm4.c | 2 +- Firmware/swi2c.c | 2 +- Firmware/temperature.cpp | 2 +- Firmware/tone04.c | 2 +- Firmware/xyzcal.cpp | 2 +- 14 files changed, 24 insertions(+), 14 deletions(-) create mode 100644 Firmware/Configuration_var.h diff --git a/Firmware/Configuration.cpp b/Firmware/Configuration.cpp index f87849285..082ac0706 100644 --- a/Firmware/Configuration.cpp +++ b/Firmware/Configuration.cpp @@ -1,5 +1,5 @@ #include "Configuration.h" -#include "Configuration_prusa.h" +#include "Configuration_var.h" const uint16_t _nPrinterType PROGMEM=PRINTER_TYPE; const char _sPrinterName[] PROGMEM=PRINTER_NAME; diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index 454ccbc10..0a5355592 100644 --- a/Firmware/Configuration.h +++ b/Firmware/Configuration.h @@ -70,7 +70,7 @@ extern PGM_P sPrinterName; #define SOURCE_TIME_EPOCH __TIME__ #endif -#include "Configuration_prusa.h" +#include "Configuration_var.h" #define FW_PRUSA3D_MAGIC "PRUSA3DFW" #define FW_PRUSA3D_MAGIC_LEN 10 diff --git a/Firmware/ConfigurationStore.cpp b/Firmware/ConfigurationStore.cpp index 0917ee181..8bc1cd5a1 100644 --- a/Firmware/ConfigurationStore.cpp +++ b/Firmware/ConfigurationStore.cpp @@ -5,7 +5,7 @@ #include "temperature.h" #include "ultralcd.h" #include "ConfigurationStore.h" -#include "Configuration_prusa.h" +#include "Configuration_var.h" #ifdef MESH_BED_LEVELING #include "mesh_bed_leveling.h" diff --git a/Firmware/Configuration_var.h b/Firmware/Configuration_var.h new file mode 100644 index 000000000..c7dab9d0a --- /dev/null +++ b/Firmware/Configuration_var.h @@ -0,0 +1,10 @@ +// Include the printer's variant configuration header +#pragma once + +// This is set by the cmake build to be able to take control of +// the variant header without breaking existing build mechanisms. +#ifndef CMAKE_CONTROL +#include "Configuration_prusa.h" +#else +#include FW_VARIANT +#endif diff --git a/Firmware/config.h b/Firmware/config.h index 358c8ab81..39888460f 100644 --- a/Firmware/config.h +++ b/Firmware/config.h @@ -2,7 +2,7 @@ #define _CONFIG_H -#include "Configuration_prusa.h" +#include "Configuration_var.h" #include "pins.h" #if (defined(VOLT_IR_PIN) && defined(IR_SENSOR)) diff --git a/Firmware/first_lay_cal.cpp b/Firmware/first_lay_cal.cpp index 5d7f0aa9b..7a848e7df 100644 --- a/Firmware/first_lay_cal.cpp +++ b/Firmware/first_lay_cal.cpp @@ -4,7 +4,7 @@ //! @brief First layer (Z offset) calibration #include "first_lay_cal.h" -#include "Configuration_prusa.h" +#include "Configuration_var.h" #include "language.h" #include "Marlin.h" #include "cmdqueue.h" diff --git a/Firmware/messages.cpp b/Firmware/messages.cpp index 2ca690691..bb6157b55 100644 --- a/Firmware/messages.cpp +++ b/Firmware/messages.cpp @@ -1,8 +1,8 @@ //messages.c #include "language.h" -//this is because we need include Configuration_prusa.h (CUSTOM_MENDEL_NAME) -#include "Configuration_prusa.h" +//this is because we need CUSTOM_MENDEL_NAME +#include "Configuration_var.h" //internationalized messages const char MSG_ALWAYS[] PROGMEM_I1 = ISTR("Always"); ////MSG_ALWAYS c=6 diff --git a/Firmware/mmu2_power.cpp b/Firmware/mmu2_power.cpp index a0359f016..ed9f8adb7 100644 --- a/Firmware/mmu2_power.cpp +++ b/Firmware/mmu2_power.cpp @@ -1,5 +1,5 @@ #include "mmu2_power.h" -#include "Configuration_prusa.h" +#include "Configuration_var.h" #include "pins.h" #include "fastio.h" #include diff --git a/Firmware/pat9125.cpp b/Firmware/pat9125.cpp index 18cf7c1ae..7a1e191c9 100644 --- a/Firmware/pat9125.cpp +++ b/Firmware/pat9125.cpp @@ -4,7 +4,7 @@ #include #include "config.h" #include -#include "Configuration_prusa.h" +#include "Configuration_var.h" #if defined(FILAMENT_SENSOR) && (FILAMENT_SENSOR_TYPE == FSENSOR_PAT9125) diff --git a/Firmware/sm4.c b/Firmware/sm4.c index 0b6f2f50c..994e016aa 100644 --- a/Firmware/sm4.c +++ b/Firmware/sm4.c @@ -9,7 +9,7 @@ #include "boards.h" #define false 0 #define true 1 -#include "Configuration_prusa.h" +#include "Configuration_var.h" #ifdef NEW_XYZCAL diff --git a/Firmware/swi2c.c b/Firmware/swi2c.c index d143ec600..032b39a83 100644 --- a/Firmware/swi2c.c +++ b/Firmware/swi2c.c @@ -4,7 +4,7 @@ #include #include #include "stdbool.h" -#include "Configuration_prusa.h" +#include "Configuration_var.h" #include "pins.h" #include "fastio.h" diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 53223d7f6..d3846db91 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -44,7 +44,7 @@ #include "adc.h" #include "ConfigurationStore.h" #include "Timer.h" -#include "Configuration_prusa.h" +#include "Configuration_var.h" #include "Prusa_farm.h" #if (ADC_OVRSAMPL != OVERSAMPLENR) diff --git a/Firmware/tone04.c b/Firmware/tone04.c index 55a0a0e9c..f9a427c32 100644 --- a/Firmware/tone04.c +++ b/Firmware/tone04.c @@ -3,7 +3,7 @@ // timer2 is used for System timer. #include "system_timer.h" -#include "Configuration_prusa.h" +#include "Configuration_var.h" #ifdef SYSTEM_TIMER_2 diff --git a/Firmware/xyzcal.cpp b/Firmware/xyzcal.cpp index acaf4f9e9..311371c98 100644 --- a/Firmware/xyzcal.cpp +++ b/Firmware/xyzcal.cpp @@ -1,6 +1,6 @@ //xyzcal.cpp - xyz calibration with image processing -#include "Configuration_prusa.h" +#include "Configuration_var.h" #ifdef NEW_XYZCAL #include "xyzcal.h"