
////////////////////////////////////////////////////////////
// Описание пакета для сборки и установки
// Полную документацию см. на hub.oscript.io/packaging
//

ПутьКСценариюКонстант = ОбъединитьПути(ТекущийСценарий().Каталог, "src/core", "Модули", "КонстантыOpm.os");

// специальная заглушка для правильной компиляции packagedef при первых действий при установке пакета,
// 	когда еще не извлечено никаких файлов пакет
ФайлКонстант = Новый Файл(ПутьКСценариюКонстант);
Если ФайлКонстант.Существует() Тогда
	Константы_ЛокальнаяВерсия = ЗагрузитьСценарий(ПутьКСценариюКонстант);
	ВерсияПродукта = Константы_ЛокальнаяВерсия.ВерсияПродукта;
Иначе
	ВерсияПродукта = "1.6.5";
КонецЕсли;

Описание.Имя("opm")
		.Версия(ВерсияПродукта)
		.ВерсияСреды("1.9.2")
		.ЗависитОт("strings", "0.5.0")
		.ЗависитОт("fs", "1.2.0")
		.ЗависитОт("fluent", "0.6.1")
		.ЗависитОт("logos", "1.7.1")
		.ЗависитОт("cli", "0.11.0")
		.ЗависитОт("tempfiles", "1.1.1")
		.ЗависитОт("gitrunner", "1.7.1")
		.ЗависитОт("reflector", "0.7.1")
		.ЗависитОт("semver", "1.0.0")

		// Зависимости для разработки, РазработкаЗависитОт() нельзя использовать
		// т.к иначе не получится обновится из старой версии opm
		.ЗависитОт("asserts", "1.4.0")
		.ЗависитОт("1bdd", "1.15.1")
		.ЗависитОт("1testrunner", "1.9.2")

		.ВключитьФайл("packagedef")
		.ВключитьФайл("src")
		.ВключитьФайл("tasks")
		.ВключитьФайл("oscript_modules")
		.ОпределяетКласс("КэшУстановленныхПакетов", "src/core/Классы/КэшУстановленныхПакетов.os")
		.ОпределяетКласс("МенеджерПолученияПакетов", "src/core/Классы/МенеджерПолученияПакетов.os")
		.ОпределяетКласс("МенеджерУстановкиПакетов", "src/core/Классы/МенеджерУстановкиПакетов.os")
		.ОпределяетКласс("ОписаниеПакета", "src/core/Классы/ОписаниеПакета.os")
		.ОпределяетКласс("СборщикПакета", "src/core/Классы/СборщикПакета.os")
		.ОпределяетКласс("СерверПакетов", "src/core/Классы/СерверПакетов.os")
		.ОпределяетКласс("СериализацияМетаданныхПакета", "src/core/Классы/СериализацияМетаданныхПакета.os")
		.ОпределяетКласс("УстановкаПакета", "src/core/Классы/УстановкаПакета.os")
		.ОпределяетМодуль("КонстантыOpm", "src/core/Модули/КонстантыOpm.os")
		.ОпределяетМодуль("НастройкиOpm", "src/core/Модули/НастройкиOpm.os")
		.ОпределяетМодуль("РаботаСВерсиями", "src/core/Модули/РаботаСВерсиями.os")
		.ОпределяетМодуль("РаботаСОписаниемПакета", "src/core/Модули/РаботаСОписаниемПакета.os")
		.ОпределяетМодуль("РаботаСПакетами", "src/core/Модули/РаботаСПакетами.os")
		.ОпределяетМодуль("РежимУстановкиПакетов", "src/core/Модули/РежимУстановкиПакетов.os")
		.ОпределяетМодуль("СерверыПакетов", "src/core/Модули/СерверыПакетов.os")
		.ОпределяетМодуль("ОбщегоНазначенияOpm", "src/core/Модули/ОбщегоНазначенияOpm.os")
		.ИсполняемыйФайл("src/cmd/opm.os");
