Я работаю над библиотекой С++. В конечном счете, я хотел бы сделать его общедоступным для нескольких платформ (по крайней мере, Linux и Windows), а также некоторые примеры и привязки Python. Работа идет хорошо, но на данный момент проект довольно грязный, построенный исключительно для Visual С++, а не для нескольких платформ.
Поэтому я чувствую, что очистка в порядке. Первое, что я хотел бы улучшить, это структура каталога проекта. Я хотел бы создать структуру, подходящую для инструментов Automake, чтобы упростить компиляцию на нескольких платформах, но я никогда не использовал это раньше. Поскольку я все еще буду делать (большую часть) кодирование в Visual Studio, мне нужно где-то сохранить мои проекты и файлы решений Visual Studio.
Я попробовал google для таких терминов, как "структура каталогов библиотеки С++", но ничего полезного, похоже, не появилось. Я нашел несколько основных принципов, но не имел четких решений.
При взгляде на некоторые библиотеки с открытым исходным кодом я пришел к следующему:
\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
...
У меня нет/немного предыдущего опыта работы с проектами с несколькими платформами/с открытым исходным кодом, и я очень удивлен тем, что не могу найти никаких хороших рекомендаций о том, как структурировать такой проект.
Как вообще можно структурировать такой проект библиотеки? Что рекомендуется читать? Есть ли хорошие примеры?