Pracuję nad biblioteką C ++. Ostatecznie chciałbym udostępnić go publicznie na wiele platform (przynajmniej Linux i Windows), wraz z kilkoma przykładami i powiązaniami Pythona . Prace przebiegają nieźle, ale w tej chwili projekt jest dość chaotyczny, zbudowany wyłącznie w i dla Visual C ++, a nie w ogóle wieloplatformowy.
Dlatego uważam, że porządek jest w porządku. Pierwszą rzeczą, którą chciałbym poprawić, jest struktura katalogów projektu. Chciałbym stworzyć strukturę odpowiednią dla narzędzi Automake , aby umożliwić łatwą kompilację na wielu platformach, ale nigdy wcześniej ich nie używałem. Ponieważ nadal będę wykonywał (większość) kodowania w programie Visual Studio, będę potrzebować miejsca, w którym będę przechowywać również pliki projektów i rozwiązań programu Visual Studio.
Próbowałem znaleźć w Google terminy takie jak „Struktura katalogów biblioteki C ++”, ale nie pojawiają się żadne przydatne informacje. Znalazłem kilka bardzo podstawowych wskazówek, ale nie ma krystalicznie jasnych rozwiązań.
Przeglądając niektóre biblioteki open source, wymyśliłem następujące rzeczy:
\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 wcześniejszego doświadczenia z programowaniem wieloplatformowym / projektami open source / mam małe doświadczenie i jestem bardzo zdumiony, że nie mogę znaleźć dobrych wskazówek, jak zorganizować taki projekt.
Jak ogólnie należy zorganizować taki projekt biblioteczny? Co warto przeczytać? Czy są jakieś dobre przykłady?