Je suis sur le point de commencer à travailler sur une bibliothèque multiplateforme qui sera écrite en C++. Plus tard, j'ai l'intention d'implémenter des liens pour d'autres langages tels que Python, Java, etc. La bibliothèque doit être disponible sur les principales plateformes : win32, Linux et Mac OSX.
Bien que l'application soit en réalité une bibliothèque, quelques programmes de base pour la console seront fournis avec elle à des fins de démonstration et de test.
J'aimerais trouver une structure de dossier optimale avant de commencer à stocker des choses dans Subversion.
Je pense à quelque chose comme :
/project //Top level folder
/bin //Binaries ready for deployment
/linux_amd64 //Linux AMD64 platform
/debug //Debug build - duplicated in all platforms
/release //Release build - duplicated in all platforms
/linux_i386 //Linux 32-bit platform
/macosx //Mac OS X
/win32 //Windows 32-bit platform
/cygwin //Windows 32-bit platform compiled with Cygwin
/vs.net //Windows 32-bit platform compiled with Visual Studio .NET
/win64 //Windows 64-bit platform
/build //Make and build files, IDE project files
/linux_amd64 //Linux AMD64 platform
/linux_i386 //Linux 32-bit platform
/macosx //Mac OS X
/win32 //Windows 32-bit platform
/win64 //Windows 64-bit platform
/config //Configuration files that accompany the binaries
/data //Data files that accompany the binaries
/doc //Documentation
/lib //External or third-party libraries
/platforms //Platform-specific code for ...
/linux_amd64 //Linux AMD64 platform
/linux_i386 //Linux 32-bit platform
/macosx //Mac OS X
/win32 //Windows 32-bit platform
/win64 //Windows 64-bit platform
/src //Available library source code in subfolders
/src //Source code tree - this will contain main.cpp
/bindings //Bindings to other languages such as ...
/python
/java
/h //Header files
/modules //Platform-independent modules, components or subprojects
/platforms //Platform-specific code for ...
/linux_amd64 //Linux AMD64 platform-specific code
/linux_i386 //Linux 32-bit platform-specific code
/macosx
/win32 //Windows 32-bit platform-specific code
/win64 //Windows 64-bit platform
/test //Automated test scripts
Si vous avez des suggestions, je serais ravi de les entendre. Je me demande s'il existe un outil qui peut aider à créer cette structure.
J'ai l'intention d'utiliser CMake et Subversion.