Skip to content
Snippets Groups Projects
Commit 71f4262d authored by dmitriy.gerasimov's avatar dmitriy.gerasimov
Browse files

Merge branch 'features-2954' into 'master'

Features 2954

See merge request cellframe/libdap-chain-plugins-python!2
parents 44891e07 6ee47406
No related branches found
No related tags found
1 merge request!27Support update sdk and merge plugins repo
[submodule "python-cellframe"]
path = python-cellframe
url = https://gitlab.demlabs.net/cellframe/python-cellframe.git
......@@ -6,6 +6,8 @@ set(CMAKE_COLOR_MAKEFILE ON)
set(CMAKE_C_STANDARD 11)
add_definitions("-fpic")
add_definitions("-DDAP_LOG_MT")
add_subdirectory(python-cellframe)
target_compile_options(API_CellFrame PRIVATE "-fpic")
if(UNIX)
add_definitions("-DDAP_OS_UNIX")
......@@ -22,7 +24,7 @@ add_library(${PROJECT_NAME} STATIC ${CHAIN_PLUGINS_PYTHON_SRCS} ${CHAIN_PLUGINS_
target_link_libraries(${PROJECT_NAME})
target_link_libraries(${PROJECT_NAME} dap_core )
target_link_libraries(${PROJECT_NAME} dap_core API_CellFrame)
target_include_directories(${PROJECT_NAME} PUBLIC include/ )
......@@ -6,6 +6,7 @@
#include "dap_file_utils.h"
#include "dap_chain_plugins_manifest.h"
#include "dap_chain_plugins_list.h"
#include "python-cellframe.h"
#ifdef __cplusplus
extern "C"{
......
......@@ -19,9 +19,6 @@ extern "C" {
typedef struct dap_chain_list_plugin_module{
char *name;
PyObject *obj_module;
bool isFuncOnChainsUpdated;
bool isFuncOnGdbUpdated;
bool isFuncOnNetStatusChanged;
struct dap_chain_list_plugin_module *next;
}dap_chain_plugin_list_module_t;
......
Subproject commit 873d35d455186ff621a1515e1f1235e4c194843a
......@@ -9,6 +9,7 @@ int dap_chain_plugins_init(dap_config_t *config){
log_it(L_ERROR, "The directory %s was not found.", plugins_root_path);
return -1;
}
PyImport_AppendInittab("CellFrame", PyInit_libCellFrame);
Py_Initialize();
PyObject *sys_module = PyImport_ImportModule("sys");
sys_path = PyObject_GetAttrString(sys_module, "path");
......@@ -107,6 +108,7 @@ void dap_chain_plugins_load_plugin(const char *dir_path, const char *name){
if (_PyLong_AsInt(res_int) == 0){
dap_chain_plugins_list_add(module, name);
} else {
PyErr_Print();
log_it(L_ERROR, "Code error %i at initialization %s plugin", _PyLong_AsInt(res_int), name);
}
} else {
......
......@@ -8,25 +8,6 @@ void dap_chain_plugins_list_add(PyObject *module, const char *name){
dap_chain_plugin_list_module_t *elemnet = (dap_chain_plugin_list_module_t*)DAP_NEW(dap_chain_plugin_list_module_t);
elemnet->name = dap_strdup(name);
elemnet->obj_module = module;
elemnet->isFuncOnGdbUpdated = true;
elemnet->isFuncOnChainsUpdated = true;
elemnet->isFuncOnNetStatusChanged = true;
//Checking function
PyObject *F_FuncOnGdbUpdated = PyObject_GetAttrString(elemnet->obj_module, "onGdbUpdated");
PyObject *F_FuncOnChainsUpdated = PyObject_GetAttrString(elemnet->obj_module, "onChainsUpdated");
PyObject *F_FuncOnNetStatusChanged = PyObject_GetAttrString(elemnet->obj_module, "onNetStatusChanged");
if (F_FuncOnGdbUpdated == NULL || !PyCallable_Check(F_FuncOnGdbUpdated)){
log_it(L_WARNING, "Plugin %s don't callable function onGdbUpdated", elemnet->name);
elemnet->isFuncOnGdbUpdated = false;
}
if (F_FuncOnChainsUpdated == NULL || !PyCallable_Check(F_FuncOnChainsUpdated)){
log_it(L_WARNING, "Plugin %s don't callable function onChainsUpdated", elemnet->name);
elemnet->isFuncOnChainsUpdated = false;
}
if (F_FuncOnNetStatusChanged == NULL || !PyCallable_Check(F_FuncOnNetStatusChanged)){
log_it(L_WARNING, "Plugin %s don't callable function onNetStatusChanged", elemnet->name);
elemnet->isFuncOnNetStatusChanged = false;
}
LL_APPEND(m_dap_chain_plugins_module_list, elemnet);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment