You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
4.8 KiB
138 lines
4.8 KiB
# |
|
# Marlin Firmware |
|
# PlatformIO Configuration File |
|
# |
|
|
|
################################# |
|
# # |
|
# Native / Simulation # |
|
# # |
|
################################# |
|
|
|
# |
|
# No supported Arduino libraries, base Marlin only |
|
# |
|
[env:linux_native] |
|
platform = native |
|
framework = |
|
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 |
|
lib_deps = |
|
build_src_filter = ${common.default_src_filter} +<src/HAL/LINUX> |
|
|
|
# |
|
# 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 -D__PLAT_NATIVE_SIM__ -DU8G_HAL_LINKS -I/usr/include/SDL2 -IMarlin -IMarlin/src/HAL/NATIVE_SIM/u8g |
|
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/refs/heads/bugfix-2.1.x.zip |
|
Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/marlin_sim_native.zip |
|
LiquidCrystal=https://github.com/p3p/LiquidCrystal/archive/master.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 gcc12 glm libsdl2 libsdl2_net |
|
# |
|
# cd /opt/local/bin |
|
# sudo rm -f gcc g++ cc |
|
# sudo ln -s gcc-mp-12 gcc ; sudo ln -s g++-mp-12 g++ ; sudo ln -s g++ cc |
|
# cd - |
|
# rehash |
|
# |
|
# Use 'sudo port install mesa' to get a <GL/gl.h> if no Xcode is installed. |
|
# If Xcode is installed be sure to run `xcode-select --install` first. |
|
# |
|
#================================================================================== |
|
# |
|
# Homebrew: |
|
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
|
# |
|
# brew install gcc@12 glm sdl2 sdl2_net |
|
# |
|
# cd /opt/homebrew/bin |
|
# sudo rm -f gcc g++ cc |
|
# sudo ln -s gcc-12 gcc ; sudo ln -s g++-12 g++ ; sudo ln -s g++ cc |
|
# cd - |
|
# |
|
# Use 'brew install mesa' to get a <GL/gl.h> if no Xcode is installed. |
|
# If Xcode is installed be sure to run `xcode-select --install` first. |
|
# |
|
|
|
[simulator_macos] |
|
build_unflags = -lGL -fstack-protector-strong |
|
build_flags = |
|
-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
|
|
|