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