diff options
author | Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> | 2022-05-09 13:10:20 +0300 |
---|---|---|
committer | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2022-05-10 13:53:43 +0200 |
commit | 8aa02271fd716ed046970a0b1f89176963303f50 (patch) | |
tree | da81430f03dc967addbdec3c143001b1490c751d /subprojects | |
parent | 5cb17e0c138aa3afef92e8d95d876d2bd94516ed (diff) |
Add Python bindings
Add libcamera Python bindings. pybind11 is used to generate the C++ <->
Python layer.
We use pybind11 'smart_holder' version to avoid issues with private
destructors and shared_ptr. There is also an alternative solution here:
https://github.com/pybind/pybind11/pull/2067
Only a subset of libcamera classes are exposed. Implementing and testing
the wrapper classes is challenging, and as such only classes that I have
needed have been added so far.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'subprojects')
-rw-r--r-- | subprojects/.gitignore | 3 | ||||
-rw-r--r-- | subprojects/packagefiles/pybind11/meson.build | 7 | ||||
-rw-r--r-- | subprojects/pybind11.wrap | 9 |
3 files changed, 18 insertions, 1 deletions
diff --git a/subprojects/.gitignore b/subprojects/.gitignore index 391fde2c..0e194289 100644 --- a/subprojects/.gitignore +++ b/subprojects/.gitignore @@ -1,3 +1,4 @@ /googletest-release* /libyuv -/packagecache
\ No newline at end of file +/packagecache +/pybind11 diff --git a/subprojects/packagefiles/pybind11/meson.build b/subprojects/packagefiles/pybind11/meson.build new file mode 100644 index 00000000..1be47ca4 --- /dev/null +++ b/subprojects/packagefiles/pybind11/meson.build @@ -0,0 +1,7 @@ +project('pybind11', 'cpp', + version : '2.9.1', + license : 'BSD-3-Clause') + +pybind11_incdir = include_directories('include') + +pybind11_dep = declare_dependency(include_directories : pybind11_incdir) diff --git a/subprojects/pybind11.wrap b/subprojects/pybind11.wrap new file mode 100644 index 00000000..e8037a5d --- /dev/null +++ b/subprojects/pybind11.wrap @@ -0,0 +1,9 @@ +[wrap-git] +url = https://github.com/pybind/pybind11.git +# This is the head of 'smart_holder' branch +revision = aebdf00cd060b871c5a1e0c2cf4a333503dd0431 +depth = 1 +patch_directory = pybind11 + +[provide] +pybind11 = pybind11_dep |