I am working on a c++ library. Ultimately, I would like to make it publicly available for multiple platforms (linux/windows at least), along with some examples and python bindings. Work is progressing nicely, but at the moment the project is quite messy, built solely in and for VC++ and not multi platform at all.
Therefore, I feel a cleanup is in order. The first thing I'd like to improve is the project's directory structure. I'd like to create a structure that is suitable for the automake tools to allow easy compilation on multiple platforms, but I've never used these before. Since I'll still be doing (most of the) coding in visual studio, I'll need somewhere to keep my visual studio project and solution files as well.
I tried to google for terms like "c++ library directory structure", but nothing useful seems to come up. I found some very basic guidelines, but no crystal clear solutions.
While looking at some open source libraries, I came up with the following:
\mylib
\mylib <source files, read somewhere to avoid 'src' directory>
\include? or just mix .cpp and .h
\bin <compiled examples, where to put the sources?>
\python <python bindings stuff>
\lib <compiled library>
\projects <vc++ project files, .sln goes in project root?>
\include?
README
AUTHORS
...
I have no/little previous experience with multi platform development/open source projects, and am quite amazed that I cannot find any good guidelines on how to structure such a project.
How should one generally structure such a library project? Any recommended reading? Any good examples?