Estoy trabajando en una biblioteca de C ++. En última instancia, me gustaría que esté disponible públicamente para múltiples plataformas (Linux y Windows al menos), junto con algunos ejemplos y enlaces de Python . El trabajo avanza muy bien, pero en este momento el proyecto es bastante complicado, construido únicamente en y para Visual C ++ y no es multiplataforma en absoluto.
Por lo tanto, creo que es necesario realizar una limpieza. Lo primero que me gustaría mejorar es la estructura de directorios del proyecto. Me gustaría crear una estructura que sea adecuada para las herramientas de Automake para permitir una fácil compilación en múltiples plataformas, pero nunca antes las había usado. Como todavía estaré haciendo (la mayor parte) de la codificación en Visual Studio, necesitaré un lugar para guardar mi proyecto de Visual Studio y los archivos de solución también.
Intenté buscar en Google términos como "estructura de directorio de la biblioteca C ++", pero parece que no surge nada útil. Encontré algunas pautas muy básicas, pero no soluciones claras como el cristal.
Mientras miraba algunas bibliotecas de código abierto, se me ocurrió lo siguiente:
\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
...
No tengo o tengo poca experiencia previa con proyectos de código abierto / desarrollo multiplataforma y estoy bastante sorprendido de que no puedo encontrar ninguna buena guía sobre cómo estructurar un proyecto de este tipo.
¿Cómo se debería estructurar en general un proyecto de biblioteca de este tipo? ¿Qué se puede recomendar leer? ¿Hay buenos ejemplos?