Administración de svn multiplataforma (Makefiles & Visual Studio)

Estoy trabajando en un pequeño juego llamado freegems , es una versión de código abierto del clásico Bejeweled escrito en C ++ y que usa gosu como API gráfica. Lo he estado desarrollando bajo Ubuntu Linux como de costumbre, pero el otro día quise probarlo y lo compilé en Windows usando Visual Studio 2005 (que nunca antes había usado). El progtwig funcionó a la perfección.

Para comstackrlo en Windows, copié manualmente todos los files fuente y de encabezado a un nuevo proyecto en MSVC, pero me gustaría adaptar el SVN para no tener que volver a crear el proyecto cada vez que quiera comstackrlo.

Por lo tanto, la pregunta sería: ¿Cuál es la mejor manera de organizar el svn para poder tener, por un lado, un Makefile para comstackr el proyecto en Linux y, por otro lado, los files del proyecto MSVC? Ahora mismo tengo una carpeta simple llamada trunk con todos los files de encabezado, fuente y resources.

Nunca antes había usado Visual Studio, así que tampoco sé qué files son los más importantes. Tal vez algunos de esos files se generen automáticamente y no necesiten ser svn-versioned.

Gracias por adelantado.

Puede mantener los files del proyecto en un directory separado "winbuild" o similar. Aún así, mantenerlos requeriría una interacción manual (es decir, agregar cada file nuevo manualmente). Los únicos files que debe cargar a svn son * .vcproj (para MSVC 2005/2008) y * .vcxproj (MSVC 2010).

Alternativamente, podría optar por una solución multiplataforma como CMake, que podría generar makefiles y files de proyectos de Visual Studio a partir de un CMakeLists.txt común, que es el único "file de proyecto" que debería mantenerse (en lugar de su file MAKE) . Especialmente para un proyecto simple (?) Como el suyo (algunos encabezados + fonts). No habría necesidad de include ningún file makefile o vcproj, solo el file CMakelists.txt sería suficiente.

Hay otros como CMake (SCons, boost.jam, jam, premake, etc.)

Debería ser factible, pero requiere algunas testings y testing y error.