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,57 @@
# download everest-core (source of util and libcbv2g)
include(ExternalProject)
ExternalProject_Add(
everest-core-src
DOWNLOAD_DIR "everest-core/src"
GIT_REPOSITORY "https://github.com/EVerest/everest-core.git"
GIT_TAG "61e97863fd2fc9f429f9cd2e4b689139e7d46981"
TIMEOUT 30
LOG_DOWNLOAD ON
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
# util is header-only
ExternalProject_Get_Property(everest-core-src SOURCE_DIR)
set(UTIL_INCLUDE_DIR "${SOURCE_DIR}/lib/everest/util/include")
# workaround for https://gitlab.kitware.com/cmake/cmake/-/issues/15052
file(MAKE_DIRECTORY ${UTIL_INCLUDE_DIR})
add_library(everest_util INTERFACE IMPORTED GLOBAL)
add_library(everest::util ALIAS everest_util)
set_property(TARGET everest_util PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${UTIL_INCLUDE_DIR})
add_dependencies(everest_util everest-core-src)
# build everest-core/lib/everest/cbv2g
ExternalProject_Add(
cbv2g-src
DOWNLOAD_COMMAND ""
SOURCE_DIR "everest-core-src-prefix/src/everest-core-src/lib/everest/cbv2g"
PREFIX "everest-core"
INSTALL_COMMAND ""
LOG_CONFIGURE ON
LOG_BUILD ON
DEPENDS everest-core-src
)
ExternalProject_Get_Property(cbv2g-src SOURCE_DIR)
ExternalProject_Get_Property(cbv2g-src BINARY_DIR)
set(CBV2G_INCLUDE_DIR "${SOURCE_DIR}/include")
set(CBV2G_LIB_DIR "${BINARY_DIR}/lib/cbv2g")
# workaround for https://gitlab.kitware.com/cmake/cmake/-/issues/15052
# create CBV2G_INCLUDE_DIR since it will not exist in configure step
file(MAKE_DIRECTORY ${CBV2G_INCLUDE_DIR})
add_library(cbv2g_tp STATIC IMPORTED)
add_library(cbv2g::tp ALIAS cbv2g_tp)
set_property(TARGET cbv2g_tp PROPERTY IMPORTED_LOCATION ${CBV2G_LIB_DIR}/libcbv2g_tp.a)
set_property(TARGET cbv2g_tp PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${CBV2G_INCLUDE_DIR})
add_dependencies(cbv2g_tp cbv2g-src)
add_library(cbv2g_iso20 STATIC IMPORTED)
add_library(cbv2g::iso20 ALIAS cbv2g_iso20)
set_property(TARGET cbv2g_iso20 PROPERTY IMPORTED_LOCATION ${CBV2G_LIB_DIR}/libcbv2g_iso20.a)
set_property(TARGET cbv2g_iso20 PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${CBV2G_INCLUDE_DIR})
add_dependencies(cbv2g_iso20 cbv2g-src)

View File

@@ -0,0 +1,40 @@
# detect if we try to build inside everest-core and libcbv2g is available
message(STATUS "Attempting build with autodetected local dependencies")
get_filename_component(EVC_EVEREST_LIB_DIR ${PROJECT_SOURCE_DIR} DIRECTORY)
set(EVC_CBV2G_DIR "${EVC_EVEREST_LIB_DIR}/cbv2g")
if (EVC_CBV2G_DIR AND NOT DISABLE_ISO15118_LOCAL_DEPENDENCIES)
message(STATUS "Detected libcbv2g in ${EVC_CBV2G_DIR}, if you do not want this set -DDISABLE_ISO15118_LOCAL_DEPENDENCIES=ON")
add_subdirectory("${EVC_CBV2G_DIR}" libcbv2g)
endif()
function(ev_register_library_target NAME)
endfunction()
set(EVC_UTIL_DIR "${EVC_EVEREST_LIB_DIR}/util")
if (EVC_UTIL_DIR AND NOT DISABLE_ISO15118_LOCAL_DEPENDENCIES)
message(STATUS "Detected util in ${EVC_UTIL_DIR}, if you do not want this set -DDISABLE_ISO15118_LOCAL_DEPENDENCIES=ON")
if (BUILD_TESTING)
message(STATUS "Setting BUILD_TESTING temporary to false")
set(CACHE_BUILD_TESTING ON)
set(BUILD_TESTING OFF)
endif()
add_subdirectory("${EVC_UTIL_DIR}" util)
if (CACHE_BUILD_TESTING)
set(BUILD_TESTING ON)
endif()
endif()
# set venv location
set(${PROJECT_NAME}_PYTHON_VENV_PATH "${CMAKE_BINARY_DIR}/venv" CACHE PATH "Path to python venv")
ev_setup_python_executable(
USE_PYTHON_VENV ${${PROJECT_NAME}_USE_PYTHON_VENV}
PYTHON_VENV_PATH ${${PROJECT_NAME}_PYTHON_VENV_PATH}
)
get_filename_component(EVC_LIB_DIR ${EVC_EVEREST_LIB_DIR} DIRECTORY)
get_filename_component(EVC_DIR ${EVC_LIB_DIR} DIRECTORY)
set(EVC_EDM_DIR "${EVC_DIR}/applications/dependency_manager")
# use edm from everest-core
add_subdirectory("${EVC_EDM_DIR}" edm_tool)