Struktura katalogów dla biblioteki C ++

Pracuję nad biblioteką C ++. Ostatecznie chciałbym udostępnić go publicznie dla wielu platform (przynajmniej Linux i Windows), wraz z kilkoma przykładami iPyton wiązania. Prace przebiegają ładnie, ale w tej chwili projekt jest dość bałaganiarski, zbudowany wyłącznie w i dlaVisual C ++ a nie w ogóle na wielu platformach.

Dlatego czuję, że porządek jest w porządku. Pierwszą rzeczą, którą chciałbym poprawić, jest struktura katalogów projektu. Chciałbym stworzyć strukturę odpowiednią dlaAutomake narzędzia umożliwiające łatwą kompilację na wielu platformach, ale nigdy wcześniej ich nie używałem. Ponieważ będę nadal wykonywać (większość) kodowanie w Visual Studio, będę potrzebował gdzieś, aby zachować także pliki projektu i rozwiązania Visual Studio.

Próbowałem google pojęć takich jak „struktura katalogów C ++”, ale nic użytecznego nie wydaje się pojawiać. Znalazłem kilka bardzo podstawowych wytycznych, ale nie ma krystalicznie czystych rozwiązań.

Patrząc na niektóre biblioteki open source, wymyśliłem następujące:

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

Nie mam / mam niewielkie doświadczenie z wieloplatformowymi projektami deweloperskimi / open source i jestem zdumiony, że nie mogę znaleźć żadnych dobrych wskazówek dotyczących struktury takiego projektu.

W jaki sposób należy generalnie skonstruować taki projekt biblioteczny? Co warto przeczytać? Czy są jakieś dobre przykłady?

questionAnswers(5)

yourAnswerToTheQuestion