<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
Hi all,<br>
<br>
If I compile the master branch with <tt>--prefix=/usr</tt><br>
<i><tt>meson --prefix=/usr -Dpipelines=uvcvideo,ipu3 build
&& sudo ninja -C build install</tt></i><br>
<br>
<br>
The headers turns out to have a directory structure as below: <br>
<br>
<tt><br>
</tt><tt>[uajain@localhost libcamera]$ tree /usr/include/libcamera/</tt><tt><br>
</tt><tt>/usr/include/libcamera/</tt><tt><br>
</tt><tt>├── ipa</tt><tt><br>
</tt><tt>│ ├── ipa_controls.h</tt><tt><br>
</tt><tt>│ ├── ipa_interface.h</tt><tt><br>
</tt><tt>│ └── ipa_module_info.h</tt><tt><br>
</tt><tt>└── libcamera</tt><tt><br>
</tt><tt> ├── bound_method.h</tt><tt><br>
</tt><tt> ├── buffer.h</tt><tt><br>
</tt><tt> ├── camera.h</tt><tt><br>
</tt><tt> ├── camera_manager.h</tt><tt><br>
</tt><tt> ├── class.h</tt><tt><br>
</tt><tt> ├── compiler.h</tt><tt><br>
</tt><tt> ├── control_ids.h</tt><tt><br>
</tt><tt> ├── controls.h</tt><tt><br>
</tt><tt> ├── file_descriptor.h</tt><tt><br>
</tt><tt> ├── formats.h</tt><tt><br>
</tt><tt> ├── framebuffer_allocator.h</tt><tt><br>
</tt><tt> ├── geometry.h</tt><tt><br>
</tt><tt> ├── libcamera.h</tt><tt><br>
</tt><tt> ├── logging.h</tt><tt><br>
</tt><tt> ├── object.h</tt><tt><br>
</tt><tt> ├── pixel_format.h</tt><tt><br>
</tt><tt> ├── property_ids.h</tt><tt><br>
</tt><tt> ├── request.h</tt><tt><br>
</tt><tt> ├── signal.h</tt><tt><br>
</tt><tt> ├── span.h</tt><tt><br>
</tt><tt> ├── stream.h</tt><tt><br>
</tt><tt> ├── transform.h</tt><tt><br>
</tt><tt> └── version.h</tt><tt><br>
</tt><tt><br>
</tt><tt>2 directories, 26 files</tt><br>
<br>
<br>
My question is, is this how we want public headers to be placed ?
For e.g. the absolute path of <tt>signal.h</tt> is<tt>
/usr/include/libcamera/libcamera/signal.h</tt>, hence, even the
below diff will compile successfully (due to linker find path magic)<br>
<tt><br>
</tt><tt>diff --git a/src/libcamera/object.cpp
b/src/libcamera/object.cpp</tt><tt><br>
</tt><tt>index cd83c684..5f005d1b 100644</tt><tt><br>
</tt><tt>--- a/src/libcamera/object.cpp</tt><tt><br>
</tt><tt>+++ b/src/libcamera/object.cpp</tt><tt><br>
</tt><tt>@@ -9,7 +9,7 @@</tt><tt><br>
</tt><tt> </tt><tt><br>
</tt><tt> #include <algorithm></tt><tt><br>
</tt><tt> </tt><tt><br>
</tt><tt>-#include <libcamera/signal.h></tt><tt><br>
</tt><tt>+#include <libcamera/libcamera/signal.h></tt><br>
<br>
<br>
Considering the case where we also need to expose some of the
internal libcamera headers on system locations (for IPAs to use) -
It's better to kick off some dicussions around how we would
structure the header locations. This will also clear some of my
ongoing meson cleanup work (not all patches, but only a couple).<br>
</body>
</html>