Разбор кода Nebula Device2. Часть 2. Сборка движка (статья 1- генерация решений и проектов).
Автор: graveman
Сборка библиотек движка Nebula Device2
Вступление
В данной статье я описываю процесс сборки движка небула. При этом я пользовался мануалом Build System GUI User Manual из файла nebuladevice-code-3307-trunk\nebula2\buildsys3\docs\Manual и исходил из логических рассуждений в тех местах, которые упущены в мануале. Не скажу наверняка, что это правильный способ. Мне нужен был результат и я сделал так, как смог.
При сборке движка небулы исходный код движка компилируется в статические библиотеки, которые затем могут быть скомпонованы с вашим собственным приложением. Результат такой компоновки зависит полностью от программиста – что и как он будет писать с помощью небулы от движка не зависит. Можно написать игру, а можно и просто хелловорд.
Требования
При сборке движка понадобится интегрированная среда разработки Microsoft Visual C++ 2008 Express Edition (msvc2008ee). На нем будут собираться статические библиотеки (либы) движка. Дело в том, что версия msvc2008ee наиболее близка к версии 2005-го года, которая является максимальной версией, проект которой может быть собран системой сборки небулы. IDE msvc2008ee была в свое время достаточно популярна, да и пока она субъективно удобнее для меня. Если у вас она не установлена, то нужно ее скачать и установить. Не так давно я скачивал ее отсюда.
Еще для сборки движка потребуется установленный DXSDK. Нужен будет DXSDK не позднее 2007 и не ранее 2005 года. Можно попробовать скачать отсюда
Если что, могу залить на файлообменник версию за июнь 2007 года. Придется скачать еще достаточно много разных библиотек, но это я буду описывать по ходу изложения материала.
Генерация проектов небулы
Далее я буду предполагать, что проект будет собираться в папке D:/Documents. Можно использовать любую другую папку. Но так как я всю сборку провел в папке D:/Documents, то буду пользоваться при описании ей.
Итак, приступим.Скачиваем исходники небулы отсюда(download snapshot).Исходники представляют из себя архив nebuladevice-code-3307-trunk. Копируем его в папку D:/Documents. Распаковываем архив с исходниками так, чтобы не было двух папок с именем nebuladevice-code-3307-trunk, вложенных одна в другую. Для этого можно стереть в пути распаковки часть пути - я выделил ее на рисунке ниже:
Должен получиться такой путь к папке nebula2, в которой лежат папки appwiz, bin, buildsys3 и т.д.:
D:\Documents\nebuladevice-code-3307-trunk\nebula2Далее при описании операций я буду опускать эту часть пути. Для работы системы сборки проектов небулы необходимы две библиотеки: библиотека языка программирования python и модуль gui wxPython2.6. Скачать wxPython2.6 можно отсюда. Я выбрал дистрибутив с поддержкой юникода: wxPython2.6-win32-unicode-2.6.0.0-py24.
Для работы библиотеки wxPython2.6 требуется python версии 2.4. Я выбрал версию 2.4.4 как самую пофиксенную подверсию версии 2.4. Установочные файлы для python 2.4.4 можно скачать отсюда. Выбираем дистрибутив: For x86 processors: python-2.4.4.msi
Теперь необходимо установить python2.4.4 и wxPython2.6. Сначала нужно установить python 2.4.4.
Запускаем инсталлятор python 2.4.4:
Путь для установки я не менял (так как при этом меньше геморроя):
C:\Python24
При установке python, и это важно, я не отключал опцию “Register Extensions”, чтобы можно было запускать файлы с расширением .py двойным кликом. Оставил включенным еще “Utility Scripts”.
Жмем “Next” :
И далее “Finish”.
Я не знаю как может пойти сборка движка в том случае, если до установки python2.4.4 уже была установлена другая более новая версия python. При этом может случиться так, что по умолчанию двойной клик по файлам с расширением .py будет вызывать запуск интерпретатора python более новой версии и генератор проектов может работать неправильно. Совет тут может быть такой. Если с генерацией решений будут косяки, нужно удалить все установленные дистрибутивы python и wxPython, в том числе и более новые версии python, установить python2.4.4 и wxPython2.6, выполнить все последующие шаги по генерации решений, а потом можно установить обратно ту более новую версию python, которую вы удалили.
Нужно сказать, что я сам долго мучался с установкой, наверное раз 15 переустанавливал разные версии python и wxPython. У меня уже была установлена версия python 3.1.4 и расширение .py было настроено на интерпретатор python этой версии. В итоге пришел к такому решению:
- удалил все установленные версии python;
- почистил реестр программой CCleaner;
- установил python 2.4.4;
- установил wxPython2.6.
Продолжим. После установки python2.4.4 запускаем установщик библиотеки wxPython2.6 двойным кликом.
Жмем “Next”. Далее выйдет окошко, в котором нужно согласиться с лицензией, нажав кнопку “Yes”.
При установке лучше не менять тот путь, который предлагается по умолчанию:
C:\Python24\Lib\site-packages
Далее выйдет окно, в котором нужно выбрать тип установки. Выбираем
Custom installation – оставляем галочку напротив “wxPython modules and library” и
галочку напротив опции “ Make this install be the default wxPython”.
В конце установке я снял галочки с пунктов:
- View README.win32.txt
- Compile python .py files to .pyc
- Create batch files for tool scripts
Жмем кнопку “Finish”.
После установки вышеописанных библиотек переходим к генерации решений движка. Для этого двойным кликом запускаем файл update.py в папке nebula2. Этим действием вы запустите генератор проектов “Nebula 2 Build System”.
Мне от небулы был нужен вообщем-то пока только движок, поэтому я использовал следующие настройки.
Вкладка “Workspace generation”
В списке “Generator” выбираем: vstudio8.
Это максимальная версия msvc, для которой генератор способен создать проект.
Отмечаем пункт списка “Workspaces”:
-nebula2libs
Остальные галочки я не отмечал – мне нужен голый движок.
Жмем кнопку “Run”. Если все нормально через несколько секунд или минут выскочит окошко “Build Summary”, в котором будет написано “All done! Built 2 workspaces”.
Жмем “Close” чтобы закрыть приложение. В папке nebula2 появится папка “build” с проектами:
В следующей статье будет описан процесс донастройки проектов в решении и установка некоторых библиотек для работы с медиаформатами, без которых движок не собирается.
20 января 2016 (Обновление: 24 янв 2016)
Комментарии [4]