quyse / ice

javascript-based build system

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Кросплатформенная утилита для компиляции ice.

Предполагается, что должен быть сделан скрипт компиляции, который просто вызывает ice.

Компиляция любого файла может завершиться с ошибкой.
ice всегда пытается скомпилировать максимум возможного, чтобы сразу выдать максимум
сообщений об ошибках. ice, конечно, не пытается вызывать компиляцию
файлов, для которых не скомпилировались зависимости.
Циклические зависимости не вызывают зависания ice, и о них выдаётся сообщение.

API

ice.make(file);

file.dep([file1, file2, ... ], [callback]); - аналогично
	file.dep(file1); // добавить в список зависимостей файл
	file.dep(file2);
	...
	file.waitDeps(callback); // дождаться компиляции зависимостей
file.waitDeps(callback [, moreDeps]);

file.ok() // сообщить, что файл скомпилирован
file.error(err); // сообщить, что компиляция файла завершилась с ошибкой

Пример

// модуль ice
var ice = require('ice');

// задать правило для файлов, выполняемое для имён файлов,
// подходящих к указанному RegExp
ice.rule(/^(.+).o$/, function(a, file) {
	// a - массив, возвращаемый RegExp.exec
	// file - специальный объект, используемый для возвращения результатов
	
	// указать зависимость от исходного файла
	file.dep(a[1] + '.c', function() {
		// запустить компиляцию
		child_process.spawn(...);
		...
		// короче, как-то дождались завершения компиляции
		// сообщить, что файл готов
		file.ok();
	});
});

// вызвать компиляцию файла. используется для указания целей.
// то есть самых что ни на есть конечных целей.
ice.make('file.o');

About

javascript-based build system


Languages

Language:JavaScript 100.0%