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:
@@ -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)
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user