Я працюю над бібліотекою 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
...
У мене немає / мало попереднього досвіду з розробкою мультиплатформенних проектів / проектів з відкритим кодом, і я вражений тим, що не можу знайти жодних хороших вказівок щодо структуризації такого проекту.
Як взагалі слід структурувати такий бібліотечний проект? Що можна рекомендувати прочитати? Є кілька хороших прикладів?