Кроссплатформенное управление SVN (Makefiles & Visual Studio) - PullRequest
0 голосов
/ 15 июля 2010

Я работаю над небольшой игрой под названием freegemas , это версия классического Bejeweled с открытым исходным кодом, написанная на C ++ и использующая gosu в качестве графического API.Я разрабатывал его под Ubuntu Linux как обычно, но на днях я хотел попробовать и скомпилировал его в Windows, используя Visual Studio 2005 (которую я никогда раньше не использовал).Программа работала безупречно.

Чтобы скомпилировать ее в Windows, я вручную скопировал все исходные файлы и файлы заголовков в новый проект на MSVC, но я хотел бы адаптировать SVN, чтобы мне не пришлось заново создавать проекткаждый раз, когда я хочу его скомпилировать.

Поэтому возникает вопрос: как лучше организовать svn, чтобы я мог, с одной стороны, иметь Makefile для компиляции проекта в Linux, и,с другой стороны, файлы проекта MSVC?Прямо сейчас у меня есть простая папка с именем trunk со всеми заголовочными, исходными файлами и файлами ресурсов.

Я никогда раньше не пользовался Visual Studio, поэтому я не знаю, какие файлы наиболеетоже важно.Возможно, некоторые из этих файлов генерируются автоматически и не требуют svn-версии.

Заранее спасибо.

1 Ответ

1 голос
/ 15 июля 2010

Вы можете просто хранить файлы проекта в отдельном каталоге "winbuild" или подобном. Тем не менее, для их обслуживания потребуется ручное взаимодействие (т.е. добавление каждого нового файла вручную). Единственные файлы, которые вам нужно будет загрузить в svn - это * .vcproj (для MSVC 2005/2008) и * .vcxproj (MSVC 2010).

В качестве альтернативы, вы можете выбрать кроссплатформенное решение, такое как CMake, которое может генерировать make-файлы и файлы проектов Visual Studio из общего CMakeLists.txt, который является единственным «файлом проекта», который необходимо поддерживать (вместо ваш makefile). Особенно для простого (?) Проекта, подобного вашему (некоторые заголовки + источники). Нет необходимости включать какие-либо файлы makefile или vcproj, достаточно файла CMakelists.txt.

Есть и другие, такие как CMake (SCons, boost.jam, jam, premake и т. Д.)

Это должно быть выполнимо, но требует некоторого тестирования и проб и ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...