Сразу оговорюсь - статья предназначена для тех, кто не работал со scons, git и gcc под Windows и хочет помочь в разработке. При желании продолжать разработку необходимо разобраться хотя бы с git, но лучше и со scons.
Итак, приступим.
Пункт первый. Получение исходного кода.
Для этого есть 2 пути:
скачать архив -src отсюда Cursed Earth Files
или получить код с последними изменениями и различными ветками кода из git-репозитория. Для этого у нас есть средство msysgit. Вы можете получить его отсюда: msysgit В комплекте предоставляется графическая оболочка пользователя а так же командная строка.
Если Вы собираетесь использовать GUI, то интерфейс довольно интуитивен. В GUI есть весьма удобный просмотрщик дерева git и истории комитов. Хотя GUI обладает, наверное, всеми возможностями git, рекомендую использовать консольный интерфейс. Таким образом Вы сможете заодно разобраться с этой прогрессивной системой управлениями версиями.
Если Вы будете пользоваться коммандной строкой — синтаксис одинаков с linux, основы описаны в файле документации от создателя проекта git.txt
В случае использования командной строки советую при установке выбрать опцию "Run from the Windows command prompt" которая позволит вызывать команды git из встроенной командной строки windows(cmd.exe).
Проверяем работоспособность git. В командной строке пишем на выходе получаем: Получаем последний доступны исходный код основной ветки командой
из папки подготовленой под проект (пусть будет C:dev)
Так же стоит заметить несколько странное взаимодействие msysgit с репозиторием на sourceforge.net – сразу по получению кода команда git status выдает что некоторые файлы проекта были изменены и не закомичены почтовая рассылка.
В этом случае помогают команды:
Не забываем устанавливать личную информацию и исключения для git (описано в документации к проекту).
Так или иначе мы получили исходный код в некоторой папке (допустим C:devcursedearth).
Пункт второй. Установка компилятора.
Мы будем использовать MinGW с gcc 4.4. Теоретически возможно использовать для сборки Visual C, но этот вариант не тестировался и не рекомендуется.
Не рекомендуется так же использование автоматического инсталятора MinGW-5.1.6, т.к. он устанавливает gcc 3.6, что может вызывать непредвиденные ошибки.
Установка MinGW элементарна.
Вы можете использовать мою сборку(включает freeglut) в таком случае вам необходимо будет разархивировать архив, расположить freeglut.dll(лежит в архиве) и измениить переменную среды - все это описано ниже.
Если решили собрать сами, то скачиваем все необходимые архивы:
binutils-2.19-1-mingw32-bin.tar.gz
gcc-c++-4.4.0-mingw32-bin.tar.gz
gcc-c++-4.4.0-mingw32-dll.tar.gz
gcc-core-4.4.0-mingw32-bin.tar.gz
gcc-core-4.4.0-mingw32-dll.tar.gz
gmp-4.2.4-mingw32-dll.tar.gz
make-3.81-20090914-mingw32-bin.tar.gz
mingwrt-3.17-mingw32-dev.tar.gz
mingwrt-3.17-mingw32-dll.tar.gz
mpfr-2.4.1-mingw32-dll.tar.gz
pthreads-w32-2.8.0-mingw32-dll.tar.gz
w32api-3.14-mingw32-dev.tar.gz
mingw-utils-0.4-1-mingw32-bin.tar.lzma
Распаковываем с совмещением каталогов в одну папку (допустим C:MinGW).
После этого нам необходимо установить freeglut.
Скачиваем, распаковываем в C:MinGW папки include и lib. Добавляем freeglut.dll в папку system32 находящуюся в папке WINDOWS.
После этого нам необходимо добавить в конец переменной среды PATH.
Проверяем — в командной строке выполняем последние строки будут такими
Из проблем тут можно сказать лишь о неправильной кодировке сообщений об ошибках. В английском они отсутствуют, так что решается удалением папки C:MinGWsharelocaleru (в моей сборке она уже отсутствует).
Пункт третий. Cистема сборки.
Рекомендуется использовать scons - систему сборки встроенную в проект.
Для этого необходимо установить Python 2.6.4 (Допустим в папку Cython26)
После этого устанавливаем scons
Добавляем в конец переменной стреды PATHПроверяем — в командной строке выполняем Получаем На получим
Итак система сборки и компилятор готовы. Через командную строку в папке C:devcursedearth выполним команду и получим готовые исполняемые файлы.
Насчет scons так же есть небольшой документ от создателя проекта scons.txt
Для редактирования в случае использования scons советую использовать, например, notepad++
Особенно удобно использовать с плагином Light Explorer (ставится через менеджер дополнений)
Так же мной была опробована разработка в Eclipse.
Сразу скажу, что данный метод хорош лишь тем, что довольно привычен после разработки в VC или (само собой) в eclipse. Возможны определенные проблемы в будущем в связи с изменением структуры каталогов и использованием дополнительных библиотек.
Если Вы все же решили использовать eclipse, советую устанавливать Eclipse IDE for C/C++ Developers
При запуске eclipse выбираем, что будем использовать папку C:dev(или любую другую папку) как WORKSPACE.
Тут можно выполнить проверку работоспособности, создав проект “hello world” на C и посмотреть на приветствие в консоли внизу экрана.
Итак приступим, создаем “C Project” → “Empty Project” c названием cursedearth. Убеждаемся что проект у нас будет располагаться в C:devcursedearth.
Первым делом лезем в настройки проекта “Project” → “Properties” → “C/C++ Build” → “Settings”
Выбираем “GCC C Compiler” добавляем в поле Command флаг компилятора -std=c99 - в итоге будетПосле этого переходим из “GCC C Compiler” в “MinGW C Linker” → “Libraries”
Добавляем в лист Libraries(-l) строчки
Применяем изменения нажав на кнопку Apply.
Далее из “C/C++ Build” мы переходим в “C/C++ General” → “Paths and Symbols”
Во вкладке “Includes” → “GNU C” у нас уже присутствуют директории ссылающиеся на MinGW. Добавим свою директорию “Add” → “C:/dev/cursedearth/game/include” или соответственно через WORKSPACE.
Перейдем во вкладку "Source Location" и добавим через “Add Folder” 3 папки с исходниками:
Удаляем из списка папку /cursedearth
Применяем изменения нажав на кнопку Apply. Закрываем настройки проекта.
В компилируемых исходниках (папка со значком C) game/src выбираем все файлы оканчивающиеся на _posix, а так же _opengl или _generic, которые дублируют друг друга, нажимаем правой кнопкой и выбираем “Exclude from build” → “Select All” → “OK”.
Тут стоит оговориться — мы можем за 1 раз собрать или texviewer или mprviewer.
В этом случае нам надо выбрать какой из main.c исключить и действовать аналогично.
Если Вы хотите подключить исходник к компиляции — в свойствах отключенного Правая кнопка → “Properties” → “C/C++ Build” снимаем галку “Exclude resource from build” и отключаем дублирующий исходник.
После всех этих манипуляций жмем Build(молоток) и Run(белый треугольник в зеленом круге).
Во вкладку Console внизу экрана высвечивается help по использованию запущеной программы.
Чтобы задать атрибуты запуска вызываем выпадающее меню (стрелочка справа от Run) “Run Configuration” → “C/C++ Application” → “*.exe” выбираем вкладку “Arguments”
для mprviewer надо добавить нечто вроде
для texviewer - Не забываем добавить в C:devcursedearth.gitinfoexclude строчки:
Ну вот вроде бы и все. Если что то будет непонятно — спрашивайте, дополню картинками и пояснениями.
Итак, приступим.
Пункт первый. Получение исходного кода.
Для этого есть 2 пути:
скачать архив -src отсюда Cursed Earth Files
или получить код с последними изменениями и различными ветками кода из git-репозитория. Для этого у нас есть средство msysgit. Вы можете получить его отсюда: msysgit В комплекте предоставляется графическая оболочка пользователя а так же командная строка.
Если Вы собираетесь использовать GUI, то интерфейс довольно интуитивен. В GUI есть весьма удобный просмотрщик дерева git и истории комитов. Хотя GUI обладает, наверное, всеми возможностями git, рекомендую использовать консольный интерфейс. Таким образом Вы сможете заодно разобраться с этой прогрессивной системой управлениями версиями.
Если Вы будете пользоваться коммандной строкой — синтаксис одинаков с linux, основы описаны в файле документации от создателя проекта git.txt
В случае использования командной строки советую при установке выбрать опцию "Run from the Windows command prompt" которая позволит вызывать команды git из встроенной командной строки windows(cmd.exe).
Проверяем работоспособность git. В командной строке пишем
Код:
git --version
Код:
git version 1.6.5.1.1367.gcd48
Код:
git clone git://cursedearth.git.sourceforge.net/gitroot/cursedearth/cursedearth
Так же стоит заметить несколько странное взаимодействие msysgit с репозиторием на sourceforge.net – сразу по получению кода команда git status выдает что некоторые файлы проекта были изменены и не закомичены почтовая рассылка.
В этом случае помогают команды:
Код:
git config core.autocrlf "false"
rm .git/index
git reset --hard
Так или иначе мы получили исходный код в некоторой папке (допустим C:devcursedearth).
Пункт второй. Установка компилятора.
Мы будем использовать MinGW с gcc 4.4. Теоретически возможно использовать для сборки Visual C, но этот вариант не тестировался и не рекомендуется.
Не рекомендуется так же использование автоматического инсталятора MinGW-5.1.6, т.к. он устанавливает gcc 3.6, что может вызывать непредвиденные ошибки.
Установка MinGW элементарна.
Вы можете использовать мою сборку(включает freeglut) в таком случае вам необходимо будет разархивировать архив, расположить freeglut.dll(лежит в архиве) и измениить переменную среды - все это описано ниже.
Если решили собрать сами, то скачиваем все необходимые архивы:
binutils-2.19-1-mingw32-bin.tar.gz
gcc-c++-4.4.0-mingw32-bin.tar.gz
gcc-c++-4.4.0-mingw32-dll.tar.gz
gcc-core-4.4.0-mingw32-bin.tar.gz
gcc-core-4.4.0-mingw32-dll.tar.gz
gmp-4.2.4-mingw32-dll.tar.gz
make-3.81-20090914-mingw32-bin.tar.gz
mingwrt-3.17-mingw32-dev.tar.gz
mingwrt-3.17-mingw32-dll.tar.gz
mpfr-2.4.1-mingw32-dll.tar.gz
pthreads-w32-2.8.0-mingw32-dll.tar.gz
w32api-3.14-mingw32-dev.tar.gz
mingw-utils-0.4-1-mingw32-bin.tar.lzma
Распаковываем с совмещением каталогов в одну папку (допустим C:MinGW).
После этого нам необходимо установить freeglut.
Скачиваем, распаковываем в C:MinGW папки include и lib. Добавляем freeglut.dll в папку system32 находящуюся в папке WINDOWS.
После этого нам необходимо добавить
Код:
;C:mingwbin
Проверяем — в командной строке выполняем
Код:
gcc -v
Код:
Thread model: win32
gcc version 4.4.0 (GCC)
Пункт третий. Cистема сборки.
Рекомендуется использовать scons - систему сборки встроенную в проект.
Для этого необходимо установить Python 2.6.4 (Допустим в папку Cython26)
После этого устанавливаем scons
Добавляем в конец переменной стреды PATH
Код:
;C:Python26;C:Python26Scripts
Код:
python -V
Код:
Python 2.6.4
Код:
scons -v
Код:
SCons by Steven Knight et al.:
engine: v1.2.0.r3842,...
Код:
scons
Насчет scons так же есть небольшой документ от создателя проекта scons.txt
Для редактирования в случае использования scons советую использовать, например, notepad++
Особенно удобно использовать с плагином Light Explorer (ставится через менеджер дополнений)
Так же мной была опробована разработка в Eclipse.
Сразу скажу, что данный метод хорош лишь тем, что довольно привычен после разработки в VC или (само собой) в eclipse. Возможны определенные проблемы в будущем в связи с изменением структуры каталогов и использованием дополнительных библиотек.
Если Вы все же решили использовать eclipse, советую устанавливать Eclipse IDE for C/C++ Developers
При запуске eclipse выбираем, что будем использовать папку C:dev(или любую другую папку) как WORKSPACE.
Тут можно выполнить проверку работоспособности, создав проект “hello world” на C и посмотреть на приветствие в консоли внизу экрана.
Итак приступим, создаем “C Project” → “Empty Project” c названием cursedearth. Убеждаемся что проект у нас будет располагаться в C:devcursedearth.
Первым делом лезем в настройки проекта “Project” → “Properties” → “C/C++ Build” → “Settings”
Выбираем “GCC C Compiler” добавляем в поле Command флаг компилятора -std=c99 - в итоге будет
Код:
gcc -std=c99
Добавляем в лист Libraries(-l) строчки
Код:
freeglut
opengl32
glu32
Далее из “C/C++ Build” мы переходим в “C/C++ General” → “Paths and Symbols”
Во вкладке “Includes” → “GNU C” у нас уже присутствуют директории ссылающиеся на MinGW. Добавим свою директорию “Add” → “C:/dev/cursedearth/game/include” или соответственно через WORKSPACE.
Перейдем во вкладку "Source Location" и добавим через “Add Folder” 3 папки с исходниками:
Код:
/game/src
/spikes/mprviewer/src
/spikes/texviewer/src
Применяем изменения нажав на кнопку Apply. Закрываем настройки проекта.
В компилируемых исходниках (папка со значком C) game/src выбираем все файлы оканчивающиеся на _posix, а так же _opengl или _generic, которые дублируют друг друга, нажимаем правой кнопкой и выбираем “Exclude from build” → “Select All” → “OK”.
Тут стоит оговориться — мы можем за 1 раз собрать или texviewer или mprviewer.
В этом случае нам надо выбрать какой из main.c исключить и действовать аналогично.
Если Вы хотите подключить исходник к компиляции — в свойствах отключенного Правая кнопка → “Properties” → “C/C++ Build” снимаем галку “Exclude resource from build” и отключаем дублирующий исходник.
После всех этих манипуляций жмем Build(молоток) и Run(белый треугольник в зеленом круге).
Во вкладку Console внизу экрана высвечивается help по использованию запущеной программы.
Чтобы задать атрибуты запуска вызываем выпадающее меню (стрелочка справа от Run) “Run Configuration” → “C/C++ Application” → “*.exe” выбираем вкладку “Arguments”
для mprviewer надо добавить нечто вроде
Код:
-t C:/EI/Res/textures.res -f C:/EI/Maps/basegipat.mpr
Код:
C:/EI/Res/textures.res
Код:
.cproject
.project
Debug
Ну вот вроде бы и все. Если что то будет непонятно — спрашивайте, дополню картинками и пояснениями.