Skip to content

Старый README

Ilya edited this page Dec 1, 2018 · 2 revisions

BRus MUD Engine readme.

Содержание

  1. Введение
  2. Требования
  3. Сборка
  4. Запуск
  5. Дополнительные опции

Введение

Вот здесь https://bitbucket.org/bylins/mud/wiki/%D0%92%D1%8B%D1%80%D0%B5%D0%B7%D0%BA%D0%B0%20%D0%B8%D0%B7%20%D1%81%D0%BA%D0%B0%D0%B9%D0%BF%D0%B0%20%D0%BF%D0%BE%20%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B5%20%D0%B1%D1%8B%D0%BB%D0%B8%D0%BD лог из скайпа по пошаговой установке былин.

Система сборки данного проекта была изменена на CMake, дабы унифицировать сборку под различными платформами.

Сам проект может быть взят по адресу https://github.com/bylins/mud.

Из командной строки это делается следующим образом:

$ git clone https://github.com/bylins/mud
$ cd mud

Требования

Перед началом сборки необходимо установить следующие компоненты:

  1. CMake >= 2.8
  2. Boost >= 1.54 with libraries: python, system, filesystem (plus locale on Windows)
  3. Python >= 3.0
  4. zlib
  5. Компилятор

В действительности, если вы собираете под какой-нибудь Ubuntu, то всё необходимое есть в репозитории. Так, для Ubuntu 14.04 и 15.10 достаточно выполнить следующий набор команд:

$ sudo apt-get install libz-dev cmake g++ clang python3.4-dev libboost-python-dev libboost-system-dev mercurial

Здесь оптимистично взят и clang и g++, хотя нужен только один. В зависимости от ваших предпочтений.

Также после установки Boost'а необходимо указать переменную окружения BOOST_ROOT, где находится сама библиотека Boost (заголовочные файлы), а также библиотеки python3, system и filesystem. Для Windows дополнительно должна быть собрана библиотека locale.

Какой взять компилятор - зависит от платформы под которой вы собираете. В частности, проверялись clang++, g++ и Visual Studio 2015. Более старшие версии Visual Studio с компиляцией не справились.

Компиляция библиотек Boost (Windows)

> b2.exe --with-python --with-locale address-model=64 --with-system --with-filesystem link=static install --prefix=<boost installation directory>

Параметр --prefix указывает куда необходимо будет установить самостоятельные заголовочные файлы и собранные библиотеки Boost. Задание этого параметра не обязательно, но позволяет явно указать нужную директорию. На эту же директорию должна указывать переменная BOOST_ROOT.

Использование скомпилированных библиотек Boost

Скачать библиотеки с https://sourceforge.net/projects/boost/files/boost-binaries/1.60.0/: boost_1_60_0-msvc-14.0-64.exe.

Далее, при условии, что Boost был установлен в директорию c:\local:

SET BOOST_ROOT=C:\local\boost_1_60_0
SET BOOST_LIBRARYDIR=C:\local\boost_1_60_0\lib64-msvc-14.0

Сборка

Сборка состоит из двух этапов:

  1. Генерация файлов проекта
  2. Собственно, компиляция

Далее предполагается, что вы производите сборку в Unix подобной операционной системе (исключения оговариваются). В действительности, имеется ввиду Linux. :)

Генерация файлов проекта

Допустим, мы находимся в директории с скачанным проектом. Теперь можно создать отдельную директорию для сборки:

$ mkdir build && cd build

Затем, собственно, генерация файлов проекта. В простейшем случае - это:

$ cmake ..

Если у вас установлено несколько версий Python'а, то, возможно, вы захотите явно указать необходимую версию. Для этого нужно добавить опцию -DPY_VERSION=<version>. Например:

$ cmake -DPY_VERSION=3.4 ..

Кроме того, если установлено несколько Python'ов, то, возможно, будет и несколько версий библиотеки libboost-python, скомпилированных с разными версиями библиотек Python'а. Для явного указания нужной можно использовать опцию -DEXPLICIT_BP_VERSION=YES. Например:

$ cmake -DPY_VERSION=3.4 -DEXPLICIT_BP_VERSION=YES ..

Указать желаемый компилятор можно используя переменную окружения CXX. Т. к. можно указать переменную окружения непосредственно для запуска некоторой команды просто предварив команду этой переменной, то наша команда могла бы выглядеть так:

$ CXX=clang++ cmake -DPY_VERSION=3.4 -DEXPLICIT_BP_VERSION=YES ..

Аналогично, вместо выставления переменной окружения BOOST_ROOT, её можно указать как и переменную CXX:

$ CXX=clang++ BOOST_ROOT=/usr/include cmake -DPY_VERSION=3.4 -DEXPLICIT_BP_VERSION=YES ..

Получившаяся команда сгенерирует Makefile'ы для сборки проекта. В частности, это было проверено на Ubuntu 14.04 и 15.10.

Кроме того, всё это можно было сделать используя GUI, который идёт вместе с cmake'ом.

Для сборки MUD'а в тестовом режиме, нужно добавить опцию -DCMAKE_BUILD_TYPE=Test:

$ cmake -DCMAKE_BUILD_TYPE=Test ..

Для отключения тестов:

cmake .. -DBUILD_TESTS=NO

Windows

Для генерации проекта для Visual Studio, возможно, придётся явно указать генератор файла проекта. Например:

$ cmake -G "Visual Studio 14 2015 Win64" ..

Т. к. по умолчанию генерируется проект для сборки 32-разрядной версии. Т. е. если ваши библиотеки скомпилированы под 64-разрядную архитектуру, то вы получите соответствующее сообщение об ошибке только на самом последнем шаге сборки (линковке).

Cygwin

Python под Cygwin'ом не работает. Поэтому при генерации проекта его необходимо отключить: т. е. добавить ключ -DSCRIPTING=NO:

$ cmake -DSCRIPTING=NO ..

Компиляция

Компиляция сводится к выполнению единственной команды:

$ cmake --build .

Если вы генерировали проект для Visual Studio вы также можете открыть его и собрать проект ALL_BUILD.

Запуск

Если вы собирали проект из Makefile'ов, то в директории с проектом появится исполняемый файл circle. Поэтому просто запускаем его:

$ ./circle

В случае Visual Studio - она покажет, куда сохранила исполняемый файл. Например:

3>  circle.vcxproj -> S:\repositories\hg\mud\build\Debug\circle.exe
4>------ Build started: Project: ALL_BUILD, Configuration: Debug x64 ------
========== Build: 4 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Здесь S:\repositories\hg\mud - директория, куда выгружался проект и S:\repositories\hg\mud\build - директория, куда были сгенерированы файлы проекта.