cpp-io2d/P0267_RefImpl

io2d.h is not copied during install on GNU/Linux

Opened this issue · 15 comments

When installing the library system-wide, io2d.h and other backend files are not exported.

How did you fix the issue? Because, on my end, if I follow the process as laid out in BUILDING.md I don't find the io2d being installed. No header files.

Try

cmake --build install

Nope!

I followed these steps. Am I missing any step here?

Refresh apt: sudo apt-get update
Install GCC: sudo apt-get install g++-7 build-essential
Install Cairo: sudo apt-get install libcairo2-dev
Install graphicsmagick: sudo apt-get install libgraphicsmagick1-dev
Install libpng: sudo apt-get install libpng-dev

Then you build the library itself and then you install it system-wide using that command. I agree that BUILDING.md is extremely barebones and written by someone who is not that great with CMake. I'm gonna fix this.

Yupp that seems very barebones. I did build it but now it seems I need to work on the catch. As I get this error while building:

catch.hpp: No such file or directory
 #include <catch.hpp>

Catch is only used by samples. Did you build the samples? Myself, I decided not to.

I think I did. I build the example executions.

Are you trying to use Catch in your own code? Then you need to enable it somehow. Exact commands depend on your package manager and build system.

No, I won't be using Catch. But seems like while system-wide build it's throwing the error. I did fix it. And now it seems I have installed and see all the required header files.

Thanks a ton for the help. I will write a detailed answer here if anyone wandering for an answer and stumbles here. I did this on Windows 10 Ubuntu bash.

I only see Catch used in tests, for that reason I built without tests.

Yeah, in retrospect even I should have built it without tests but well things worked out.

Regarding Catch. Did you make sure to clone the repo with '--recursive'?

I did not. At that time I was unaware that it had submodules like catch.

You can try sudo make install to have a system-wide installation