diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 281edfa88d1a..3854040ce5e3 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -2560,7 +2560,7 @@ /** * Minimum stepper driver pulse width (in ns) - * If undefined, these defaults (from Conditionals_adv.h) apply: + * If undefined, these defaults (from Conditionals-4-adv.h) apply: * 100 : Minimum for TMC2xxx stepper drivers * 500 : Minimum for LV8729 * 1000 : Minimum for A4988 and A5984 stepper drivers @@ -2574,7 +2574,7 @@ /** * Maximum stepping rate (in Hz) the stepper driver allows - * If undefined, these defaults (from Conditionals_adv.h) apply: + * If undefined, these defaults (from Conditionals-4-adv.h) apply: * 5000000 : Maximum for TMC2xxx stepper drivers * 1000000 : Maximum for LV8729 stepper driver * 500000 : Maximum for A4988 stepper driver diff --git a/Marlin/src/inc/Conditionals_axes.h b/Marlin/src/inc/Conditionals-1-axes.h similarity index 98% rename from Marlin/src/inc/Conditionals_axes.h rename to Marlin/src/inc/Conditionals-1-axes.h index 5a79d2f3eb97..1d1b21e0fd1b 100644 --- a/Marlin/src/inc/Conditionals_axes.h +++ b/Marlin/src/inc/Conditionals-1-axes.h @@ -22,10 +22,16 @@ #pragma once /** - * Conditionals_axes.h + * Conditionals-1-axes.h * Conditionals that need to be set before Configuration_adv.h or pins.h */ +//======================================================== +// Get requirements for the benefit of IntelliSense, etc. +// +#include "MarlinConfigPre-1-axes.h" +//======================================================== + /** * Extruders have some combination of stepper motors and hotends * so we separate these concepts into the defines: diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals-2-LCD.h similarity index 99% rename from Marlin/src/inc/Conditionals_LCD.h rename to Marlin/src/inc/Conditionals-2-LCD.h index 1d2704d8a66a..cc01e93aa7f8 100644 --- a/Marlin/src/inc/Conditionals_LCD.h +++ b/Marlin/src/inc/Conditionals-2-LCD.h @@ -22,10 +22,16 @@ #pragma once /** - * Conditionals_LCD.h + * Conditionals-2-LCD.h * Conditionals that need to be set before Configuration_adv.h or pins.h */ +//======================================================== +// Get requirements for the benefit of IntelliSense, etc. +// +#include "Conditionals-1-axes.h" +//======================================================== + // Support for SD Card and other file storage #if ENABLED(SDSUPPORT) #define HAS_MEDIA 1 diff --git a/Marlin/src/inc/Conditionals_etc.h b/Marlin/src/inc/Conditionals-3-etc.h similarity index 98% rename from Marlin/src/inc/Conditionals_etc.h rename to Marlin/src/inc/Conditionals-3-etc.h index 90002af3c8b3..a70582657a82 100644 --- a/Marlin/src/inc/Conditionals_etc.h +++ b/Marlin/src/inc/Conditionals-3-etc.h @@ -22,10 +22,16 @@ #pragma once /** - * Conditionals_etc.h + * Conditionals-3-etc.h * Conditionals that need to be set before Configuration_adv.h or pins.h */ +//======================================================== +// Get requirements for the benefit of IntelliSense, etc. +// +#include "Conditionals-2-LCD.h" +//======================================================== + #ifndef STRING_CONFIG_H_AUTHOR #define STRING_CONFIG_H_AUTHOR "(anonymous)" #endif diff --git a/Marlin/src/inc/Conditionals_adv.h b/Marlin/src/inc/Conditionals-4-adv.h similarity index 99% rename from Marlin/src/inc/Conditionals_adv.h rename to Marlin/src/inc/Conditionals-4-adv.h index 234f146e7bf4..31c430a30d4f 100644 --- a/Marlin/src/inc/Conditionals_adv.h +++ b/Marlin/src/inc/Conditionals-4-adv.h @@ -22,10 +22,16 @@ #pragma once /** - * Conditionals_adv.h + * Conditionals-4-adv.h * Conditionals set before pins.h and which depend on Configuration_adv.h. */ +//======================================================== +// Get requirements for the benefit of IntelliSense, etc. +// +#include "MarlinConfigPre-4-adv.h" +//======================================================== + #if ENABLED(MARLIN_SMALL_BUILD) #undef EEPROM_CHITCHAT #undef CAPABILITIES_REPORT diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals-5-post.h similarity index 99% rename from Marlin/src/inc/Conditionals_post.h rename to Marlin/src/inc/Conditionals-5-post.h index d5340647d1ba..df6efb1ed630 100644 --- a/Marlin/src/inc/Conditionals_post.h +++ b/Marlin/src/inc/Conditionals-5-post.h @@ -22,10 +22,16 @@ #pragma once /** - * Conditionals_post.h + * Conditionals-5-post.h * Internal defines that depend on Configurations and Pins but are not user-editable. */ +//======================================================== +// Get requirements for the benefit of IntelliSense, etc. +// +#include "MarlinConfigPre-5-post.h" +//======================================================== + #ifdef GITHUB_ACTIONS // Extras for CI testing #endif @@ -50,7 +56,7 @@ // Determine which type of 'EEPROM' is in use #if ENABLED(EEPROM_SETTINGS) // EEPROM type may be defined by compile flags, configs, HALs, or pins - // Set additional flags to let HALs choose in their Conditionals_post.h + // Set additional flags to let HALs choose in their Conditionals-5-post.h #if ANY(FLASH_EEPROM_EMULATION, SRAM_EEPROM_EMULATION, SDCARD_EEPROM_EMULATION, QSPI_EEPROM) #define USE_EMULATED_EEPROM 1 #elif ANY(I2C_EEPROM, SPI_EEPROM) diff --git a/Marlin/src/inc/Conditionals_type.h b/Marlin/src/inc/Conditionals-6-type.h similarity index 86% rename from Marlin/src/inc/Conditionals_type.h rename to Marlin/src/inc/Conditionals-6-type.h index e798a2d93473..e14c6d7ce501 100644 --- a/Marlin/src/inc/Conditionals_type.h +++ b/Marlin/src/inc/Conditionals-6-type.h @@ -22,11 +22,17 @@ #pragma once /** - * Conditionals_type.h + * Conditionals-6-type.h * Internal defines that depend on Configurations and Pins but are not user-editable. * Define conditionals in this file if they depend on core/types.h. */ +//======================================================== +// Get requirements for the benefit of IntelliSense, etc. +// +#include "MarlinConfigPre-6-type.h" +//======================================================== + #ifdef GITHUB_ACTIONS // Extras for CI testing #endif diff --git a/Marlin/src/inc/MarlinConfig.h b/Marlin/src/inc/MarlinConfig.h index 807082d839d6..b0a0434cdd26 100644 --- a/Marlin/src/inc/MarlinConfig.h +++ b/Marlin/src/inc/MarlinConfig.h @@ -25,30 +25,11 @@ // Prefix header for all Marlin sources // -#include "MarlinConfigPre.h" - -#ifdef __MARLIN_DEPS__ - #include "../HAL/shared/fauxpins.h" -#else - #include "../HAL/HAL.h" -#endif - -#include "../pins/pins.h" +#include "MarlinConfigPre-6-type.h" // Include even with __MARLIN_DEPS__ #ifndef __MARLIN_DEPS__ - #include HAL_PATH(.., timers.h) - #include HAL_PATH(.., spi_pins.h) -#endif - -#include "Conditionals_post.h" - -#ifndef __MARLIN_DEPS__ - - #include HAL_PATH(.., inc/Conditionals_post.h) - - #include "../core/types.h" // Ahead of sanity-checks - #include "Conditionals_type.h" + #include "Conditionals-6-type.h" #include HAL_PATH(.., inc/Conditionals_type.h) #include "Changes.h" diff --git a/Marlin/src/inc/MarlinConfigPre-1-axes.h b/Marlin/src/inc/MarlinConfigPre-1-axes.h new file mode 100644 index 000000000000..4bc16e4e6ded --- /dev/null +++ b/Marlin/src/inc/MarlinConfigPre-1-axes.h @@ -0,0 +1,53 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2024 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 . + * + */ +#pragma once + +#ifndef __MARLIN_FIRMWARE__ +#define __MARLIN_FIRMWARE__ +#endif + +#if __has_include("../../Config.h") + #include "../../Config.h" +#else + #define USE_STD_CONFIGS 1 +#endif + +#include + +#ifndef __MARLIN_DEPS__ + #include "../HAL/platforms.h" +#endif + +#include "../core/macros.h" +#include "../core/boards.h" + +#if USE_STD_CONFIGS + #include "../../Configuration.h" +#endif + +#ifdef CUSTOM_VERSION_FILE + #if __has_include(STRINGIFY(../../CUSTOM_VERSION_FILE)) + #include STRINGIFY(../../CUSTOM_VERSION_FILE) + #endif +#endif + +#include "Version.h" diff --git a/Marlin/src/inc/MarlinConfigPre-4-adv.h b/Marlin/src/inc/MarlinConfigPre-4-adv.h new file mode 100644 index 000000000000..564d68038dc5 --- /dev/null +++ b/Marlin/src/inc/MarlinConfigPre-4-adv.h @@ -0,0 +1,34 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2024 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 . + * + */ +#pragma once + +#include "Conditionals-3-etc.h" + +#ifndef __MARLIN_DEPS__ + #include HAL_PATH(.., inc/Conditionals_LCD.h) +#endif + +#include "../core/drivers.h" + +#if USE_STD_CONFIGS + #include "../../Configuration_adv.h" +#endif diff --git a/Marlin/src/inc/MarlinConfigPre-5-post.h b/Marlin/src/inc/MarlinConfigPre-5-post.h new file mode 100644 index 000000000000..77307d177bc6 --- /dev/null +++ b/Marlin/src/inc/MarlinConfigPre-5-post.h @@ -0,0 +1,37 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2024 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 . + * + */ +#pragma once + +#include "MarlinConfigPre.h" + +#ifdef __MARLIN_DEPS__ + #include "../HAL/shared/fauxpins.h" +#else + #include "../HAL/HAL.h" +#endif + +#include "../pins/pins.h" + +#ifndef __MARLIN_DEPS__ + #include HAL_PATH(.., timers.h) + #include HAL_PATH(.., spi_pins.h) +#endif diff --git a/Marlin/src/inc/MarlinConfigPre-6-type.h b/Marlin/src/inc/MarlinConfigPre-6-type.h new file mode 100644 index 000000000000..358e34a7d6eb --- /dev/null +++ b/Marlin/src/inc/MarlinConfigPre-6-type.h @@ -0,0 +1,30 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2024 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 . + * + */ +#pragma once + +#include "MarlinConfigPre-5-post.h" +#include "Conditionals-5-post.h" + +#ifndef __MARLIN_DEPS__ + #include HAL_PATH(.., inc/Conditionals_post.h) + #include "../core/types.h" // Ahead of sanity-checks +#endif diff --git a/Marlin/src/inc/MarlinConfigPre.h b/Marlin/src/inc/MarlinConfigPre.h index 5ded14f703c1..6abd9e1ea690 100644 --- a/Marlin/src/inc/MarlinConfigPre.h +++ b/Marlin/src/inc/MarlinConfigPre.h @@ -21,55 +21,13 @@ */ #pragma once -#ifndef __MARLIN_FIRMWARE__ -#define __MARLIN_FIRMWARE__ -#endif - -#if __has_include("../../Config.h") - #include "../../Config.h" -#else - #define USE_STD_CONFIGS 1 -#endif - // // Prefix header to acquire configurations // -#include - -#ifndef __MARLIN_DEPS__ - #include "../HAL/platforms.h" -#endif - -#include "../core/macros.h" -#include "../core/boards.h" - -#if USE_STD_CONFIGS - #include "../../Configuration.h" -#endif - -#ifdef CUSTOM_VERSION_FILE - #if __has_include(STRINGIFY(../../CUSTOM_VERSION_FILE)) - #include STRINGIFY(../../CUSTOM_VERSION_FILE) - #endif -#endif - -#include "Version.h" - -#include "Conditionals_axes.h" -#include "Conditionals_LCD.h" -#include "Conditionals_etc.h" - -#ifndef __MARLIN_DEPS__ - #include HAL_PATH(.., inc/Conditionals_LCD.h) -#endif - -#include "../core/drivers.h" - -#if USE_STD_CONFIGS - #include "../../Configuration_adv.h" -#endif - -#include "Conditionals_adv.h" +#include "Conditionals-1-axes.h" +#include "Conditionals-2-LCD.h" +#include "Conditionals-3-etc.h" +#include "Conditionals-4-adv.h" #ifndef __MARLIN_DEPS__ #include HAL_PATH(.., inc/Conditionals_adv.h) diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 0fda662d23a4..a072b80d18c9 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -27,6 +27,12 @@ * Test configuration values for errors at compile-time. */ +//======================================================== +// Get requirements for the benefit of IntelliSense, etc. +// +#include "MarlinConfig.h" +//======================================================== + /** * Require gcc 4.7 or newer (first included with Arduino 1.6.8) for C++11 features. */ diff --git a/Marlin/src/pins/esp32/pins_MKS_TINYBEE.h b/Marlin/src/pins/esp32/pins_MKS_TINYBEE.h index 6a8187d79207..282ac5288d6c 100644 --- a/Marlin/src/pins/esp32/pins_MKS_TINYBEE.h +++ b/Marlin/src/pins/esp32/pins_MKS_TINYBEE.h @@ -38,7 +38,7 @@ #define BOARD_WEBSITE_URL "github.com/makerbase-mks/MKS-TinyBee" #define DEFAULT_MACHINE_NAME BOARD_INFO_NAME -// MAX_EXPANDER_BITS is defined for MKS TinyBee in HAL/ESP32/inc/Conditionals_adv.h +// MAX_EXPANDER_BITS is defined for MKS TinyBee in HAL/ESP32/inc/Conditionals-4-adv.h // // Servos diff --git a/Marlin/src/pins/mega/pins_CNCONTROLS_11.h b/Marlin/src/pins/mega/pins_CNCONTROLS_11.h index d2cbc28fb4cc..b10539a4af65 100644 --- a/Marlin/src/pins/mega/pins_CNCONTROLS_11.h +++ b/Marlin/src/pins/mega/pins_CNCONTROLS_11.h @@ -149,8 +149,8 @@ #if HAS_MARLINUI_U8GLIB #define DOGLCD_A0 26 #define DOGLCD_CS 24 - #define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals_post.h - #define DOGLCD_SCK -1 + //#define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals-5-post.h + //#define DOGLCD_SCK -1 #endif #endif diff --git a/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h b/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h index 76e60b422649..5f7cc5103acd 100644 --- a/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h +++ b/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h @@ -146,8 +146,8 @@ #define TFT_BACKLIGHT_PIN PD12 #define TFT_BACKLIGHT_PWM 150 // Brightness with alt. TIM4 chan 1 (1-255) - #define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals_post.h - #define DOGLCD_SCK -1 + //#define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals-5-post.h + //#define DOGLCD_SCK -1 // Buffer for Color UI #define TFT_BUFFER_WORDS 3200 diff --git a/Marlin/src/pins/stm32f1/pins_MD_D301.h b/Marlin/src/pins/stm32f1/pins_MD_D301.h index bcede1d4be9c..c367a432f252 100644 --- a/Marlin/src/pins/stm32f1/pins_MD_D301.h +++ b/Marlin/src/pins/stm32f1/pins_MD_D301.h @@ -187,8 +187,8 @@ * to let the bootloader init the screen. */ -#define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals_post.h -#define DOGLCD_SCK -1 +//#define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals-5-post.h +//#define DOGLCD_SCK -1 // // TFT with FSMC interface diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_common.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_common.h index c280915405f9..f05706802869 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_common.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_common.h @@ -192,8 +192,8 @@ #define TFT_RESET_PIN PC6 // FSMC_RST #define TFT_BACKLIGHT_PIN PD13 - #define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals_post.h - #define DOGLCD_SCK -1 + //#define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals-5-post.h + //#define DOGLCD_SCK -1 #define TOUCH_CS_PIN PA7 // SPI2_NSS #define TOUCH_SCK_PIN PB13 // SPI2_SCK diff --git a/buildroot/share/PlatformIO/scripts/configuration.py b/buildroot/share/PlatformIO/scripts/configuration.py index c184aab8699c..4bba20c4cbf9 100755 --- a/buildroot/share/PlatformIO/scripts/configuration.py +++ b/buildroot/share/PlatformIO/scripts/configuration.py @@ -195,7 +195,7 @@ def apply_sections(cp, ckey='all'): apply_ini_by_name(cp, 'config:basic') # Apply historically Configuration_adv.h settings everywhere - # (Some of which rely on defines in 'Conditionals_LCD.h') + # (Some of which rely on defines in 'Conditionals-2-LCD.h') elif ckey in ('adv', 'advanced'): apply_ini_by_name(cp, 'config:advanced')