Сборка из исходников Ogre Dependencies, Ogre3D, MyGUI, Bullet Physics с использованием MinGW, CMake и среды разработки QtCreator под Windows

В этой статье я буду описывать производимые действия по сборке из исходников Ogre Dependencies, Ogre3D, MyGUI, Bullet Physics под ОС Windows 7.

Итак как-то раз решил я в свободное время делать простенькую игру. Поскольку из языков программирования я люблю С++ решил писать именно на нём. Также я очень люблю Qt и программирую обычно в QtCreator. Для графики выбрал Ogre3D, так как уже когда то с ним работал, плюс о нём много положительных отзывов и присутствует хорошее русское сообщество. Также разработчиками из русского сообщества была создана отличная библиотека MyGUI, которая позволяет создавать графический интерфейс пользователя(GUI) для игр и 3D приложений. Из вики Огра я узнал о неплохом физическом движке Bullet Physics, у Огра даже есть врапер для этого движка. Но после того, как я его пощупал, принял решение не использовать врапер и работать с Bullet Physics напрямую. Также на русском геймдеве я услышал о звуковой библиотеки OpenAL. Ну и выбрал свой любимый Qt, чтобы пользоваться строками, листами, векторами и другими фишками, в дальнейшем планирую прикрутить из других проектов использование QNetworkManager для проверки наличия новых версий программы.

План данной статьи:
1. Подготовка необходимых инструментов
2. Организация структуры папок и закачка исходников
3. Подготовка технологий для внедрения в проект
3.1. Сборка зависимостей Ogre3D
3.2. Сборка из исходников Ogre3D
3.3. Сборка из исходников MyGUI
3.4. Сборка из исходников Bullet Physics
4. Заключение

1. Подготовка необходимых инструментов

Прежде чем приступить к сборке, необходимо подготовить инструментарий.
Нам понадобится Mercurial, SVN, CMake. Для Mercurial я выбрал клиент TortoiseHg http://tortoisehg.bitbucket.org/. Для SVN одноимённый клиент TortoiseSVN http://tortoisesvn.net/. CMake можно скачать здесь http://www.cmake.org/.
Также нам понадобится QtCreator, MinGW и сам Qt. Так как я работаю в основном с Qt у меня имеется QtSDK в котором уже есть и QtCreator, и MinGW, и библиотеки Qt, и много чего ещё=). Скачать QtSDK можно здесь http://qt-project.org/downloads. Однако если в вашем проекте не нужно использовать Qt можете скачать QtCreator и MinGW отдельно. При этом придётся рассказать QtCreator где расположено MinGW, если он его сам не подхватит.
Также для сборки Ogre3D понадобится DirectX SDK. Я использовал Microsoft DirectX SDK (June 2010) его скачать можно тут http://www.microsoft.com/download/en/details.aspx?id=6812
После того как все необходимые инструменты установлены и настроены можно приступать к следующему этапу.

2. Организация структуры папок и закачка исходников

Немного о моей структуре папок, в которой всё будет располагаться:
В «D:\Dev\ExternalDependencies» будут находиться все зависимости моей игры (кроме QtSDK он в корне диска «D:\»).

Зависимости Ogre3D будут располагаться в следующих папках:

  • OgreDependencies
  • OgreDependencies_build
  • OgreDependencies_install

Сам Ogre3D будет располагаться в следующих папках:

  • Ogre
  • Ogre_build
  • Ogre_install

Библиотека для отрисовки интерфейса – MyGUI:

  • MyGUI
  • MyGUI_build
  • MyGUI_install

Физический движок Bullet Physics:

  • Bullet
  • Bullet_build
  • Bullet_install

В общем виде всё это дело будет выглядеть так:

D:\Dev\ExternalDependencies\
                        ├ OgreDependencies
                        ├ OgreDependencies_build
                        ├ OgreDependencies_install
                        ├ Ogre
                        ├ Ogre_build
                        ├ Ogre_install
                        ├ MyGUI
                        ├ MyGUI_build
                        ├ MyGUI_install
                        ├ Bullet
                        ├ Bullet_build
                        └ Bullet_install

2.1 Исходники зависимостей Ogre3D

Итак, первыми пойдут исходники зависимостей Огра. Они удобно расположены в одном репозитории https://bitbucket.org/cabalistic/ogredeps. При помощи клиента для меркуриала сливаем их в «D:\Dev\ExternalDependencies\OgreDependencies» и временно забываем про них.

2.2 Исходники Ogre3D

Затем приступаем к исходникам самого Огра. Они расположены здесь: https://bitbucket.org/sinbad/ogre/ сливаем их в «D:\Dev\ExternalDependencies\Ogre» после чего переключаемся на ветку v1-8. Выписка из официального вики Огра по этому поводу:

To clone OGRE directly to the stable version (Byatis) do this
hg clone https://bitbucket.org/sinbad/ogre/ -u v1-8
For the unstable 'default' branch
hg clone https://bitbucket.org/sinbad/ogre/
Note: You can always switch branches at any time. For instance, this command switches to the current
stable branch:hg update v1-8
http://www.ogre3d.org/tikiwiki/Building+Ogre

2.3 Исходники MyGUI

Приступаем к сливанию исходников библиотеки отечественного производителя – MyGUI. Исходники находятся здесь: https://my-gui.svn.sourceforge.net/svnroot/my-gui/trunk забираем их в папку «D:\Dev\ExternalDependencies\MyGUI» и забываем про них на время.

2.4 Исходники Bullet

Теперь разбираемся с исходники физического движка Bullet. Забираем их с репозитория http://bullet.googlecode.com/svn/trunk и кидаем в «D:\Dev\ExternalDependencies\Bullet» и на этом всё.

3. Подготовка технологий для внедрения в проект

3.1. Сборка зависимостей Ogre3D

Тут всё просто, запускаем QtCreator, затем «Файл – Открыть файл» указываем «CMakeLists.txt» который находится у меня в каталоге «D:\Dev\ExternalDependencies\OgreDependencies». Креатор сразу же спрашивает где будет расположен каталог для сборки. У меня это «D:\Dev\ExternalDependencies\OgreDependencies_build». После чего переходит ко следующей страничке. Там можно ввести параметры. Нам необходимо задать Симэйку каталог, где он будет формировать установку. Мой каталог установки это «D:\Dev\ExternalDependencies\OgreDependencies_install», поэтому я задаю такой параметр «-DCMAKE_INSTALL_PREFIX=D:/Dev/ExternalDependencies/OgreDependencies_install» (без кавычек и обратите внимания на слеши). После чего жмём «Запустить CMake». Пошелестев под капотом, если всё прошло успешно, можно смело жать «Завершить», после чего Креатор открывает Симэйк файл как проект.
Теперь необходимо доконфигурировать Симэйк, в принципе можно было это сделать на предыдущем этапе, но я решил сделать это сейчас. Итак мы должны сказать Симэйку какой режим сборки использовать. Лично меня интересует Debug и Release, возможно у вас возникнут потребности в каких-то других режимах. Поэтому идём в «Сборка» и жмём «Запустить CMake». Появляется знакомое окошко в котором можно вбивать параметры) Поэтому мы вводим параметр «-DCMAKE_BUILD_TYPE=Debug». Другими словами мы задаём переменной CMAKE_BUILD_TYPE значение Debug, что как бы намекает Симэйку и правилам внутри конфигурационного файла, что мы хотим запилить Debug режим. Соответственно когда мы захотим использовать Release, надо будет проделать те же самые действия, но при этом изменить параметр на «-DCMAKE_BUILD_TYPE=Release»(без кавычек).
Также необходимо добавить один параметр для вызова установки. Для этого в боковой панели Креатора идём в меню «Проекты» в параметрах «Запустить» в установке добавляем этап «Сборка» у которого в «Дополнительные параметры» прописываем «install»(без кавычек). На этом всё можно запускать билд(жать на молоток=)). После того, как билд успешно завершится, можно идти в меню «Сборка – Установить всё».
Сборку и установку необходимо делать для каждого режима(Debug и Release).
На этом всё приступаем к сборке Огра)

3.2. Сборка из исходников Ogre3D

Сразу хочу отписаться, что я использую CMake версии 2.8.7. Для сборки опять запускаем Креатор и открываем файл «CMakeLists.txt», после чего указываем каталог, в котором будет расположена сборка Огра, у меня это «D:\Dev\ExternalDependencies\Ogre_build». Затем задаём следующие параметры:
Первый параметр задаёт местоположение установки директории зависимостей Огра «-DOGRE_DEPENDENCIES_DIR=D:/Dev/ExternalDependencies/OgreDependencies_install».
Второй параметр задаёт установочную директорию для Огра «-DCMAKE_INSTALL_PREFIX=D:/Dev/ExternalDependencies/Ogre_install».
У меня в Креаторе не получилось сразу прописать два параметра поэтому запускаем их по отдельности. После того как все параметры вбиты жмём «Завершить».
Теперь приступаем к сборке Огра в различных режимах. Также не стоит забывать про то, что нужно прописать команду установки, чтобы Креатор правильно отрабатывал её (как это сделать было написано раньше).

3.3. Сборка из исходников MyGUI

Чтобы собрать замечательную библиотеку MyGUI, необходимо выполнить следующие команды:
«-DMYGUI_DEPENDENCIES_DIR=D:/Dev/ExternalDependencies/OgreDependencies_install»
«-DOGRE_SOURCE=D:/Dev/ExternalDependencies/Ogre»
«-DOGRE_BUILD=D:/Dev/ExternalDependencies/Ogre_install»
«-DMYGUI_INSTALL_MEDIA=true»
«-DMYGUI_INSTALL_SAMPLES=true»
«-DMYGUI_INSTALL_TOOLS=true»
«-DCMAKE_INSTALL_PREFIX=D:/Dev/ExternalDependencies/MyGUI_install»
Помним, что применяем команды по отдельности и без кавычек)
Думаю не стоит описывать каждую из них, вроде всё и так понятно.

3.4. Сборка из исходников Bullet Physics

Чтобы собрать Bullet Physics необходимо выполнить следующие команды:
«-DBUILD_DEMOS=false»
«-DBUILD_EXTRAS=false»
«-DINSTALL_LIBS=true»
«-DCMAKE_INSTALL_PREFIX=D:/Dev/ExternalDependencies/Bullet_install»

4. Заключение

На этом всё, я планирую дальше написать, как я это всё дело засунул в свою гейму. Ваши комментарии и предложения приветствуются=)
Если у вас что-то не получается сделать или вы обнаружите ошибку в статье, не поленитесь и черкните мне о ней, пусть другие люди кто читают эту статью не будут мучиться с ошибкой.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s