Difference between revisions of "Альтернативная раскладка файлов"
(One intermediate revision by the same user not shown) | |||
Line 7: | Line 7: | ||
checkers/check_A | checkers/check_A | ||
check_B | check_B | ||
− | tests/A | + | tests/A/ |
− | B | + | B/ |
Таким образом, все проверяющие программы располагаются в одном каталоге, тесты в другом, условия в третьем. | Таким образом, все проверяющие программы располагаются в одном каталоге, тесты в другом, условия в третьем. | ||
Line 16: | Line 16: | ||
problems/A/statement.xml | problems/A/statement.xml | ||
check | check | ||
− | tests | + | tests/ |
B/statement.xml | B/statement.xml | ||
check | check | ||
− | tests | + | tests/ |
− | Для включения альтернативной раскладки файлов необходимо установить глобальную конфигурационную переменную <tt>advanced_layout</tt> в файле <tt>serve.cfg</tt> турнира. | + | <tt>check</tt> — это исполняемые файлы проверяющих программ (в старой раскладке файлов им соответствовали программы <tt>check_A</tt>, <tt>check_B</tt>. |
+ | |||
+ | Для включения альтернативной раскладки файлов необходимо установить глобальную конфигурационную переменную <tt>[[serve.cfg:global:advanced_layout|advanced_layout]]</tt> в файле <tt>[[serve.cfg]]</tt> турнира. | ||
При редактировании настроек турнира с помощью веб-интерфейса опция находится в разделе "Global settings (serve.cfg)" "Files and directories". | При редактировании настроек турнира с помощью веб-интерфейса опция находится в разделе "Global settings (serve.cfg)" "Files and directories". | ||
+ | |||
+ | === Использование Makefile (С версии 2.3.21) === | ||
+ | |||
+ | При выполнении операции "Check contest settings" генерируется Makefile, содержащий правила для компиляции проверяющей программы, решения, нормализации тестов и т. п. Затем утилита make вызывается со следующими аргументами командной строки: | ||
+ | |||
+ | make EJUDGE_PREFIX_DIR=@prefix@ EJUDGE_CONTESTS_HOME_DIR=@contests_home@ EJUDGE_LOCAL_DIR=@local_dir@ check_settings | ||
+ | |||
+ | То есть программе <tt>make</tt> дополнительно передаются переменные окружения <tt>EJUDGE_PREFIX_DIR</tt>, <tt>EJUDGE_CONTESTS_HOME_DIR</tt> и <tt>EJUDGE_LOCAL_DIR</tt>, значения которых берутся из соответствующих параметров конфигурации ejudge. В качестве начальной цели сборки указывается цель <tt>check_settings</tt>, то есть в <tt>Makefile</tt> должна быть определена цель <tt>check_settings</tt>. | ||
+ | |||
+ | === Использование Makefile (До версии 2.3.21) === | ||
+ | |||
+ | Если в каталоге задачи существует файл Makefile, то этот файл используется для компиляции проверяющих программ при выполнении операции "Check contests settings" вместо непосредственного вызова соответствующих компиляторов. Команде make передаются следующие аргументы командной строки: | ||
+ | |||
+ | make EJUDGE_PREFIX_DIR=@prefix@ EJUDGE_CONTESTS_HOME_DIR=@contests_home@ EJUDGE_LOCAL_DIR=@local_dir@ ejudge_make_problem | ||
+ | |||
+ | То есть программе <tt>make</tt> дополнительно передаются переменные окружения <tt>EJUDGE_PREFIX_DIR</tt>, <tt>EJUDGE_CONTESTS_HOME_DIR</tt> и <tt>EJUDGE_LOCAL_DIR</tt>, значения которых берутся из соответствующих параметров конфигурации ejudge. В качестве начальной цели сборки указывается цель <tt>ejudge_make_problem</tt>, то есть в <tt>Makefile</tt> должна быть определена цель <tt>ejudge_make_problem</tt>. | ||
+ | |||
+ | Сборка проверяющих программ выполняется до проверки тестов, поэтому в Makefile могут находиться правила и для генерации тестов. |
Latest revision as of 20:30, 3 April 2012
Навигация: Главная страница/Система ejudge/Использование/Альтернативная раскладка файлов
Предположим, что в турнире определены две задачи с названиями A и B. Условия задач хранятся в файлах A.xml и B.xml, тесты находятся в каталогах A и B, а проверяющие программы check_A, check_B. Обычная раскладка файлов турнира в каталоге турнира имеет следующую структуру:
statements/A.xml B.xml checkers/check_A check_B tests/A/ B/
Таким образом, все проверяющие программы располагаются в одном каталоге, тесты в другом, условия в третьем.
В альтернативной раскладке файлов файлы группируются по задачам. Структура каталога в этом случае следующая:
problems/A/statement.xml check tests/ B/statement.xml check tests/
check — это исполняемые файлы проверяющих программ (в старой раскладке файлов им соответствовали программы check_A, check_B.
Для включения альтернативной раскладки файлов необходимо установить глобальную конфигурационную переменную advanced_layout в файле serve.cfg турнира.
При редактировании настроек турнира с помощью веб-интерфейса опция находится в разделе "Global settings (serve.cfg)" "Files and directories".
Использование Makefile (С версии 2.3.21)
При выполнении операции "Check contest settings" генерируется Makefile, содержащий правила для компиляции проверяющей программы, решения, нормализации тестов и т. п. Затем утилита make вызывается со следующими аргументами командной строки:
make EJUDGE_PREFIX_DIR=@prefix@ EJUDGE_CONTESTS_HOME_DIR=@contests_home@ EJUDGE_LOCAL_DIR=@local_dir@ check_settings
То есть программе make дополнительно передаются переменные окружения EJUDGE_PREFIX_DIR, EJUDGE_CONTESTS_HOME_DIR и EJUDGE_LOCAL_DIR, значения которых берутся из соответствующих параметров конфигурации ejudge. В качестве начальной цели сборки указывается цель check_settings, то есть в Makefile должна быть определена цель check_settings.
Использование Makefile (До версии 2.3.21)
Если в каталоге задачи существует файл Makefile, то этот файл используется для компиляции проверяющих программ при выполнении операции "Check contests settings" вместо непосредственного вызова соответствующих компиляторов. Команде make передаются следующие аргументы командной строки:
make EJUDGE_PREFIX_DIR=@prefix@ EJUDGE_CONTESTS_HOME_DIR=@contests_home@ EJUDGE_LOCAL_DIR=@local_dir@ ejudge_make_problem
То есть программе make дополнительно передаются переменные окружения EJUDGE_PREFIX_DIR, EJUDGE_CONTESTS_HOME_DIR и EJUDGE_LOCAL_DIR, значения которых берутся из соответствующих параметров конфигурации ejudge. В качестве начальной цели сборки указывается цель ejudge_make_problem, то есть в Makefile должна быть определена цель ejudge_make_problem.
Сборка проверяющих программ выполняется до проверки тестов, поэтому в Makefile могут находиться правила и для генерации тестов.