✨ Simulator HAL and build targets (#22418)
This commit is contained in:
committed by
Scott Lahteine
parent
e0fa6ed4f8
commit
dc67705049
107
ini/native.ini
107
ini/native.ini
@ -21,3 +21,110 @@ 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.git
|
||||
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
|
||||
#
|
||||
[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} -fno-stack-protector -Wl,-subsystem,windows -ldl -lmingw32 -lSDL2main -lSDL2 -lSDL2_net -lopengl32 -lssp
|
||||
build_type = debug
|
||||
|
Reference in New Issue
Block a user