Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter

- CitrineOS core extracted (CSMS OCPP 2.0.1)
- OpenOCPP extracted (firmware OCPP 1.6J/2.0.1)
- ShapeShifter library installed (pip install -e)
- ShapeShifter specification extracted
- EVerest extracted

TODO updated with progress
This commit is contained in:
Eric F
2026-06-08 00:38:27 -04:00
parent 468cfeaa50
commit d398a6ced2
7326 changed files with 1177561 additions and 7 deletions

View File

@@ -0,0 +1,116 @@
#[=======================================================================[.rst:
Findjson-rpc-cxx
----------------
Finds the json-rpc-cxx library.
json-rpc-cxx is a header-only JSON-RPC 2.0 framework implemented in C++17
using nlohmann's json for modern C++.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``json-rpc-cxx::json-rpc-cxx``
The json-rpc-cxx library
``json-rpc-cxx``
Alias for json-rpc-cxx::json-rpc-cxx
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``json-rpc-cxx_FOUND``
True if the system has the json-rpc-cxx library.
``json-rpc-cxx_INCLUDE_DIRS``
Include directories needed to use json-rpc-cxx.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``json-rpc-cxx_INCLUDE_DIR``
The directory containing ``jsonrpccxx/common.hpp``.
#]=======================================================================]
# Find nlohmann_json dependency first
find_package(nlohmann_json QUIET)
if(NOT nlohmann_json_FOUND)
# Try to find nlohmann/json with alternative names
find_package(nlohmann-json QUIET)
endif()
# Fallback for environments where nlohmann_json CMake package is not provided
find_path(json-rpc-cxx_NLOHMANN_JSON_INCLUDE_DIR
NAMES nlohmann/json.hpp
DOC "nlohmann_json include directory"
)
set(json-rpc-cxx_HAS_NLOHMANN FALSE)
if(TARGET nlohmann_json::nlohmann_json OR TARGET nlohmann_json)
set(json-rpc-cxx_HAS_NLOHMANN TRUE)
elseif(json-rpc-cxx_NLOHMANN_JSON_INCLUDE_DIR)
set(json-rpc-cxx_HAS_NLOHMANN TRUE)
endif()
# Look for the header file
find_path(json-rpc-cxx_INCLUDE_DIR
NAMES jsonrpccxx/common.hpp
HINTS
${json-rpc-cxx_ROOT}
${json-rpc-cxx_ROOT}/include
$ENV{json-rpc-cxx_ROOT}
$ENV{json-rpc-cxx_ROOT}/include
DOC "json-rpc-cxx include directory"
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(json-rpc-cxx
FOUND_VAR json-rpc-cxx_FOUND
REQUIRED_VARS
json-rpc-cxx_INCLUDE_DIR
json-rpc-cxx_HAS_NLOHMANN
)
if(json-rpc-cxx_FOUND)
set(json-rpc-cxx_INCLUDE_DIRS ${json-rpc-cxx_INCLUDE_DIR})
if(json-rpc-cxx_NLOHMANN_JSON_INCLUDE_DIR)
list(APPEND json-rpc-cxx_INCLUDE_DIRS ${json-rpc-cxx_NLOHMANN_JSON_INCLUDE_DIR})
endif()
# Create imported target
if(NOT TARGET json-rpc-cxx::json-rpc-cxx)
add_library(json-rpc-cxx::json-rpc-cxx INTERFACE IMPORTED)
set_target_properties(json-rpc-cxx::json-rpc-cxx PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${json-rpc-cxx_INCLUDE_DIRS}"
)
# Add C++17 requirement
set_target_properties(json-rpc-cxx::json-rpc-cxx PROPERTIES
INTERFACE_COMPILE_FEATURES cxx_std_17
)
# Link nlohmann_json dependency if found
if(TARGET nlohmann_json::nlohmann_json)
set_target_properties(json-rpc-cxx::json-rpc-cxx PROPERTIES
INTERFACE_LINK_LIBRARIES nlohmann_json::nlohmann_json
)
elseif(TARGET nlohmann_json)
set_target_properties(json-rpc-cxx::json-rpc-cxx PROPERTIES
INTERFACE_LINK_LIBRARIES nlohmann_json
)
endif()
# Create alias for simpler target name
add_library(json-rpc-cxx ALIAS json-rpc-cxx::json-rpc-cxx)
endif()
endif()
mark_as_advanced(
json-rpc-cxx_INCLUDE_DIR
json-rpc-cxx_NLOHMANN_JSON_INCLUDE_DIR
)