Skip to content

Commit

Permalink
Split up platformio.ini (MarlinFirmware#21507)
Browse files Browse the repository at this point in the history
  • Loading branch information
thinkyhead committed Apr 2, 2021
1 parent 0dde8f8 commit 3229100
Show file tree
Hide file tree
Showing 14 changed files with 1,504 additions and 1,441 deletions.
37 changes: 9 additions & 28 deletions buildroot/share/PlatformIO/scripts/common-dependencies.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,6 @@
# Convenience script to check dependencies and add libs and sources for Marlin Enabled Features
#
import subprocess,os,re
try:
import configparser
except ImportError:
import ConfigParser as configparser
try:
# PIO < 4.4
from platformio.managers.package import PackageManager
except ImportError:
# PIO >= 4.4
from platformio.package.meta import PackageSpec as PackageManager

PIO_VERSION_MIN = (5, 0, 3)
try:
Expand All @@ -38,6 +28,9 @@
except:
print("Can't detect PlatformIO Version")

from platformio.package.meta import PackageSpec
from platformio.project.config import ProjectConfig

Import("env")

#print(env.Dump())
Expand All @@ -51,13 +44,6 @@ def blab(str):
if verbose:
print(str)

def parse_pkg_uri(spec):
if PackageManager.__name__ == 'PackageSpec':
return PackageManager(spec).name
else:
name, _, _ = PackageManager.parse_pkg_uri(spec)
return name

FEATURE_CONFIG = {}

def add_to_feat_cnf(feature, flines):
Expand Down Expand Up @@ -86,9 +72,7 @@ def add_to_feat_cnf(feature, flines):
feat['lib_deps'] = list(filter(lib_re.match, feat['lib_deps'])) + [dep]

def load_config():
config = configparser.ConfigParser()
config.read("platformio.ini")
items = config.items('features')
items = ProjectConfig().items('features')
for key in items:
feature = key[0].upper()
if not feature in FEATURE_CONFIG:
Expand All @@ -114,16 +98,14 @@ def get_all_known_libs():
if not 'lib_deps' in feat:
continue
for dep in feat['lib_deps']:
name = parse_pkg_uri(dep)
known_libs.append(name)
known_libs.append(PackageSpec(dep).name)
return known_libs

def get_all_env_libs():
env_libs = []
lib_deps = env.GetProjectOption('lib_deps')
for dep in lib_deps:
name = parse_pkg_uri(dep)
env_libs.append(name)
env_libs.append(PackageSpec(dep).name)
return env_libs

def set_env_field(field, value):
Expand Down Expand Up @@ -154,20 +136,19 @@ def apply_features_config():
# feat to add
deps_to_add = {}
for dep in feat['lib_deps']:
name = parse_pkg_uri(dep)
deps_to_add[name] = dep
deps_to_add[PackageSpec(dep).name] = dep

# Does the env already have the dependency?
deps = env.GetProjectOption('lib_deps')
for dep in deps:
name = parse_pkg_uri(dep)
name = PackageSpec(dep).name
if name in deps_to_add:
del deps_to_add[name]

# Are there any libraries that should be ignored?
lib_ignore = env.GetProjectOption('lib_ignore')
for dep in deps:
name = parse_pkg_uri(dep)
name = PackageSpec(dep).name
if name in deps_to_add:
del deps_to_add[name]

Expand Down
174 changes: 174 additions & 0 deletions ini/avr.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
#
# Marlin Firmware
# PlatformIO Configuration File
#

#################################
# #
# AVR Architecture #
# #
#################################

#
# AVR (8-bit) Common Environment values
#
[common_avr8]
board_build.f_cpu = 16000000L
src_filter = ${common.default_src_filter} +<src/HAL/AVR>

#
# ATmega2560
#
[env:mega2560]
platform = atmelavr
extends = common_avr8
board = megaatmega2560

#
# ATmega2560 with extended pins 70-85 defined
# BOARD_BQ_ZUM_MEGA_3D
# BOARD_ULTIMAIN_2
# BOARD_MIGHTYBOARD_REVE
# BOARD_EINSTART_S
#
[env:mega2560ext]
platform = atmelavr
extends = env:mega2560
board_build.variant = megaextendedpins
extra_scripts = ${common.extra_scripts}
pre:buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py

#
# ATmega1280
#
[env:mega1280]
platform = atmelavr
extends = common_avr8
board = megaatmega1280

#
# MightyBoard AVR with extended pins
#
[mega_extended_optimized]
extends = common_avr8
board_build.variant = megaextendedpins
extra_scripts = ${common.extra_scripts}
pre:buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py
upload_speed = 57600
build_flags = ${common.build_flags} -fno-tree-scev-cprop -fno-split-wide-types -Wl,--relax -mcall-prologues

#
# MightyBoard ATmega1280
#
[env:MightyBoard1280]
platform = atmelavr
extends = mega_extended_optimized
board = megaatmega1280

#
# MightyBoard ATmega2560
#
[env:MightyBoard2560]
platform = atmelavr
extends = mega_extended_optimized
board = megaatmega2560

#
# RAMBo
#
[env:rambo]
platform = atmelavr
extends = common_avr8
board = reprap_rambo

#
# FYSETC F6 V1.3 / V1.4
#
[env:FYSETC_F6]
platform = atmelavr
extends = common_avr8
board = fysetc_f6

#
# Sanguinololu (ATmega644p)
#
[env:sanguino644p]
platform = atmelavr
extends = common_avr8
board = sanguino_atmega644p

#
# Sanguinololu (ATmega1284p)
#
[env:sanguino1284p]
platform = atmelavr
extends = common_avr8
board = sanguino_atmega1284p
board_upload.maximum_size = 126976

#
# Melzi and clones (ATmega1284p)
#
[env:melzi]
platform = atmelavr
extends = env:sanguino1284p
upload_speed = 57600

#
# Sanguinololu (ATmega1284p stock bootloader with tuned flags)
#

[tuned_1284p]
build_flags = ${common.build_flags} -fno-tree-scev-cprop -fno-split-wide-types -Wl,--relax -mcall-prologues

[env:sanguino1284p_optimized]
platform = atmelavr
extends = env:melzi
build_flags = ${tuned_1284p.build_flags}

#
# Melzi and clones (alias for sanguino1284p_optimized)
#
[env:melzi_optimized]
platform = atmelavr
extends = env:sanguino1284p_optimized

#
# Melzi and clones (Optiboot bootloader)
#
[env:melzi_optiboot]
platform = atmelavr
extends = common_avr8
board = sanguino_atmega1284p
upload_speed = 115200

#
# Melzi and clones (Zonestar Melzi2 with tuned flags)
#
[env:melzi_optiboot_optimized]
platform = atmelavr
extends = env:melzi_optiboot
build_flags = ${tuned_1284p.build_flags}

#
# AT90USB1286 boards using CDC bootloader
# - BRAINWAVE
# - BRAINWAVE_PRO
# - SAV_MKI
# - TEENSYLU
#
[env:at90usb1286_cdc]
platform = teensy
extends = common_avr8
board = at90usb1286
lib_ignore = ${env:common_avr8.lib_ignore}, Teensy_ADC, NativeEthernet

#
# AT90USB1286 boards using DFU bootloader
# - Printrboard
# - Printrboard Rev.F
# - ? 5DPRINT ?
#
[env:at90usb1286_dfu]
platform = teensy
extends = env:at90usb1286_cdc
43 changes: 43 additions & 0 deletions ini/due.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#
# Marlin Firmware
# PlatformIO Configuration File
#

#################################
# #
# DUE Architecture #
# #
#################################

#
# Due (Atmel SAM3X8E ARM Cortex-M3)
#
# - RAMPS4DUE
# - RADDS
#
[env:DUE]
platform = atmelsam
board = due
src_filter = ${common.default_src_filter} +<src/HAL/DUE> +<src/HAL/shared/backtrace>

[env:DUE_USB]
platform = atmelsam
extends = env:DUE
board = dueUSB

#
# Archim SAM
#
[common_DUE_archim]
platform = atmelsam
extends = env:DUE
board = archim
build_flags = ${common.build_flags}
-DARDUINO_SAM_ARCHIM -DARDUINO_ARCH_SAM -D__SAM3X8E__ -DUSBCON
board_build.variants_dir = buildroot/share/PlatformIO/variants/
extra_scripts = ${common.extra_scripts}
Marlin/src/HAL/DUE/upload_extra_script.py

[env:DUE_archim]
platform = ${common_DUE_archim.platform}
extends = common_DUE_archim
29 changes: 29 additions & 0 deletions ini/esp32.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#
# Marlin Firmware
# PlatformIO Configuration File
#

#################################
# #
# ESP32 Architecture #
# #
#################################

#
# Espressif ESP32
#
[env:esp32]
platform = espressif32@2.1.0
board = esp32dev
build_flags = ${common.build_flags} -DCORE_DEBUG_LEVEL=0
src_filter = ${common.default_src_filter} +<src/HAL/ESP32>
lib_ignore = NativeEthernet
upload_speed = 500000
monitor_speed = 250000
#upload_port = marlinesp.local
#board_build.flash_mode = qio

[env:FYSETC_E4]
platform = espressif32@1.11.2
extends = env:esp32
board_build.partitions = default_16MB.csv

0 comments on commit 3229100

Please sign in to comment.