-
Notifications
You must be signed in to change notification settings - Fork 1
Home
С нашими объемами непонятного кода, нам недостаточно использовать doxygen.
Нужно подробно описать все аспекты работы с расписатором.
Ядро наиболее полно описано в doxygen, однако там это описание несколько устарело.
Модули разрабатываются на C++ и собираются как shared objects, подгружаются автоматически и предоставляют ядру механизмы пользовательского интерфейса и хранения данных. Сейчас существуют следующие модули:
Скрипты разрабатываются на Lua, и позволяют довольно быстро и удобно работать с ядром. Сейчас есть следующие направления работы:
Сюда нужно вставить пару кусков из README, а также описать (а может и нарисовать) скетчи, представленные нам дизайнерами.
Для сборки понадобятся:
- CMake (>=2.8.3);
- Boost;
- Lua (=5.1);
- libreadline;
- G++ (>=4.6.2);
- sqlite3;
- git.
git clone https://github.com/it-workshop/UniSched.git
Можно использовать запакованную в архив копию директории с исходным кодом, если в неё был добавить файл version.h.
Желательно вне транка выполнить:
mkdir build cd build
Для конфигурации используется CMake.
Опции указываются в формате -DИМЯ=ЗНАЧЕНИЕ. Опция-флаг может принимать только два значения (Y, N либо ON, OFF). Неуказанные явно опции принимают значение по-умолчинию, записанное в CMakeLists.txt. Пример использования опций сборки:
cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_TESTS_CORE=Y ../UniSched
Опция сборки | Значение по-умолчнию | Описание |
---|---|---|
WITH_DUMMYUI | Y | Собрать DummyUI |
WITH_CLI | Y | Собрать CLIUI |
WITH_EXT_PYTHON_CLI | N | Собрать экспериментальные Python примочки к CLIUI |
WITH_LUAUI | Y | Собрать LUAUI |
WITH_STORAGE_SQLITE | Y | Собрать SQLiteStorage |
WITH_DOCS | Y | Сконфигурировать цель для сборки документации (требуется doxygen) |
WITH_TESTS_CXX11 | Y | Проверить поддержку компилятора стандарта C++11. Не отключайте данную опцию — это приведет к ошибке сборки. |
WITH_TESTS_CORE | N | Регрессивные тесты ядра. Отключены для ускорения сборки. Обязательно включайте при внесении изменений в ядро — это позволит отловить негативные изменения поведения ядра. |
BUILD_TARBALL | N | Создать в директории с исходным кодом version.h, позволяющий запаковать код в архив и использовать вне зависимости от git репозитория. |
Опция сборки | Значение по-умолчнию | Возможные значения | Описание |
---|---|---|---|
CMAKE_BUILD_TYPE | ??? | Debug, ... | Включение отладочной информации |
Рекомендуется использовать параметр программы make -jX, где X — количество потоков, оптимальным числом является число на единицу большее, чем количество ядер процессора/процессоров.
make all -j3
make test
Необходим doxygen.
make docs
Конфигурационный файл программы — скрипт на языке lua, задающий все необходимые параметры. Имя файла скрипта можно передать программе через флаг -f. По умолчанию программа ищет конфигурационный файл в "$HOME/.unisched/rc.lua", где $HOME — домашняя директория пользователя.
Параметры, которые необходимо установить:
Параметр | Описание |
---|---|
config.ui | Модуль Модуль:UI |
config.storage | Модуль Модуль:Storage |
config.modules_path | Путь для поиска модулей, разделенный символами ':'. Укажите пути к директориям 'src/modules/storage' и 'src/modules/ui' внутри директории сборки. |
config.sqlite_db | В случае использования SQLiteStorage — путь к файлу sqlite3 базы данных. |
config.httpd | В случае использования LuaUI в режиме WebUI — настройки http сервера. |
config.httpd.host | адрес хоста (к примеру '0.0.0.0') |
config.httpd.port | порт (к примеру 8000) |
config.httpd.api_prefix | Префикс методов api, так как возможность изменения префикса реализована только для серверной стороны. Не меняйте его — оставьте '/api/'. |
config.httpd.static_dir | Путь к директории, которую сервер воспринимает как корневую директорию. Пропишите путь к 'src/web/static' внутри директории с исходным кодом. |
config.script | Рабочий скрипт. При использовании LuaUI, для запуска WebUI укажите путь к 'src/web/server.lua' в директории с исходным кодом. |
также можно определить функцию onload, которая будет исполнена при старте программы. К примеру:
function onload() print('Now: '..os.date()) end
Пример конфигурационного файла можно найти в 'fixtures/rc.lua'.
Собранная программа располагается в поддиректории src каталога сборки и имеет имя 'raspisator'.
./src/raspisator
Сюда нужно добавить параметры программы.
Опция сборки | Значение по-умолчнию | Возможные значения | Описание |
---|---|---|---|
- | - | - | - |
Собранная документация располагается в каталоге 'doc' директории сборки.
Вы можете открыть файл 'doc/html/index.html' в своем браузере, или перейти в каталог 'doc/latex' и собрать документацию в pdf, при условии, что у вас установлена программа latex.