Installed headers don't play nice with CMake #942
Labels
1. Enhancement
Issues that propose improvements to existing features
2. Needs informations
Needs additional informations
5. Installation
Describe the bug
Aravis headers include other aravis headers with e.g.
#include <arvtypes.h>
, without an intermediatearavis/
subdirectory, which is created on installation. This means that client projects need to not only include<prefix>/include
as an include directory, but also<prefix>/include/aravis
. This lack of namespacing opens the door for file name collisions. Admittedly this is currently unlikely, since all headers start witharv…
, but in my opinion this is still unconventional. I've encountered this problem before, where some library came with anevent.h
header which shadowed a macOS system header.It's more usual to either include everything as
#include <aravis/…>
for build and install tree (necessitating moving all headers into a separatearavis/
directory in the build), or to use double quotes#include "arvtypes.h"
in aravis headers.To Reproduce
Install aravis, add just
<prefix>/include
do include path, try to build something that includes<aravis/arv.h>
.Expected behavior
Including
<prefix>/include
as an include path is sufficient to build against aravis.Camera description:
n/a
Platform description:
Additional context
It seems to me that just using double quotes would be the simplest solution.
The text was updated successfully, but these errors were encountered: