summaryrefslogtreecommitdiff
path: root/subprojects
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ideasonboard.com>2022-05-09 13:10:20 +0300
committerKieran Bingham <kieran.bingham@ideasonboard.com>2022-05-10 13:53:43 +0200
commit8aa02271fd716ed046970a0b1f89176963303f50 (patch)
treeda81430f03dc967addbdec3c143001b1490c751d /subprojects
parent5cb17e0c138aa3afef92e8d95d876d2bd94516ed (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/.gitignore3
-rw-r--r--subprojects/packagefiles/pybind11/meson.build7
-rw-r--r--subprojects/pybind11.wrap9
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