diff --git a/ini/native.ini b/ini/native.ini index 1905559fd0..4896691907 100644 --- a/ini/native.ini +++ b/ini/native.ini @@ -15,17 +15,18 @@ [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_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 -lib_deps = build_src_filter = ${common.default_src_filter} + # # 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] # @@ -34,18 +35,20 @@ build_src_filter = ${common.default_src_filter} + [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 -Wcast-align +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} + lib_deps = ${common.lib_deps} - MarlinSimUI=https://github.com/p3p/MarlinSimUI/archive/refs/heads/bugfix-2.0.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 + MarlinSimUI=https://github.com/p3p/MarlinSimUI/archive/bugfix-2.0.x.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 @@ -65,40 +68,40 @@ build_flags = ${simulator_linux.build_flags} ${simulator_linux.release_flags} # # -# MacPorts: -# sudo port install gcc11 glm libsdl2 libsdl2_net +# Use the script buildroot/bin/mac_gcc to prepare your environment. # -# cd /opt/local/bin -# sudo rm -f gcc g++ cc -# sudo ln -s gcc-mp-11 gcc ; sudo ln -s g++-mp-11 g++ ; sudo ln -s g++ cc +# MacPorts: +# https://www.macports.org/install.php +# +# sudo port install gcc14 glm mesa libsdl2 libsdl2_net +# +# cd $(dirname "$(which port)") +# 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 # -# Use 'sudo port install mesa' to get a 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 +# brew install gcc@14 glm mesa sdl2 sdl2_net # -# cd /opt/homebrew/bin +# cd "$(brew --prefix)/bin" # sudo rm -f gcc g++ cc -# sudo ln -s gcc-12 gcc ; sudo ln -s g++-12 g++ ; sudo ln -s g++ cc +# sudo ln -s gcc-14 gcc ; sudo ln -s g++-14 g++ ; sudo ln -s g++ cc # cd - # -# Use 'brew install mesa' to get a 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 = +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/ + -I/opt/local/include/SDL2 -L/opt/local/lib -Wl,-framework,OpenGl -Wl,-framework,CoreFoundation @@ -123,10 +126,16 @@ 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 +# 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_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