Dans mon développement (principalement C ++), j'ai longtemps adhéré à l'utilisation de builds out-of-source. Autrement dit, ma source se trouve généralement dans un /project/src
répertoire et les versions vivent dans un /project/build/bin/release
,/project/build/bin/debug
répertoires. J'ai fait cela car il garde mes répertoires source propres des fichiers intermédiaires, j'ai un emplacement pour tous mes binaires, l'empaquetage est plus facile, le nettoyage est plus facile et le contrôle de version est plus facile. (Ai-je manqué quelque chose?)
J'hérite d'un (grand) projet maintenant qui utilise des builds en source. Quelle est la motivation de ce type de structure et quels sont ses avantages? (Je suis surtout préoccupé par les raisons de niveau technique par rapport aux types de raisons de préférence personnelle.)
J'espérais que la «conception logicielle C ++ à grande échelle» de Lakos aurait pesé dessus, mais je l'avais raté si c'était le cas.
/project/src/bin/release
, ou vraiment tous les fichiers intermédiaires et de sortie dans /project/src
? Ce dernier peut être en effet un gâchis s'il y a plus d'une dizaine de fichiers sources, le premier est ok.
main.cpp
étant initialement au niveau supérieur de votre projet, il crée toujours un répertoire de construction cmake distinct de votre source à ce niveau supérieur. Je crois que MSVS est similaire à Clion à cet égard également.