123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- #
- # 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
- src_build_flags = -Wall -IMarlin/src/HAL/LINUX/include
- build_unflags = -Wall
- lib_ldf_mode = off
- lib_deps =
- 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
- #
- # 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]
- #
- # Debugging with gdb in vscode is as easy as adding the launch task as usual, but platformio
- # will randomly remove your task when it recreates its tasks from a template. Add your gdb
- # launch task to '~/.platformio/penv/lib/python{PYTHON_VERSION}/site-packages/platformio/ide/tpls/vscode/.vscode'
- # to avoid this until platformio updates.
- #
- [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/include -IMarlin/src/HAL/NATIVE_SIM/u8g
- src_build_flags = -Wall -Wno-expansion-to-defined -Wcast-align
- release_flags = -g0 -O3 -flto
- debug_build_flags = -fstack-protector-strong -g -g3 -ggdb
- lib_compat_mode = off
- src_filter = ${common.default_src_filter} +<src/HAL/NATIVE_SIM>
-
- lib_deps = ${common.lib_deps}
- MarlinSimUI=https://github.com/p3p/MarlinSimUI/archive/master.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]
- platform = ${simulator_linux.platform}
- extends = simulator_linux
- build_type = debug
-
- [env:simulator_linux_release]
- platform = ${simulator_linux.platform}
- extends = simulator_linux
- build_type = release
- build_flags = ${simulator_linux.build_flags} ${simulator_linux.release_flags}
-
- #
- # Simulator for macOS (MacPorts)
- #
- # sudo port install gcc10 gdb glm libsdl2 freetype
- # sudo port install ld64 @3_3 +ld64_xcode
- # sudo port uninstall ld64 ld64-latest
- # cd /opt/local/bin
- # sudo rm -f gcc g++ cc
- # sudo ln gcc-mp-10 gcc ; sudo ln g++-mp-10 g++ ; sudo ln g++ cc
- # cd -
- #
- # 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.
- #
- # For VSCode debugging paste the block below near the top of launch.json.
- # NOTE: The PlatformIO VSCode extension will remove it when regenerating launch.json.
- #
- # { "name": "Debug Sim",
- # "type": "cppdbg",
- # "request": "launch",
- # "program": "${workspaceFolder}/.pio/build/simulator_macos/MarlinSimulator",
- # "miDebuggerPath": "/opt/local/bin/ggdb",
- # "MIMode": "gdb",
- # "cwd": "${workspaceFolder}/.pio/build/simulator_macos" },
- #
- [simulator_macos]
- build_unflags = -lGL
- custom_verbose = 0
- 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
-
- [env:simulator_macos_debug]
- platform = ${env:simulator_linux_release.platform}
- 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}
-
- [env:simulator_macos_release]
- platform = ${env:simulator_linux_release.platform}
- extends = env:simulator_linux_release
- build_flags = ${env:simulator_linux_release.build_flags} ${simulator_macos.build_flags}
- build_unflags = ${simulator_macos.build_unflags}
-
- #
- # 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
- #
- [env:simulator_windows]
- platform = ${simulator_common.platform}
- extends = simulator_common
- src_build_flags = ${simulator_common.src_build_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
|