[deps] added opencv and stdexec

opencv would be used to compile actual processing part
stdexec would be used for RPC module :)

TG-8 #in-progress
This commit is contained in:
Artur Mukhamadiev 2026-03-12 20:45:04 +03:00
parent 603646c230
commit 9cb3f009ea
8 changed files with 86 additions and 3 deletions

2
.gitignore vendored
View File

@ -7,4 +7,6 @@ subprojects/nlohmann_json/
subprojects/packagecache/ subprojects/packagecache/
subprojects/yaml-cpp-0.8.0 subprojects/yaml-cpp-0.8.0
subprojects/base64-0.5.2/ subprojects/base64-0.5.2/
subprojects/stdexec/
subprojects/.*
.venv/ .venv/

View File

@ -0,0 +1,20 @@
//
// Created by vptyp on 11.03.2026.
//
#pragma once
#include <opencv4/opencv2/opencv.hpp>
namespace score {
class Image {
public:
Image();
explicit Image(cv::Mat&& image);
~Image();
cv::Mat get() const;
protected:
cv::Mat data_;
};
}

View File

@ -3,6 +3,7 @@ project('cloud_point_rpc', 'cpp',
default_options : ['warning_level=3', 'cpp_std=c++20']) default_options : ['warning_level=3', 'cpp_std=c++20'])
# Dependencies # Dependencies
stdexec_dep = dependency('stdexec', fallback: ['stdexec', 'stdexec_dep'])
json_dep = dependency('nlohmann_json', fallback : ['nlohmann_json', 'nlohmann_json_dep']) json_dep = dependency('nlohmann_json', fallback : ['nlohmann_json', 'nlohmann_json_dep'])
thread_dep = dependency('threads') thread_dep = dependency('threads')
asio_dep = dependency('asio', fallback : ['asio', 'asio_dep']) asio_dep = dependency('asio', fallback : ['asio', 'asio_dep'])

22
src/cloud_point/image.cpp Normal file
View File

@ -0,0 +1,22 @@
//
// Created by vptyp on 12.03.2026.
//
#include "cloud_point/image.h"
namespace score {
Image::Image() {
//no work
}
Image::Image(cv::Mat&& image) {
this->data_ = std::move(image);
}
Image::~Image() = default;
cv::Mat Image::get() const {
return this->data_;
}
}

View File

@ -0,0 +1,27 @@
opencv_dep = dependency('opencv4',
fallback: ['libopencv', 'libopencv4'],
required: false)
if not opencv_dep.found()
message('\'opencv\' was not found. Try install libopencv-dev or similar package on your system')
message('cloud_point_compute library removed from compilation')
subdir_done()
endif
cloud_point_sources = files(
'image.cpp'
)
cpc_deps = [ cloud_point_rpc_dep, opencv_dep ]
cloud_point_compute_lib = shared_library('cloud_point_compute',
sources: cloud_point_sources,
include_directories: inc,
dependencies: cpc_deps,
)
cloud_point_compute_dep = declare_dependency(
include_directories: inc,
link_with: cloud_point_compute_lib,
dependencies: cpc_deps
)

View File

@ -7,16 +7,18 @@ cloud_point_rpc_sources = files(
'rpc_coder.cpp' 'rpc_coder.cpp'
) )
deps = [json_dep, thread_dep, glog_dep, yaml_dep, asio_dep, base64_dep]
libcloud_point_rpc = shared_library('cloud_point_rpc', libcloud_point_rpc = shared_library('cloud_point_rpc',
cloud_point_rpc_sources, cloud_point_rpc_sources,
include_directories : inc, include_directories : inc,
dependencies : [json_dep, thread_dep, glog_dep, yaml_dep, asio_dep, base64_dep], dependencies : deps,
install : true) install : true)
cloud_point_rpc_dep = declare_dependency( cloud_point_rpc_dep = declare_dependency(
include_directories : inc, include_directories : inc,
link_with : libcloud_point_rpc, link_with : libcloud_point_rpc,
dependencies : [json_dep, glog_dep, yaml_dep, asio_dep, base64_dep]) dependencies : deps)
# Test lib # Test lib
libcloud_point_rpc_test = shared_library('test_cloud_point', libcloud_point_rpc_test = shared_library('test_cloud_point',
@ -54,3 +56,5 @@ executable('cloud_point_rpc_server',
dependencies : cloud_point_rpc_dep, dependencies : cloud_point_rpc_dep,
link_args : '-pthread', link_args : '-pthread',
install : true) install : true)
subdir('cloud_point')

View File

@ -11,7 +11,7 @@ Base64RPCCoder::Base64RPCCoder() = default;
Base64RPCCoder::~Base64RPCCoder() = default; Base64RPCCoder::~Base64RPCCoder() = default;
/** /**
* Tries to decode ASCII complained string to the * Tries to decode ASCII complained string to the raw bytes
* @param encoded ASCII complained base64 encoded string * @param encoded ASCII complained base64 encoded string
* @return vector of raw bytes << allocated on encoded.size() / 4 * 3 + 1 size * @return vector of raw bytes << allocated on encoded.size() / 4 * 3 + 1 size
*/ */

7
subprojects/stdexec.wrap Normal file
View File

@ -0,0 +1,7 @@
[wrap-git]
url = https://github.com/NVIDIA/stdexec.git
revision = gtc-2026
depth = 1
[provide]
stdexec = stdexec_dep