microReticulumTbeam/tools/keygen/CMakeLists.txt
John Poole 84d947a3f0 Add host-side rns-provision tool and portable build infrastructure
- Add tools/keygen/rns-provision CLI
- Generate Reticulum identities with TSV/JSON output
- Add provisioning bundle support (--outdir, --bundle)
- Write manifest.json + per-device identity.json/bin + label.txt
- Enforce 0600 permissions on private key material
- Add -h/--help and version output
- Make build portable across distros (msgpack shim targets)
- Integrate ArduinoJson include paths
- Disable ReticulumShared build (static-only)
2026-02-12 11:17:48 -08:00

24 lines
890 B
CMake

add_executable(rns-provision main.cpp)
# If microReticulum exports an include directory / target, this may be unnecessary.
# Keep this here as a pragmatic fallback:
target_include_directories(rns-provision PRIVATE
${CMAKE_SOURCE_DIR}/external/microReticulum/src
)
# ArduinoJson is pulled by microReticulum headers; add it to this tool's include path.
target_include_directories(rns-provision PRIVATE
${CMAKE_SOURCE_DIR}/external/microReticulum/src
# ArduinoJson headers:
# - ArduinoJson.h lives at the repo root
# - ArduinoJson/... lives under src/
${CMAKE_BINARY_DIR}/_deps/arduinojson-src
${CMAKE_BINARY_DIR}/_deps/arduinojson-src/src
)
# Link against the microReticulum library target.
# If this target name is wrong in your submodule, change it here.
target_link_libraries(rns-provision PRIVATE ReticulumStatic)
install(TARGETS rns-provision RUNTIME DESTINATION bin)