Include directory structure, and installation packages

Alexandros Frantzis alexandros.frantzis at canonical.com
Tue Mar 19 15:35:43 UTC 2013


On Tue, Mar 19, 2013 at 01:50:07PM +0000, Alan Griffiths wrote:
> Hi all,
> 
> From discussions on recent MPs I think we lack a clear consensus on how
> our headers relate to different use cases and how they are packaged. I
> believe these are what we are wanting to support:
> 
> Use case 1:  client process, graphics toolkit.
> Use case 2:  server process, graphics toolkit.
> Use case 3:  server process, shell (or other use of mir as a library).
> 
> And the headers are organised with:
> 
> Use case 1:  client process, graphics toolkit.
>     shared/mir_toolkit/ + client/mir_toolkit/ => <target>/mir_toolkit/
>
> Use case 2:  server process, graphics toolkit.
>     shared/mir_toolkit/ + server/mir_toolkit/ => <target>/mir/
>
> Use case 3:  server process, use of mir as a library (shell).
>     shared/mir/ + server/mir/  => <target>/mir/
>    (and shared/mir_toolkit/common.h => <target>/mir_toolkit/ - which,
> admittedly, is a bit odd)
>
> We have some "internal" use cases:
> 
> Use case 4: examples - some are use case 1, some use case 3
> Use case 5: tests - these have access to some internal headers too
> (under src).
> 
> To support these, we have also accessory/mir
> 
> First question: have I missed an important use case?
> 
> Second question: any suggestions for better header layouts to support
> these use cases?

Here is an alternative, along with how it could be broken up into
packages:

shared/mir_toolkit/ => <target>/mir_toolkit: libmirtoolkit-common-dev
client/mir_toolkit/ => <target>/mir_toolkit: libmirtoolkit-client-dev
server/mir_toolkit/ => <target>/mir_toolkit: libmirtoolkit-server-dev

shared/mir + server/mir => <target>/mir: libmirserver-dev which will
depend on libmirtoolkit-common-dev (perhaps we can find a more suitable
name for libmirtoolkit-common-dev).

So, we would have something like:

#include <mir_toolkit/client.h>
#include <mir_toolkit/client_lightdm.h>

#include <mir_toolkit/server.h>
#include <mir_toolkit/server_bla.h>

#include <mir/compositor/compositor.h>
#include <mir/frontend/shell.h>

Thanks,
Alexandros



More information about the Mir-devel mailing list