mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-09-14 15:16:40 +00:00
Mirrors the simple_repeater sim port exactly: headless (no DISPLAY_CLASS, UITask.cpp excluded from the build), new sim_simple_room_server native env plus build_wasm_room_server.sh, own SimFS root ./sim_data_room so its identity storage can't collide with the companion or repeater instances on the same page/cwd. Verified beyond "it compiles": ran the native binary and confirmed a real _main.id identity file gets persisted through the actual SimFS/IdentityStore path, same as the other two sim targets. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
194 lines
7.6 KiB
INI
194 lines
7.6 KiB
INI
; variants/sim -- native (host) build of the real companion_radio app logic
|
|
; (MyMesh/UITask/DataStore), for Phase 1 of the in-house browser-sim project
|
|
; (see the plan doc / project memory for the full Emscripten roadmap this is
|
|
; step one of). No Emscripten here yet -- plain g++, a terminal ASCII-art
|
|
; "display", stdin for input. Deliberately the easiest possible target so the
|
|
; from-scratch port can be debugged without WASM complexity on top.
|
|
;
|
|
; Not `extends`-ing arduino_base/esp32_base etc: those pull in RadioLib, Wire,
|
|
; SPI and a real Arduino framework, none of which this build wants -- it's
|
|
; written against platform=native from scratch, closer in spirit to
|
|
; [env:native]/[env:native_kiss_modem] below than to a real board env.
|
|
[env:sim_companion_radio]
|
|
platform = native
|
|
build_type = debug
|
|
build_flags =
|
|
-std=c++17
|
|
-g
|
|
; ARM toolchains (every real board target) default `char` to UNSIGNED;
|
|
; x86/ARM64 host compilers default it to signed. The UI's KEY_* codes
|
|
; (src/helpers/ui/UIScreen.h) go up to 0xF3 and get compared/stored as
|
|
; plain `char` throughout (KeyboardWidget.h, PopupMenu.h, UITask.cpp) --
|
|
; without this flag those comparisons are silently always-false on a
|
|
; signed-char host (a negative char never equals a positive KEY_* int
|
|
; literal), which would make keyboard input compile cleanly but never
|
|
; actually navigate anything.
|
|
-funsigned-char
|
|
-D SIM_PLATFORM
|
|
-D MESH_DEBUG=0
|
|
-D DISPLAY_CLASS=SimDisplayDriver
|
|
-D MAX_CONTACTS=100
|
|
-D MAX_GROUP_CHANNELS=8
|
|
-I variants/sim/arduino
|
|
-I variants/sim
|
|
-I variants/sim/thirdparty/crypto
|
|
-I variants/sim/thirdparty/cayennelpp
|
|
-I variants/sim/thirdparty/arduinojson
|
|
-I lib/ed25519
|
|
-I src
|
|
-I examples/companion_radio
|
|
-I examples/companion_radio/ui-new
|
|
build_src_filter =
|
|
-<*>
|
|
+<../src/Dispatcher.cpp>
|
|
+<../src/Identity.cpp>
|
|
+<../src/Mesh.cpp>
|
|
+<../src/Packet.cpp>
|
|
+<../src/Utils.cpp>
|
|
+<../src/helpers/AdvertDataHelpers.cpp>
|
|
+<../src/helpers/BaseChatMesh.cpp>
|
|
+<../src/helpers/ClientACL.cpp>
|
|
+<../src/helpers/CommonCLI.cpp>
|
|
+<../src/helpers/ConfigSerializer.cpp>
|
|
+<../src/helpers/DeviceDiag.cpp>
|
|
+<../src/helpers/IdentityStore.cpp>
|
|
+<../src/helpers/RegionMap.cpp>
|
|
+<../src/helpers/StaticPoolPacketManager.cpp>
|
|
+<../src/helpers/TransportKeyStore.cpp>
|
|
+<../src/helpers/TxtDataHelpers.cpp>
|
|
+<../lib/ed25519/*.c>
|
|
+<../variants/sim/*.cpp>
|
|
+<../variants/sim/thirdparty/crypto/*.cpp>
|
|
+<../variants/sim/thirdparty/cayennelpp/*.cpp>
|
|
+<../examples/companion_radio/*.cpp>
|
|
+<../examples/companion_radio/ui-new/*.cpp>
|
|
|
|
; Phase 3: native build of the real examples/simple_repeater app logic
|
|
; (MyMesh/no UI) against the same variants/sim/ interfaces as
|
|
; [env:sim_companion_radio] above. No DISPLAY_CLASS defined -- a repeater
|
|
; doesn't need one (examples/simple_repeater/main.cpp already gates its
|
|
; UITask/display use behind #ifdef DISPLAY_CLASS, same as every real
|
|
; headless-repeater hardware env does), which also means UITask.cpp/.h
|
|
; never need to be ported/compiled for this target at all.
|
|
;
|
|
; Everything else mirrors [env:sim_companion_radio] deliberately closely
|
|
; (same src/*.cpp list, same real hardware envs' own convention of sharing
|
|
; one broad src/helpers/*.cpp filter across companion_radio/simple_repeater/
|
|
; room_server -- see e.g. variants/ebyte_eora_s3/platformio.ini's
|
|
; [env:Ebyte_EoRa-S3] base + its "_Repeater" env only adding
|
|
; "+<../examples/simple_repeater>" on top) -- a few of those .cpp files
|
|
; (BaseChatMesh.cpp, ConfigSerializer.cpp, DeviceDiag.cpp) aren't actually
|
|
; reachable from simple_repeater's own code, but compiling them in unused is
|
|
; harmless and keeps this env a straightforward diff against the one above
|
|
; rather than a hand-pruned, easy-to-drift-out-of-sync list.
|
|
[env:sim_simple_repeater]
|
|
platform = native
|
|
build_type = debug
|
|
build_flags =
|
|
-std=c++17
|
|
-g
|
|
-funsigned-char
|
|
-D SIM_PLATFORM
|
|
-D MESH_DEBUG=0
|
|
; Real hardware repeater envs get this from [arduino_base] (which this
|
|
; from-scratch platform=native env deliberately doesn't extend -- see the
|
|
; header comment on [env:sim_companion_radio] above); set it explicitly so
|
|
; the repeater actually broadcasts its own identity on boot, same as a
|
|
; real one would.
|
|
-D ENABLE_ADVERT_ON_BOOT=1
|
|
-I variants/sim/arduino
|
|
-I variants/sim
|
|
-I variants/sim/thirdparty/crypto
|
|
-I variants/sim/thirdparty/cayennelpp
|
|
-I variants/sim/thirdparty/arduinojson
|
|
-I lib/ed25519
|
|
-I src
|
|
-I examples/simple_repeater
|
|
build_src_filter =
|
|
-<*>
|
|
+<../src/Dispatcher.cpp>
|
|
+<../src/Identity.cpp>
|
|
+<../src/Mesh.cpp>
|
|
+<../src/Packet.cpp>
|
|
+<../src/Utils.cpp>
|
|
+<../src/helpers/AdvertDataHelpers.cpp>
|
|
+<../src/helpers/BaseChatMesh.cpp>
|
|
+<../src/helpers/ClientACL.cpp>
|
|
+<../src/helpers/CommonCLI.cpp>
|
|
+<../src/helpers/ConfigSerializer.cpp>
|
|
+<../src/helpers/DeviceDiag.cpp>
|
|
+<../src/helpers/IdentityStore.cpp>
|
|
+<../src/helpers/RegionMap.cpp>
|
|
+<../src/helpers/StaticPoolPacketManager.cpp>
|
|
+<../src/helpers/TransportKeyStore.cpp>
|
|
+<../src/helpers/TxtDataHelpers.cpp>
|
|
+<../lib/ed25519/*.c>
|
|
+<../variants/sim/*.cpp>
|
|
+<../variants/sim/thirdparty/crypto/*.cpp>
|
|
+<../variants/sim/thirdparty/cayennelpp/*.cpp>
|
|
+<../examples/simple_repeater/*.cpp>
|
|
; UITask.cpp uses real Arduino GPIO constants (HIGH/LOW/digitalRead(),
|
|
; gated on real #if PIN_USER_BTN/UI_HAS_JOYSTICK defines this env never
|
|
; sets) directly at file scope in its button-polling code, unconditionally
|
|
; -- unlike companion_radio's ui-new/UITask.cpp, it isn't written to
|
|
; compile cleanly with no display at all. Since DISPLAY_CLASS is
|
|
; deliberately undefined for this headless repeater env (main.cpp's own
|
|
; `#ifdef DISPLAY_CLASS` already skips constructing a UITask instance
|
|
; entirely), this translation unit is simply never needed -- exclude it
|
|
; rather than porting GPIO stubs into variants/sim/arduino/Arduino.h for
|
|
; code that would never run.
|
|
-<../examples/simple_repeater/UITask.cpp>
|
|
|
|
; Headless native build of the real examples/simple_room_server app logic
|
|
; against the same variants/sim/ interfaces -- sibling of
|
|
; [env:sim_simple_repeater] above, same reasoning throughout (no
|
|
; DISPLAY_CLASS, so UITask.cpp is never needed here either -- unlike
|
|
; simple_repeater's, this one's UITask.cpp actually WOULD compile fine
|
|
; headless (its digitalRead(PIN_USER_BTN) call is itself gated behind
|
|
; #ifdef PIN_USER_BTN, which this env never defines), but there's still no
|
|
; reason to compile a translation unit that's never linked in, so it's
|
|
; excluded the same way).
|
|
[env:sim_simple_room_server]
|
|
platform = native
|
|
build_type = debug
|
|
build_flags =
|
|
-std=c++17
|
|
-g
|
|
-funsigned-char
|
|
-D SIM_PLATFORM
|
|
-D MESH_DEBUG=0
|
|
-D ENABLE_ADVERT_ON_BOOT=1
|
|
-D ADVERT_NAME='"Sim Room"'
|
|
-I variants/sim/arduino
|
|
-I variants/sim
|
|
-I variants/sim/thirdparty/crypto
|
|
-I variants/sim/thirdparty/cayennelpp
|
|
-I variants/sim/thirdparty/arduinojson
|
|
-I lib/ed25519
|
|
-I src
|
|
-I examples/simple_room_server
|
|
build_src_filter =
|
|
-<*>
|
|
+<../src/Dispatcher.cpp>
|
|
+<../src/Identity.cpp>
|
|
+<../src/Mesh.cpp>
|
|
+<../src/Packet.cpp>
|
|
+<../src/Utils.cpp>
|
|
+<../src/helpers/AdvertDataHelpers.cpp>
|
|
+<../src/helpers/BaseChatMesh.cpp>
|
|
+<../src/helpers/ClientACL.cpp>
|
|
+<../src/helpers/CommonCLI.cpp>
|
|
+<../src/helpers/ConfigSerializer.cpp>
|
|
+<../src/helpers/DeviceDiag.cpp>
|
|
+<../src/helpers/IdentityStore.cpp>
|
|
+<../src/helpers/RegionMap.cpp>
|
|
+<../src/helpers/StaticPoolPacketManager.cpp>
|
|
+<../src/helpers/TransportKeyStore.cpp>
|
|
+<../src/helpers/TxtDataHelpers.cpp>
|
|
+<../lib/ed25519/*.c>
|
|
+<../variants/sim/*.cpp>
|
|
+<../variants/sim/thirdparty/crypto/*.cpp>
|
|
+<../variants/sim/thirdparty/cayennelpp/*.cpp>
|
|
+<../examples/simple_room_server/*.cpp>
|
|
-<../examples/simple_room_server/UITask.cpp>
|