<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>