diff --git a/app/meson.build b/app/meson.build index 49466a0..ab5f45f 100644 --- a/app/meson.build +++ b/app/meson.build @@ -30,7 +30,7 @@ endif app_libs = [] cpp_args = [] if 'static' == get_option('default_library') - app_libs = [ sciqlop_amdaplugin, sciqlop_mockplugin] + app_libs = [sciqlop_mockplugin, sciqlop_python_providers] cpp_args += ['-DQT_STATICPLUGIN'] endif diff --git a/core b/core index d831ff8..a0c89a7 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit d831ff83b9bb13121444a5bd86040d4bddfe72d3 +Subproject commit a0c89a70c83c407d12cf22096a0e7ffae4763e00 diff --git a/plugins/meson.build b/plugins/meson.build index ccb5698..530f572 100644 --- a/plugins/meson.build +++ b/plugins/meson.build @@ -1,2 +1,3 @@ subdir('mockplugin') -subdir('amda') +subdir('python_providers') +#subdir('amda') diff --git a/plugins/python_providers/include/python_providers.h b/plugins/python_providers/include/python_providers.h index 0827d15..d9a5a94 100644 --- a/plugins/python_providers/include/python_providers.h +++ b/plugins/python_providers/include/python_providers.h @@ -20,6 +20,7 @@ class PythonProviders : public QObject, public IPlugin public: /// @sa IPlugin::initialize() void initialize() override; + ~PythonProviders(); }; #endif // PYTHON_PROVIDERS_H diff --git a/plugins/python_providers/meson.build b/plugins/python_providers/meson.build new file mode 100644 index 0000000..01fe463 --- /dev/null +++ b/plugins/python_providers/meson.build @@ -0,0 +1,38 @@ + +pybind11_dep = dependency('pybind11', required : true, fallback:['pybind11','pybind11_dep']) + +python_providers_moc_headers = [ + 'include/python_providers.h' +] + +python_providers_sources = [ + 'src/python_providers.cpp' +] + +python_providers_inc = include_directories(['include']) + + +gen = generator(moc, + output : 'moc_@BASENAME@.cpp', + arguments : ['@INPUT@', + '-DSCIQLOP_PLUGIN_JSON_FILE_PATH="'+meson.source_root()+'/plugins/python_providers/resources/python_providers.json"', + '-I', meson.current_source_dir()+'/include', + '-I', meson.current_source_dir()+'/../../core/include/', + '-o', '@OUTPUT@']) + +python_providers_moc_files = gen.process(python_providers_moc_headers) + +cpp_args = ['-DPYTHON_PROVIDERS_LIB','-DQT_PLUGIN', '-DQT_NO_KEYWORDS'] +if(get_option('default_library')=='static') + cpp_args += ['-DQT_STATICPLUGIN'] +endif + +sciqlop_python_providers = library('pythonproviders', + python_providers_sources, + python_providers_moc_files, + cpp_args : cpp_args, + include_directories : [python_providers_inc], + dependencies : [sciqlop_core, sciqlop_gui, pybind11_dep], + install : true, + install_dir : join_paths(get_option('libdir'), 'SciQLop') + ) diff --git a/plugins/python_providers/src/python_providers.cpp b/plugins/python_providers/src/python_providers.cpp index 43acc58..881b823 100644 --- a/plugins/python_providers/src/python_providers.cpp +++ b/plugins/python_providers/src/python_providers.cpp @@ -4,6 +4,14 @@ namespace py = pybind11; void PythonProviders::initialize() { - py::scoped_interpreter guard {}; + py::initialize_interpreter(false); py::print("Hello, World!"); + py::print("Hello, World!"); + py::print("Hello, World!"); + py::print("Hello, World!"); +} + +PythonProviders::~PythonProviders() +{ + py::finalize_interpreter(); }