mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2024-11-25 16:47:29 +08:00
b4a3e29fb6
* 🧑💻 Ignore Aider additions * 🔨 Pins Debugging fix and cleanup * 🔧 Auto-assign UART Rx based on Tx
152 lines
5.5 KiB
INI
152 lines
5.5 KiB
INI
#
|
|
# Marlin Firmware
|
|
# PlatformIO Configuration File
|
|
#
|
|
|
|
#################################
|
|
# #
|
|
# Native / Simulation #
|
|
# #
|
|
#################################
|
|
|
|
#
|
|
# No supported Arduino libraries, base Marlin only
|
|
#
|
|
[env:linux_native]
|
|
platform = native
|
|
framework =
|
|
build_flags = ${common.build_flags} -D__PLAT_LINUX__ -std=gnu++17 -ggdb -g -lrt -lpthread -D__MARLIN_FIRMWARE__ -Wno-expansion-to-defined
|
|
build_src_flags = -Wall -IMarlin/src/HAL/LINUX/include
|
|
build_unflags = -Wall
|
|
lib_ldf_mode = off
|
|
build_src_filter = ${common.default_src_filter} +<src/HAL/LINUX>
|
|
|
|
# Environment specifically for unit testing through the Makefile
|
|
# This is somewhat unorthodox, in that it uses the PlatformIO Unity testing framework,
|
|
# but actual targets are dynamically generated during the build. This seems to prevent
|
|
# Unity from being automatically included, so it is added here.
|
|
[env:linux_native_test]
|
|
extends = env:linux_native
|
|
extra_scripts = ${common.extra_scripts}
|
|
post:buildroot/share/PlatformIO/scripts/collect-code-tests.py
|
|
build_src_filter = ${env:linux_native.build_src_filter} +<tests>
|
|
lib_deps = throwtheswitch/Unity@^2.5.2
|
|
test_build_src = true
|
|
build_unflags =
|
|
build_flags = ${env:linux_native.build_flags} -Werror
|
|
|
|
#
|
|
# Native Simulation
|
|
# Builds with a small subset of available features
|
|
# Required system libraries: SDL2, SDL2-net, OpenGL, GLM
|
|
# sudo apt-get install python3-venv build-essential libsdl2-dev libsdl2-net-dev libglm-dev
|
|
# See https://docs.platformio.org/en/latest/platforms/native.html for more information
|
|
#
|
|
# Tested with Linux (Mint 20) : gcc [9.3.0, 10.2.0]: libsdl2-dev[2.0.10], libsdl2-net-dev[2.0.1], libglm-dev[0.9.9.7, 0.9.9.8]
|
|
#
|
|
# For VSCode debugging see buildroot/share/PlatformIO/debugging/launch.json
|
|
#
|
|
[simulator_common]
|
|
platform = native
|
|
framework =
|
|
build_flags = ${common.build_flags} -std=gnu++17
|
|
-I/usr/include/SDL2 -IMarlin -IMarlin/src/HAL/NATIVE_SIM/u8g
|
|
-D__PLAT_NATIVE_SIM__ -DU8G_HAL_LINKS -DGLM_ENABLE_EXPERIMENTAL
|
|
build_src_flags = -Wall -Wno-expansion-to-defined -Wno-deprecated-declarations -Wcast-align
|
|
release_flags = -g0 -O3 -flto
|
|
debug_build_flags = -fstack-protector-strong -g -g3 -ggdb
|
|
lib_compat_mode = off
|
|
build_src_filter = ${common.default_src_filter} +<src/HAL/NATIVE_SIM>
|
|
lib_deps = ${common.lib_deps}
|
|
MarlinSimUI=https://github.com/p3p/MarlinSimUI/archive/afe7c1c293.zip
|
|
Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/c6b319f447.zip
|
|
LiquidCrystal=https://github.com/p3p/LiquidCrystal/archive/322fb5fc23.zip
|
|
extra_scripts = ${common.extra_scripts}
|
|
pre:buildroot/share/PlatformIO/scripts/simulator.py
|
|
|
|
[simulator_linux]
|
|
extends = simulator_common
|
|
build_flags = ${simulator_common.build_flags} -ldl -lpthread -lSDL2 -lSDL2_net -lGL
|
|
|
|
[env:simulator_linux_debug]
|
|
extends = simulator_linux
|
|
build_type = debug
|
|
|
|
[env:simulator_linux_release]
|
|
extends = simulator_linux
|
|
build_type = release
|
|
build_flags = ${simulator_linux.build_flags} ${simulator_linux.release_flags}
|
|
|
|
#
|
|
# Simulator for macOS (MacPorts)
|
|
#
|
|
|
|
#
|
|
# MacPorts:
|
|
# sudo port install gcc14 glm mesa libsdl2 libsdl2_net
|
|
#
|
|
# cd /opt/local/bin
|
|
# sudo rm gcc g++ cc ld
|
|
# sudo ln -s gcc-mp-14 gcc ; sudo ln -s g++-mp-14 g++ ; sudo ln -s g++ cc
|
|
# sudo ln -s ld-classic ld
|
|
# cd -
|
|
# rehash
|
|
#
|
|
#==================================================================================
|
|
#
|
|
# Homebrew:
|
|
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
#
|
|
# brew install gcc@14 glm mesa sdl2 sdl2_net
|
|
#
|
|
# cd /opt/homebrew/bin
|
|
# sudo rm -f gcc g++ cc
|
|
# sudo ln -s gcc-14 gcc ; sudo ln -s g++-14 g++ ; sudo ln -s g++ cc
|
|
# cd -
|
|
#
|
|
|
|
[simulator_macos]
|
|
build_unflags = -g3 -lGL -fstack-protector-strong
|
|
build_flags = -g2
|
|
-DHAS_LIBBSD
|
|
-I/opt/local/include
|
|
-I/opt/local/include/freetype2
|
|
-I/opt/local/include/SDL2/
|
|
-L/opt/local/lib
|
|
-Wl,-framework,OpenGl
|
|
-Wl,-framework,CoreFoundation
|
|
-lSDL2
|
|
-fno-stack-protector
|
|
|
|
[env:simulator_macos_debug]
|
|
extends = env:simulator_linux_debug
|
|
build_flags = ${env:simulator_linux_debug.build_flags} ${simulator_macos.build_flags} -ggdb -Og -D_THREAD_SAFE
|
|
build_unflags = ${simulator_macos.build_unflags}
|
|
custom_verbose = 0
|
|
custom_gcc = g++
|
|
|
|
[env:simulator_macos_release]
|
|
extends = env:simulator_linux_release
|
|
build_flags = ${env:simulator_linux_release.build_flags} ${simulator_macos.build_flags}
|
|
build_unflags = ${simulator_macos.build_unflags}
|
|
custom_verbose = 0
|
|
custom_gcc = g++
|
|
|
|
#
|
|
# Simulator for Windows 10
|
|
#
|
|
# MSYS2 mingw-w64-x86_64 with these packages:
|
|
# pacman -S --needed base-devel mingw-w64-x86_64-toolchain mingw64/mingw-w64-x86_64-glm mingw64/mingw-w64-x86_64-SDL2 mingw64/mingw-w64-x86_64-SDL2_net mingw-w64-x86_64-dlfcn
|
|
#
|
|
# Ensure the following paths have been added to the PATH system environment variable:
|
|
# C:\msys64\mingw64\bin, C:\msys64\ucrt64\bin, C:\msys64\usr\bin
|
|
#
|
|
|
|
[env:simulator_windows]
|
|
extends = simulator_common
|
|
build_src_flags = ${simulator_common.build_src_flags} -fpermissive
|
|
build_flags = ${simulator_common.build_flags} ${simulator_common.debug_build_flags}
|
|
-IC:\\msys64\\mingw64\\include\\SDL2 -fno-stack-protector -Wl,-subsystem,windows
|
|
-ldl -lmingw32 -lSDL2main -lSDL2 -lSDL2_net -lopengl32 -lssp
|
|
build_type = debug
|