Marlin/ini/features.ini
2024-11-18 19:18:18 -06:00

383 lines
38 KiB
INI

#
# Marlin Firmware
# PlatformIO Configuration File
#
#################################
# #
# Features Dependencies #
# #
#################################
# The order of the features matters for source-filter resolution inside of common-dependencies.py.
[features]
YHCB2004 = LiquidCrystal_AIP31068=https://github.com/ellensp/LiquidCrystal_AIP31068/archive/3fc43b7.zip, red-scorp/SoftSPIB@^1.1.1
HAS_TFT_LVGL_UI = lvgl=https://github.com/makerbase-mks/LVGL-6.1.1-MKS/archive/a3ebe98bc6.zip
build_src_filter=+<src/lcd/extui/mks_ui>
extra_scripts=download_mks_assets.py
MARLIN_TEST_BUILD = build_src_filter=+<src/tests>
POSTMORTEM_DEBUGGING = build_src_filter=+<src/HAL/shared/cpu_exception> +<src/HAL/shared/backtrace>
build_flags=-funwind-tables
MKS_WIFI_MODULE = QRCode=https://github.com/makerbase-mks/QRCode/archive/261c5a696a.zip
HAS_TRINAMIC_CONFIG = TMCStepper=https://github.com/MarlinFirmware/TMCStepper/archive/marlin-2.1.3.x.zip
build_src_filter=+<src/module/stepper/trinamic.cpp> +<src/gcode/feature/trinamic/M122.cpp> +<src/gcode/feature/trinamic/M906.cpp> +<src/gcode/feature/trinamic/M911-M914.cpp> +<src/gcode/feature/trinamic/M919.cpp>
HAS_T(RINAMIC_CONFIG|MC_SPI) = build_src_filter=+<src/feature/tmc_util.cpp>
SR_LCD_3W_NL = SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/6f53c19a8a.zip
HAS_MOTOR_CURRENT_(I2C|DAC|SPI|PWM) = build_src_filter=+<src/gcode/feature/digipot>
HAS_MOTOR_CURRENT_I2C = SlowSoftI2CMaster
build_src_filter=+<src/feature/digipot>
LIB_INTERNAL_MAX31865 = build_src_filter=+<src/libs/MAX31865.cpp>
NEOPIXEL_LED = adafruit/Adafruit NeoPixel@~1.12.3
build_src_filter=+<src/feature/leds/neopixel.cpp>
I2C_AMMETER = peterus/INA226Lib@1.1.2
build_src_filter=+<src/feature/ammeter.cpp>
USES_LIQUIDCRYSTAL = LiquidCrystal=https://github.com/MarlinFirmware/New-LiquidCrystal/archive/1.5.1.zip
USES_LIQUIDCRYSTAL_I2C = marcoschwartz/LiquidCrystal_I2C@1.1.4
USES_LIQUIDTWI2 = LiquidTWI2@1.2.7
HAS_LCDPRINT = build_src_filter=+<src/lcd/lcdprint.cpp>
HAS_MARLINUI_HD44780 = build_src_filter=+<src/lcd/HD44780>
HAS_MARLINUI_U8GLIB = marlinfirmware/U8glib-HAL@0.5.4
build_src_filter=+<src/lcd/dogm>
HAS_(FSMC|SPI|LTDC)_TFT = build_src_filter=+<src/lcd/tft_io>
I2C_EEPROM = build_src_filter=+<src/HAL/shared/eeprom_if_i2c.cpp>
SOFT_I2C_EEPROM = SlowSoftI2CMaster, SlowSoftWire=https://github.com/felias-fogg/SlowSoftWire/archive/f34d777f39.zip
SPI_EEPROM = build_src_filter=+<src/HAL/shared/eeprom_if_spi.cpp>
HAS_DWIN_E3V2|IS_DWIN_MARLINUI = build_src_filter=+<src/lcd/e3v2/common>
DWIN_CREALITY_LCD = build_src_filter=+<src/lcd/e3v2/creality>
DWIN_LCD_PROUI = build_src_filter=+<src/lcd/e3v2/proui>
DWIN_CREALITY_LCD_JYERSUI = build_src_filter=+<src/lcd/e3v2/jyersui>
IS_DWIN_MARLINUI = build_src_filter=+<src/lcd/e3v2/marlinui>
SOVOL_SV06_RTS = build_src_filter=+<src/lcd/sovol_rts>
HAS_GRAPHICAL_TFT = build_src_filter=+<src/lcd/tft> -<src/lcd/tft/fontdata> -<src/lcd/tft/ui_move_axis_screen_*.cpp>
HAS_UI_320X.+ = build_src_filter=+<src/lcd/tft/ui_move_axis_screen_320.cpp>
HAS_UI_480X.+ = build_src_filter=+<src/lcd/tft/ui_move_axis_screen_480.cpp>
HAS_UI_1024X.+ = build_src_filter=+<src/lcd/tft/ui_move_axis_screen_1024.cpp>
# Helvetica 14
TFT_FONT_HELVETICA_14 = build_src_filter=+<src/lcd/tft/fontdata/Helvetica/Helvetica_14.cpp>
# Helvetica 19
TFT_FONT_HELVETICA_19 = build_src_filter=+<src/lcd/tft/fontdata/Helvetica/Helvetica_19.cpp>
# Notosans 14
TFT_FONT_NOTOSANS_14 = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_14px/NotoSans_Medium_14.cpp> +<src/lcd/tft/fontdata/NotoSans/Medium_14px/NotoSans_Medium_Symbols_14.cpp>
TFT_FONT_NOTOSANS_14_LATIN = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_14px/NotoSans_Medium_Latin_Extended_A_14.cpp>
TFT_FONT_NOTOSANS_14_CYRIL = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_14px/NotoSans_Medium_Cyrillic_14.cpp>
TFT_FONT_NOTOSANS_14_GREEK = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_14px/NotoSans_Medium_Greek_14.cpp>
TFT_FONT_NOTOSANS_14_KATA = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_14px/NotoSans_Medium_Katakana_14.cpp>
TFT_FONT_NOTOSANS_14_KO = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_14px/NotoSans_Medium_Korean_14.cpp>
TFT_FONT_NOTOSANS_14_ZH_CN = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_14px/NotoSans_Medium_Simplified_Chinese_14.cpp>
TFT_FONT_NOTOSANS_14_ZH_TW = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_14px/NotoSans_Medium_Traditional_Chinese_14.cpp>
TFT_FONT_NOTOSANS_14_VI = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_14px/NotoSans_Medium_Vietnamese_14.cpp>
# Notosans 16
TFT_FONT_NOTOSANS_16 = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_16px/NotoSans_Medium_16.cpp> +<src/lcd/tft/fontdata/NotoSans/Medium_16px/NotoSans_Medium_Symbols_16.cpp>
TFT_FONT_NOTOSANS_16_LATIN = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_16px/NotoSans_Medium_Latin_Extended_A_16.cpp>
TFT_FONT_NOTOSANS_16_CYRIL = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_16px/NotoSans_Medium_Cyrillic_16.cpp>
TFT_FONT_NOTOSANS_16_GREEK = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_16px/NotoSans_Medium_Greek_16.cpp>
TFT_FONT_NOTOSANS_16_KATA = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_16px/NotoSans_Medium_Katakana_16.cpp>
TFT_FONT_NOTOSANS_16_KO = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_16px/NotoSans_Medium_Korean_16.cpp>
TFT_FONT_NOTOSANS_16_ZH_CN = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_16px/NotoSans_Medium_Simplified_Chinese_16.cpp>
TFT_FONT_NOTOSANS_16_ZH_TW = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_16px/NotoSans_Medium_Traditional_Chinese_16.cpp>
TFT_FONT_NOTOSANS_16_VI = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_16px/NotoSans_Medium_Vietnamese_16.cpp>
# Notosans 19
TFT_FONT_NOTOSANS_19 = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_19px/NotoSans_Medium_19.cpp> +<src/lcd/tft/fontdata/NotoSans/Medium_19px/NotoSans_Medium_Symbols_19.cpp>
TFT_FONT_NOTOSANS_19_LATIN = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_19px/NotoSans_Medium_Latin_Extended_A_19.cpp>
TFT_FONT_NOTOSANS_19_CYRIL = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_19px/NotoSans_Medium_Cyrillic_19.cpp>
TFT_FONT_NOTOSANS_19_GREEK = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_19px/NotoSans_Medium_Greek_19.cpp>
TFT_FONT_NOTOSANS_19_KATA = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_19px/NotoSans_Medium_Katakana_19.cpp>
TFT_FONT_NOTOSANS_19_KO = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_19px/NotoSans_Medium_Korean_19.cpp>
TFT_FONT_NOTOSANS_19_ZH_CN = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_19px/NotoSans_Medium_Simplified_Chinese_19.cpp>
TFT_FONT_NOTOSANS_19_ZH_TW = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_19px/NotoSans_Medium_Traditional_Chinese_19.cpp>
TFT_FONT_NOTOSANS_19_VI = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_19px/NotoSans_Medium_Vietnamese_19.cpp>
# Notosans 26
TFT_FONT_NOTOSANS_26 = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_26px/NotoSans_Medium_26.cpp> +<src/lcd/tft/fontdata/NotoSans/Medium_26px/NotoSans_Medium_Symbols_26.cpp>
TFT_FONT_NOTOSANS_26_LATIN = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_26px/NotoSans_Medium_Latin_Extended_A_26.cpp>
TFT_FONT_NOTOSANS_26_CYRIL = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_26px/NotoSans_Medium_Cyrillic_26.cpp>
TFT_FONT_NOTOSANS_26_GREEK = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_26px/NotoSans_Medium_Greek_26.cpp>
TFT_FONT_NOTOSANS_26_KATA = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_26px/NotoSans_Medium_Katakana_26.cpp>
TFT_FONT_NOTOSANS_26_KO = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_26px/NotoSans_Medium_Korean_26.cpp>
TFT_FONT_NOTOSANS_26_ZH_CN = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_26px/NotoSans_Medium_Simplified_Chinese_26.cpp>
TFT_FONT_NOTOSANS_26_ZH_TW = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_26px/NotoSans_Medium_Traditional_Chinese_26.cpp>
TFT_FONT_NOTOSANS_26_VI = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_26px/NotoSans_Medium_Vietnamese_26.cpp>
# Notosans 27
TFT_FONT_NOTOSANS_27 = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_27px/NotoSans_Medium_27.cpp> +<src/lcd/tft/fontdata/NotoSans/Medium_27px/NotoSans_Medium_Symbols_27.cpp>
TFT_FONT_NOTOSANS_27_LATIN = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_27px/NotoSans_Medium_Latin_Extended_A_27.cpp>
TFT_FONT_NOTOSANS_27_CYRIL = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_27px/NotoSans_Medium_Cyrillic_27.cpp>
TFT_FONT_NOTOSANS_27_GREEK = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_27px/NotoSans_Medium_Greek_27.cpp>
TFT_FONT_NOTOSANS_27_KATA = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_27px/NotoSans_Medium_Katakana_27.cpp>
TFT_FONT_NOTOSANS_27_KO = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_27px/NotoSans_Medium_Korean_27.cpp>
TFT_FONT_NOTOSANS_27_ZH_CN = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_27px/NotoSans_Medium_Simplified_Chinese_27.cpp>
TFT_FONT_NOTOSANS_27_ZH_TW = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_27px/NotoSans_Medium_Traditional_Chinese_27.cpp>
TFT_FONT_NOTOSANS_27_VI = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_27px/NotoSans_Medium_Vietnamese_27.cpp>
# Notosans 28
TFT_FONT_NOTOSANS_28 = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_28px/NotoSans_Medium_28.cpp> +<src/lcd/tft/fontdata/NotoSans/Medium_28px/NotoSans_Medium_Symbols_28.cpp>
TFT_FONT_NOTOSANS_28_LATIN = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_28px/NotoSans_Medium_Latin_Extended_A_28.cpp>
TFT_FONT_NOTOSANS_28_CYRIL = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_28px/NotoSans_Medium_Cyrillic_28.cpp>
TFT_FONT_NOTOSANS_28_GREEK = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_28px/NotoSans_Medium_Greek_28.cpp>
TFT_FONT_NOTOSANS_28_KATA = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_28px/NotoSans_Medium_Katakana_28.cpp>
TFT_FONT_NOTOSANS_28_KO = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_28px/NotoSans_Medium_Korean_28.cpp>
TFT_FONT_NOTOSANS_28_ZH_CN = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_28px/NotoSans_Medium_Simplified_Chinese_28.cpp>
TFT_FONT_NOTOSANS_28_ZH_TW = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_28px/NotoSans_Medium_Traditional_Chinese_28.cpp>
TFT_FONT_NOTOSANS_28_VI = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_28px/NotoSans_Medium_Vietnamese_28.cpp>
# Notosans 29
TFT_FONT_NOTOSANS_29 = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_29px/NotoSans_Medium_29.cpp> +<src/lcd/tft/fontdata/NotoSans/Medium_29px/NotoSans_Medium_Symbols_29.cpp>
TFT_FONT_NOTOSANS_29_LATIN = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_29px/NotoSans_Medium_Latin_Extended_A_29.cpp>
TFT_FONT_NOTOSANS_29_CYRIL = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_29px/NotoSans_Medium_Cyrillic_29.cpp>
TFT_FONT_NOTOSANS_29_GREEK = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_29px/NotoSans_Medium_Greek_29.cpp>
TFT_FONT_NOTOSANS_29_KATA = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_29px/NotoSans_Medium_Katakana_29.cpp>
TFT_FONT_NOTOSANS_29_KO = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_29px/NotoSans_Medium_Korean_29.cpp>
TFT_FONT_NOTOSANS_29_ZH_CN = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_29px/NotoSans_Medium_Simplified_Chinese_29.cpp>
TFT_FONT_NOTOSANS_29_ZH_TW = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_29px/NotoSans_Medium_Traditional_Chinese_29.cpp>
TFT_FONT_NOTOSANS_29_VI = build_src_filter=+<src/lcd/tft/fontdata/NotoSans/Medium_29px/NotoSans_Medium_Vietnamese_29.cpp>
# Unifont 10
TFT_FONT_UNIFONT_10 = build_src_filter=+<src/lcd/tft/fontdata/Unifont/10px/Unifont_10.cpp> +<src/lcd/tft/fontdata/Unifont/10px/Unifont_Symbols_10.cpp>
TFT_FONT_UNIFONT_10_LATIN = build_src_filter=+<src/lcd/tft/fontdata/Unifont/10px/Unifont_Latin_Extended_A_10.cpp>
TFT_FONT_UNIFONT_10_CYRIL = build_src_filter=+<src/lcd/tft/fontdata/Unifont/10px/Unifont_Cyrillic_10.cpp>
TFT_FONT_UNIFONT_10_GREEK = build_src_filter=+<src/lcd/tft/fontdata/Unifont/10px/Unifont_Greek_10.cpp>
TFT_FONT_UNIFONT_10_KATA = build_src_filter=+<src/lcd/tft/fontdata/Unifont/10px/Unifont_Katakana_10.cpp>
TFT_FONT_UNIFONT_10_KO = build_src_filter=+<src/lcd/tft/fontdata/Unifont/10px/Unifont_Korean_10.cpp>
TFT_FONT_UNIFONT_10_ZH_CN = build_src_filter=+<src/lcd/tft/fontdata/Unifont/10px/Unifont_Simplified_Chinese_10.cpp>
TFT_FONT_UNIFONT_10_ZH_TW = build_src_filter=+<src/lcd/tft/fontdata/Unifont/10px/Unifont_Traditional_Chinese_10.cpp>
TFT_FONT_UNIFONT_10_VI = build_src_filter=+<src/lcd/tft/fontdata/Unifont/10px/Unifont_Vietnamese_10.cpp>
# Unifont 20
TFT_FONT_UNIFONT_20 = build_src_filter=+<src/lcd/tft/fontdata/Unifont/20px/Unifont_20.cpp> +<src/lcd/tft/fontdata/Unifont/20px/Unifont_Symbols_20.cpp>
TFT_FONT_UNIFONT_20_LATIN = build_src_filter=+<src/lcd/tft/fontdata/Unifont/20px/Unifont_Latin_Extended_A_20.cpp>
TFT_FONT_UNIFONT_20_CYRIL = build_src_filter=+<src/lcd/tft/fontdata/Unifont/20px/Unifont_Cyrillic_20.cpp>
TFT_FONT_UNIFONT_20_GREEK = build_src_filter=+<src/lcd/tft/fontdata/Unifont/20px/Unifont_Greek_20.cpp>
TFT_FONT_UNIFONT_20_KATA = build_src_filter=+<src/lcd/tft/fontdata/Unifont/20px/Unifont_Katakana_20.cpp>
TFT_FONT_UNIFONT_20_KO = build_src_filter=+<src/lcd/tft/fontdata/Unifont/20px/Unifont_Korean_20.cpp>
TFT_FONT_UNIFONT_20_ZH_CN = build_src_filter=+<src/lcd/tft/fontdata/Unifont/20px/Unifont_Simplified_Chinese_20.cpp>
TFT_FONT_UNIFONT_20_ZH_TW = build_src_filter=+<src/lcd/tft/fontdata/Unifont/20px/Unifont_Traditional_Chinese_20.cpp>
TFT_FONT_UNIFONT_20_VI = build_src_filter=+<src/lcd/tft/fontdata/Unifont/20px/Unifont_Vietnamese_20.cpp>
# Unifont 30
TFT_FONT_UNIFONT_30 = build_src_filter=+<src/lcd/tft/fontdata/Unifont/30px/Unifont_30.cpp> +<src/lcd/tft/fontdata/Unifont/30px/Unifont_Symbols_30.cpp>
TFT_FONT_UNIFONT_30_LATIN = build_src_filter=+<src/lcd/tft/fontdata/Unifont/30px/Unifont_Latin_Extended_A_30.cpp>
TFT_FONT_UNIFONT_30_CYRIL = build_src_filter=+<src/lcd/tft/fontdata/Unifont/30px/Unifont_Cyrillic_30.cpp>
TFT_FONT_UNIFONT_30_GREEK = build_src_filter=+<src/lcd/tft/fontdata/Unifont/30px/Unifont_Greek_30.cpp>
TFT_FONT_UNIFONT_30_KATA = build_src_filter=+<src/lcd/tft/fontdata/Unifont/30px/Unifont_Katakana_30.cpp>
TFT_FONT_UNIFONT_30_KO = build_src_filter=+<src/lcd/tft/fontdata/Unifont/30px/Unifont_Korean_30.cpp>
TFT_FONT_UNIFONT_30_ZH_CN = build_src_filter=+<src/lcd/tft/fontdata/Unifont/30px/Unifont_Simplified_Chinese_30.cpp>
TFT_FONT_UNIFONT_30_ZH_TW = build_src_filter=+<src/lcd/tft/fontdata/Unifont/30px/Unifont_Traditional_Chinese_30.cpp>
TFT_FONT_UNIFONT_30_VI = build_src_filter=+<src/lcd/tft/fontdata/Unifont/30px/Unifont_Vietnamese_30.cpp>
IS_TFTGLCD_PANEL = build_src_filter=+<src/lcd/TFTGLCD>
HAS_TOUCH_BUTTONS = build_src_filter=+<src/lcd/touch/touch_buttons.cpp>
HAS_MARLINUI_MENU = build_src_filter=+<src/lcd/menu/menu.cpp> +<src/lcd/menu/menu_advanced.cpp> +<src/lcd/menu/menu_configuration.cpp> +<src/lcd/menu/menu_main.cpp> +<src/lcd/menu/menu_motion.cpp> +<src/lcd/menu/menu_tune.cpp>
HAS_GAMES = build_src_filter=+<src/lcd/menu/game/game.cpp>
MARLIN_BRICKOUT = build_src_filter=+<src/lcd/menu/game/brickout.cpp>
MARLIN_INVADERS = build_src_filter=+<src/lcd/menu/game/invaders.cpp>
MARLIN_MAZE = build_src_filter=+<src/lcd/menu/game/maze.cpp>
MARLIN_SNAKE = build_src_filter=+<src/lcd/menu/game/snake.cpp>
HAS_MENU_BACKLASH = build_src_filter=+<src/lcd/menu/menu_backlash.cpp>
HAS_MENU_PROBE_LEVEL = build_src_filter=+<src/lcd/menu/menu_probe_level.cpp>
HAS_MENU_BED_TRAMMING = build_src_filter=+<src/lcd/menu/menu_bed_tramming.cpp>
HAS_MENU_CANCELOBJECT = build_src_filter=+<src/lcd/menu/menu_cancelobject.cpp>
HAS_MENU_DELTA_CALIBRATE = build_src_filter=+<src/lcd/menu/menu_delta_calibrate.cpp>
HAS_MENU_FILAMENT = build_src_filter=+<src/lcd/menu/menu_filament.cpp>
HAS_GAME_MENU = build_src_filter=+<src/lcd/menu/menu_game.cpp>
LCD_INFO_MENU = build_src_filter=+<src/lcd/menu/menu_info.cpp>
HAS_MENU_JOB_RECOVERY = build_src_filter=+<src/lcd/menu/menu_job_recovery.cpp>
HAS_MENU_MULTI_LANGUAGE = build_src_filter=+<src/lcd/menu/menu_language.cpp>
HAS_MENU_LED = build_src_filter=+<src/lcd/menu/menu_led.cpp>
HAS_MENU_MEDIA = build_src_filter=+<src/lcd/menu/menu_media.cpp>
HAS_MENU_MIXER = build_src_filter=+<src/lcd/menu/menu_mixer.cpp>
HAS_MENU_MMU = build_src_filter=+<src/lcd/menu/menu_mmu2.cpp>
HAS_MENU_ONE_CLICK_PRINT = build_src_filter=+<src/lcd/menu/menu_one_click_print.cpp> +<src/gcode/sd/M1003.cpp>
HAS_MENU_PASSWORD = build_src_filter=+<src/lcd/menu/menu_password.cpp>
HAS_MENU_POWER_MONITOR = build_src_filter=+<src/lcd/menu/menu_power_monitor.cpp>
PROBE_OFFSET_WIZARD = build_src_filter=+<src/lcd/menu/menu_probe_offset.cpp>
HAS_MENU_CUTTER = build_src_filter=+<src/lcd/menu/menu_spindle_laser.cpp>
HAS_MENU_TEMPERATURE = build_src_filter=+<src/lcd/menu/menu_temperature.cpp>
HAS_MENU_TMC = build_src_filter=+<src/lcd/menu/menu_tmc.cpp>
HAS_MENU_TOUCH_SCREEN = build_src_filter=+<src/lcd/menu/menu_touch_screen.cpp>
HAS_MENU_TRAMMING_WIZARD = build_src_filter=+<src/lcd/menu/menu_tramming_wizard.cpp>
HAS_MENU_UBL = build_src_filter=+<src/lcd/menu/menu_ubl.cpp>
EXTENSIBLE_UI = build_src_filter=+<src/lcd/extui/ui_api.cpp>
ANYCUBIC_LCD_(CHIRON|VYPER) = build_src_filter=+<src/lcd/extui/anycubic>
ANYCUBIC_LCD_CHIRON = build_src_filter=+<src/lcd/extui/anycubic_chiron>
ANYCUBIC_LCD_VYPER = build_src_filter=+<src/lcd/extui/anycubic_vyper>
ANYCUBIC_LCD_I3MEGA = build_src_filter=+<src/lcd/extui/anycubic_i3mega>
HAS_DGUS_LCD_CLASSIC = build_src_filter=+<src/lcd/extui/dgus>
DGUS_LCD_UI_E3S1PRO = build_src_filter=+<src/lcd/extui/dgus_e3s1pro>
DGUS_LCD_UI_RELOADED = build_src_filter=+<src/lcd/extui/dgus_reloaded>
DGUS_LCD_UI_FYSETC = build_src_filter=+<src/lcd/extui/dgus/fysetc>
DGUS_LCD_UI_HIPRECY = build_src_filter=+<src/lcd/extui/dgus/hiprecy>
DGUS_LCD_UI_MKS = build_src_filter=+<src/lcd/extui/dgus/mks>
DGUS_LCD_UI_ORIGIN = build_src_filter=+<src/lcd/extui/dgus/origin>
DGUS_LCD_UI_IA_CREALITY = build_src_filter=+<src/lcd/extui/ia_creality>
EXTUI_EXAMPLE = build_src_filter=+<src/lcd/extui/example>
TOUCH_UI_FTDI_EVE = build_src_filter=+<src/lcd/extui/ftdi_eve_touch_ui>
MALYAN_LCD = build_src_filter=+<src/lcd/extui/malyan>
NEXTION_TFT = build_src_filter=+<src/lcd/extui/nextion>
USE_UHS2_USB = build_src_filter=+<src/sd/usb_flashdrive/lib-uhs2>
USE_UHS3_USB = build_src_filter=+<src/sd/usb_flashdrive/lib-uhs3>
USB_FLASH_DRIVE_SUPPORT = build_src_filter=+<src/sd/usb_flashdrive/Sd2Card_FlashDrive.cpp>
HAS_MCP3426_ADC = build_src_filter=+<src/feature/adc> +<src/gcode/feature/adc>
AUTO_BED_LEVELING_BILINEAR = build_src_filter=+<src/feature/bedlevel/abl>
AUTO_BED_LEVELING_(3POINT|(BI)?LINEAR) = build_src_filter=+<src/gcode/bedlevel/abl>
X_AXIS_TWIST_COMPENSATION = build_src_filter=+<src/feature/x_twist.cpp> +<src/lcd/menu/menu_x_twist.cpp> +<src/gcode/probe/M423.cpp>
BD_SENSOR = markyue/Panda_SoftMasterI2C
build_src_filter=+<src/feature/bedlevel/bdl> +<src/gcode/probe/M102.cpp>
MESH_BED_LEVELING = build_src_filter=+<src/feature/bedlevel/mbl> +<src/gcode/bedlevel/mbl>
AUTO_BED_LEVELING_UBL = build_src_filter=+<src/feature/bedlevel/ubl> +<src/gcode/bedlevel/ubl>
UBL_HILBERT_CURVE = build_src_filter=+<src/feature/bedlevel/hilbert_curve.cpp>
BACKLASH_COMPENSATION = build_src_filter=+<src/feature/backlash.cpp>
BARICUDA = build_src_filter=+<src/feature/baricuda.cpp> +<src/gcode/feature/baricuda>
BINARY_FILE_TRANSFER = build_src_filter=+<src/feature/binary_stream.cpp> +<src/libs/heatshrink>
BLTOUCH = build_src_filter=+<src/feature/bltouch.cpp>
CANCEL_OBJECTS = build_src_filter=+<src/feature/cancel_object.cpp> +<src/gcode/feature/cancel>
CASE_LIGHT_ENABLE = build_src_filter=+<src/feature/caselight.cpp> +<src/gcode/feature/caselight>
EXTERNAL_CLOSED_LOOP_CONTROLLER = build_src_filter=+<src/feature/closedloop.cpp> +<src/gcode/calibrate/M12.cpp>
USE_CONTROLLER_FAN = build_src_filter=+<src/feature/controllerfan.cpp>
HAS_COOLER|LASER_COOLANT_FLOW_METER = build_src_filter=+<src/feature/cooler.cpp>
HAS_MOTOR_CURRENT_DAC = build_src_filter=+<src/feature/dac>
DIRECT_STEPPING = build_src_filter=+<src/feature/direct_stepping.cpp> +<src/gcode/motion/G6.cpp>
EMERGENCY_PARSER = build_src_filter=+<src/feature/e_parser.cpp> -<src/gcode/control/M108_*.cpp>
EASYTHREED_UI = build_src_filter=+<src/feature/easythreed_ui.cpp>
I2C_POSITION_ENCODERS = build_src_filter=+<src/feature/encoder_i2c.cpp>
IIC_BL24CXX_EEPROM = build_src_filter=+<src/libs/BL24CXX.cpp>
SPI_FLASH = build_src_filter=+<src/libs/W25Qxx.cpp>
HAS_ETHERNET = build_src_filter=+<src/feature/ethernet.cpp> +<src/gcode/feature/network/M552-M554.cpp>
HAS_FANCHECK = build_src_filter=+<src/feature/fancheck.cpp> +<src/gcode/temp/M123.cpp>
HAS_FANMUX = build_src_filter=+<src/feature/fanmux.cpp>
FILAMENT_WIDTH_SENSOR = build_src_filter=+<src/feature/filwidth.cpp> +<src/gcode/feature/filwidth>
FWRETRACT = build_src_filter=+<src/feature/fwretract.cpp> +<src/gcode/feature/fwretract>
HOST_ACTION_COMMANDS = build_src_filter=+<src/feature/host_actions.cpp>
HOTEND_IDLE_TIMEOUT = build_src_filter=+<src/feature/hotend_idle.cpp> +<src/gcode/temp/M86_M87.cpp>
JOYSTICK = build_src_filter=+<src/feature/joystick.cpp>
BLINKM = build_src_filter=+<src/feature/leds/blinkm.cpp>
HAS_COLOR_LEDS = build_src_filter=+<src/feature/leds/leds.cpp> +<src/gcode/feature/leds/M150.cpp>
PCA9533 = build_src_filter=+<src/feature/leds/pca9533.cpp>
PCA9632 = build_src_filter=+<src/feature/leds/pca9632.cpp>
PRINTER_EVENT_LEDS = build_src_filter=+<src/feature/leds/printer_event_leds.cpp>
TEMP_STAT_LEDS = build_src_filter=+<src/feature/leds/tempstat.cpp>
MAX7219_DEBUG = build_src_filter=+<src/feature/max7219.cpp> +<src/gcode/feature/leds/M7219.cpp>
HAS_MEATPACK = build_src_filter=+<src/feature/meatpack.cpp>
MIXING_EXTRUDER = build_src_filter=+<src/feature/mixing.cpp> +<src/gcode/feature/mixing/M163-M165.cpp>
HAS_PRUSA_MMU1 = build_src_filter=+<src/feature/mmu/mmu.cpp>
HAS_PRUSA_MMU2 = build_src_filter=+<src/feature/mmu/mmu2.cpp> +<src/gcode/feature/prusa_MMU2>
HAS_PRUSA_MMU3 = build_src_filter=+<src/feature/mmu3> +<src/gcode/feature/prusa_MMU2>
PASSWORD_FEATURE = build_src_filter=+<src/feature/password> +<src/gcode/feature/password>
ADVANCED_PAUSE_FEATURE = build_src_filter=+<src/feature/pause.cpp> +<src/gcode/feature/pause/M600.cpp>
CONFIGURE_FILAMENT_CHANGE = build_src_filter=+<src/gcode/feature/pause/M603.cpp>
PSU_CONTROL = build_src_filter=+<src/feature/power.cpp>
HAS_POWER_MONITOR = build_src_filter=+<src/feature/power_monitor.cpp> +<src/gcode/feature/power_monitor>
POWER_LOSS_RECOVERY = build_src_filter=+<src/feature/powerloss.cpp> +<src/gcode/feature/powerloss>
HAS_PTC = build_src_filter=+<src/feature/probe_temp_comp.cpp> +<src/gcode/calibrate/G76_M871.cpp>
HAS_FILAMENT_SENSOR = build_src_filter=+<src/feature/runout.cpp> +<src/gcode/feature/runout>
(EXT|MANUAL)_SOLENOID.* = build_src_filter=+<src/feature/solenoid.cpp> +<src/gcode/control/M380_M381.cpp>
MK2_MULTIPLEXER = build_src_filter=+<src/feature/snmm.cpp>
HAS_CUTTER = build_src_filter=+<src/feature/spindle_laser.cpp> +<src/gcode/control/M3-M5.cpp>
HAS_DRIVER_SAFE_POWER_PROTECT = build_src_filter=+<src/feature/stepper_driver_safety.cpp>
EXPERIMENTAL_I2CBUS = build_src_filter=+<src/feature/twibus.cpp> +<src/gcode/feature/i2c>
G26_MESH_VALIDATION = build_src_filter=+<src/gcode/bedlevel/G26.cpp>
ASSISTED_TRAMMING = build_src_filter=+<src/feature/tramming.cpp> +<src/gcode/bedlevel/G35.cpp>
HAS_MESH = build_src_filter=+<src/gcode/bedlevel/G42.cpp>
HAS_LEVELING = build_src_filter=+<src/gcode/bedlevel/M420.cpp> +<src/feature/bedlevel/bedlevel.cpp>
MECHANICAL_GANTRY_CAL.+ = build_src_filter=+<src/gcode/calibrate/G34.cpp>
Z_MULTI_ENDSTOPS|Z_STEPPER_AUTO_ALIGN = build_src_filter=+<src/gcode/calibrate/G34_M422.cpp>
Z_STEPPER_AUTO_ALIGN = build_src_filter=+<src/feature/z_stepper_align.cpp>
DELTA_AUTO_CALIBRATION = build_src_filter=+<src/gcode/calibrate/G33.cpp>
CALIBRATION_GCODE = build_src_filter=+<src/gcode/calibrate/G425.cpp>
Z_MIN_PROBE_REPEATABILITY_TEST = build_src_filter=+<src/gcode/calibrate/M48.cpp>
M100_FREE_MEMORY_WATCHER = build_src_filter=+<src/gcode/calibrate/M100.cpp>
BACKLASH_GCODE = build_src_filter=+<src/gcode/calibrate/M425.cpp>
IS_KINEMATIC = build_src_filter=+<src/gcode/calibrate/M665.cpp>
HAS_EXTRA_ENDSTOPS = build_src_filter=+<src/gcode/calibrate/M666.cpp>
SKEW_CORRECTION_GCODE = build_src_filter=+<src/gcode/calibrate/M852.cpp>
DIRECT_PIN_CONTROL = build_src_filter=+<src/gcode/control/M42.cpp> +<src/gcode/control/M226.cpp>
PINS_DEBUGGING = build_src_filter=+<src/gcode/config/M43.cpp>
EDITABLE_STEPS_PER_UNIT = build_src_filter=+<src/gcode/config/M92.cpp>
EDITABLE_HOMING_FEEDRATE = build_src_filter=+<src/gcode/config/M210.cpp>
HAS_MULTI_EXTRUDER = build_src_filter=+<src/gcode/config/M217.cpp>
HAS_HOTEND_OFFSET = build_src_filter=+<src/gcode/config/M218.cpp>
EDITABLE_SERVO_ANGLES = build_src_filter=+<src/gcode/config/M281.cpp>
PIDTEMP = build_src_filter=+<src/gcode/config/M301.cpp>
PREVENT_COLD_EXTRUSION = build_src_filter=+<src/gcode/config/M302.cpp>
PIDTEMPBED = build_src_filter=+<src/gcode/config/M304.cpp>
HAS_USER_THERMISTORS = build_src_filter=+<src/gcode/config/M305.cpp>
PIDTEMPCHAMBER = build_src_filter=+<src/gcode/config/M309.cpp>
SD_ABORT_ON_ENDSTOP_HIT = build_src_filter=+<src/gcode/config/M540.cpp>
BAUD_RATE_GCODE = build_src_filter=+<src/gcode/config/M575.cpp>
HAS_SMART_EFF_MOD = build_src_filter=+<src/gcode/config/M672.cpp>
COOLANT_CONTROL|AIR_ASSIST = build_src_filter=+<src/gcode/control/M7-M9.cpp>
AIR_EVACUATION = build_src_filter=+<src/gcode/control/M10_M11.cpp>
HAS_SOFTWARE_ENDSTOPS = build_src_filter=+<src/gcode/control/M211.cpp>
SERVO_DETACH_GCODE = build_src_filter=+<src/gcode/control/M282.cpp>
HAS_DUPLICATION_MODE = build_src_filter=+<src/gcode/control/M605.cpp>
SPI_FLASH_BACKUP = build_src_filter=+<src/gcode/control/M993_M994.cpp>
PLATFORM_M997_SUPPORT = build_src_filter=+<src/gcode/control/M997.cpp>
HAS_TOOLCHANGE = build_src_filter=+<src/gcode/control/T.cpp>
FT_MOTION = build_src_filter=+<src/module/ft_motion.cpp> +<src/gcode/feature/ft_motion>
LIN_ADVANCE = build_src_filter=+<src/gcode/feature/advance>
PHOTO_GCODE = build_src_filter=+<src/gcode/feature/camera>
CONTROLLER_FAN_EDITABLE = build_src_filter=+<src/gcode/feature/controllerfan>
HAS_ZV_SHAPING = build_src_filter=+<src/gcode/feature/input_shaping>
GCODE_MACROS = build_src_filter=+<src/gcode/feature/macro>
GRADIENT_MIX = build_src_filter=+<src/gcode/feature/mixing/M166.cpp>
NONLINEAR_EXTRUSION = build_src_filter=+<src/gcode/feature/nonlinear>
HAS_SAVED_POSITIONS = build_src_filter=+<src/gcode/feature/pause/G60.cpp> +<src/gcode/feature/pause/G61.cpp>
PARK_HEAD_ON_PAUSE = build_src_filter=+<src/gcode/feature/pause/M125.cpp>
FILAMENT_LOAD_UNLOAD_GCODES = build_src_filter=+<src/gcode/feature/pause/M701_M702.cpp>
HAS_STEALTHCHOP = build_src_filter=+<src/gcode/feature/trinamic/M569.cpp>
CNC_WORKSPACE_PLANES = build_src_filter=+<src/gcode/geometry/G17-G19.cpp>
CNC_COORDINATE_SYSTEMS = build_src_filter=+<src/gcode/geometry/G53-G59.cpp>
HAS_HOME_OFFSET = build_src_filter=+<src/gcode/geometry/M206_M428.cpp>
EXPECTED_PRINTER_CHECK = build_src_filter=+<src/gcode/host/M16.cpp>
HOST_KEEPALIVE_FEATURE = build_src_filter=+<src/gcode/host/M113.cpp>
CAPABILITIES_REPORT = build_src_filter=+<src/gcode/host/M115.cpp>
AUTO_REPORT_POSITION = build_src_filter=+<src/gcode/host/M154.cpp>
REPETIER_GCODE_M360 = build_src_filter=+<src/gcode/host/M360.cpp>
HAS_GCODE_M876 = build_src_filter=+<src/gcode/host/M876.cpp>
HAS_RESUME_CONTINUE = build_src_filter=+<src/gcode/lcd/M0_M1.cpp>
SET_PROGRESS_MANUALLY = build_src_filter=+<src/gcode/lcd/M73.cpp>
HAS_STATUS_MESSAGE = build_src_filter=+<src/gcode/lcd/M117.cpp>
HAS_PREHEAT = build_src_filter=+<src/gcode/lcd/M145.cpp>
HAS_LCD_CONTRAST = build_src_filter=+<src/gcode/lcd/M250.cpp>
EDITABLE_DISPLAY_TIMEOUT = build_src_filter=+<src/gcode/lcd/M255.cpp>
HAS_LCD_BRIGHTNESS = build_src_filter=+<src/gcode/lcd/M256.cpp>
HAS_SOUND = build_src_filter=+<src/gcode/lcd/M300.cpp>
HAS_RS485_SERIAL = jnesselr/rs485@^0.0.9
build_src_filter=+<src/gcode/feature/rs485> +<src/feature/rs485.cpp>
HAS_MULTI_LANGUAGE = build_src_filter=+<src/gcode/lcd/M414.cpp>
TOUCH_SCREEN_CALIBRATION = build_src_filter=+<src/gcode/lcd/M995.cpp>
ARC_SUPPORT = build_src_filter=+<src/gcode/motion/G2_G3.cpp>
GCODE_MOTION_MODES = build_src_filter=+<src/gcode/motion/G80.cpp>
BABYSTEPPING = build_src_filter=+<src/gcode/motion/M290.cpp> +<src/feature/babystep.cpp>
OTA_FIRMWARE_UPDATE = build_src_filter=+<src/gcode/ota/M936.cpp>
Z_PROBE_SLED = build_src_filter=+<src/gcode/probe/G31_G32.cpp>
G38_PROBE_TARGET = build_src_filter=+<src/gcode/probe/G38.cpp>
MAGNETIC_PARKING_EXTRUDER = build_src_filter=+<src/gcode/probe/M951.cpp>
HAS_MEDIA = build_src_filter=+<src/sd/cardreader.cpp> +<src/sd/Sd2Card.cpp> +<src/sd/SdBaseFile.cpp> +<src/sd/SdFatUtil.cpp> +<src/sd/SdFile.cpp> +<src/sd/SdVolume.cpp> +<src/gcode/sd>
HAS_MEDIA_SUBCALLS = build_src_filter=+<src/gcode/sd/M32.cpp>
GCODE_REPEAT_MARKERS = build_src_filter=+<src/feature/repeat.cpp> +<src/gcode/sd/M808.cpp>
HAS_EXTRUDERS = build_src_filter=+<src/gcode/units/M82_M83.cpp> +<src/gcode/config/M221.cpp>
HAS_HOTEND = build_src_filter=+<src/gcode/temp/M104_M109.cpp>
HAS_FAN = build_src_filter=+<src/gcode/temp/M106_M107.cpp>
HAS_HEATED_BED = build_src_filter=+<src/gcode/temp/M140_M190.cpp>
HAS_HEATED_CHAMBER = build_src_filter=+<src/gcode/temp/M141_M191.cpp>
HAS_COOLER = build_src_filter=+<src/gcode/temp/M143_M193.cpp>
AUTO_REPORT_TEMPERATURES = build_src_filter=+<src/gcode/temp/M155.cpp>
HAS_TEMP_PROBE = build_src_filter=+<src/gcode/temp/M192.cpp>
HAS_PID_HEATING = build_src_filter=+<src/gcode/temp/M303.cpp>
MPCTEMP = build_src_filter=+<src/gcode/temp/M306.cpp>
INCH_MODE_SUPPORT = build_src_filter=+<src/gcode/units/G20_G21.cpp>
TEMPERATURE_UNITS_SUPPORT = build_src_filter=+<src/gcode/units/M149.cpp>
NEED_HEX_PRINT = build_src_filter=+<src/libs/hex_print.cpp>
NEED_LSF = build_src_filter=+<src/libs/least_squares_fit.cpp>
NOZZLE_PARK_FEATURE = build_src_filter=+<src/libs/nozzle.cpp> +<src/gcode/feature/pause/G27.cpp>
NOZZLE_CLEAN_FEATURE = build_src_filter=+<src/libs/nozzle.cpp> +<src/gcode/feature/clean>
DELTA = build_src_filter=+<src/module/delta.cpp> +<src/gcode/calibrate/M666.cpp>
POLAR = build_src_filter=+<src/module/polar.cpp>
POLARGRAPH = build_src_filter=+<src/module/polargraph.cpp>
BEZIER_CURVE_SUPPORT = build_src_filter=+<src/module/planner_bezier.cpp> +<src/gcode/motion/G5.cpp>
PRINTCOUNTER = build_src_filter=+<src/module/printcounter.cpp>
HAS_BED_PROBE = build_src_filter=+<src/module/probe.cpp> +<src/gcode/probe/G30.cpp> +<src/gcode/probe/M401_M402.cpp> +<src/gcode/probe/M851.cpp>
IS_SCARA = build_src_filter=+<src/module/scara.cpp>
HAS_SERVOS = build_src_filter=+<src/module/servo.cpp> +<src/gcode/control/M280.cpp>
MORGAN_SCARA = build_src_filter=+<src/gcode/scara>
HAS_MICROSTEPS = build_src_filter=+<src/gcode/control/M350_M351.cpp>
(ESP3D_)?WIFISUPPORT = AsyncTCP, ESP Async WebServer
ESP3DLib=https://github.com/luc-github/ESP3DLib/archive/dc0f3d96c6.zip
arduinoWebSockets=links2004/WebSockets@2.3.4
luc-github/ESP32SSDP@1.1.1
lib_ignore=ESPAsyncTCP
build_flags=-DSRCHOME=${platformio.src_dir}/src -DHALHOME=SRCHOME