Зачем вам нужны разные папки платформы для бинарных файлов? Вы собираетесь собирать этот исходный код под разными платформами, но с одинаковой файловой системой?
Если да, я думаю, что вам также нужны специфичные для компилятора папки.
Почему вы не используете разные папки для сборки отладки и выпуска, например, Unicode и не Unicode, однопоточную или многопоточную сборки?
Посмотрите на Бьяма или Булочки заменители. Возможно, вам не нужны разные папки в директории сборки.
Я думаю, будет лучше, если все модули из каталога "modules" будут содержать каталог "tests" для самостоятельного тестирования.
И последнее - см. Библиотеку boost, независимую платформенную библиотеку, которая имеет хорошую структуру.
Также попробуйте получить идеи от других независимых проектов платформы.
Структура папок повышения:
boost - root dir
- boost - library header lib ( for users )
- libs - library source dir ( one dir per lib )
- build - library build files ( if they are needed )
- doc - documentation files
- example - sample programs
- src - library source files
- test - programs and srcipts for testing module
- bin - created by bjam build system
- libs
- <lib-name>
for all compiled folders from libs [example|test|build]
- <compiler-name>/<[static|dynamic]-link>/<[debug|release]>/<[threading mode]>
contain builded [obj|dll|lib|pdb|so|o|etc] files see detailed information in bjam build system
- doc
- tools
Если вы выберете bjam - вас не будет беспокоить структура папок build и bin.
Также ваш libs / src / dir может содержать собственные для всех файлов платформы и пару директорий для специальных файлов платформы.
Я не вижу серьезных проблем в вашей структуре папок, возможно, вы увидите их, когда начнете писать прототип проекта.