¿Cómo lidiar con los compromisos de diferentes entornos de desarrollo?

Decidí convertir mi proyecto de Visual Studio a CMake para desarrollar en múltiples plataforms. Pero me pregunto cómo aplicar versiones eficazmente a un proyecto de CMake.

Digamos, del proyecto CMake, genere un proyecto de Visual Studio en Windows y configure un file make en Linux. No quiero include esos files específicos de la plataforma en commits. ¿Es una buena práctica excluir todos esos files usando .gitignore ?

Esto es lo primero que me vino a la mente, y me gustaría saber si así es como se hace bien. Por ejemplo, también podría include proyectos para todas las diferentes plataforms en mi repository.

Sí, si utiliza CMake como file de proyecto base, no agregue los files generados al repository. Son efectivamente inútiles como una cosa compartida y, a menudo muy específico de la computadora.

Como dije en los comentarios (por @Peter, que copymos descaradamente aquí para una mejor visibilidad), a menudo es una buena idea build fuera de su tree fuente (a diferencia del comportamiento pnetworkingeterminado de Visual Studio). Básicamente, lo haces (desde el directory de origen)

 cd .. mkdir project-build && cd project-build cmake ../project 

Puede decirle a CMake que use un "generador" específico con la opción de command-line -G . Verifique su resultado de ayuda para más detalles. También puede hacer esto a través de la GUI de CMake.