@ibm/sourceorbit
Version:
IBM i dependency management tool
53 lines (52 loc) • 2.07 kB
TypeScript
import { ILEObject, ILEObjectTarget, ObjectType, Targets } from '../../targets';
import { CompileData, CommandParameters } from '../environment';
import { iProject } from '../iProject';
import { ReadFileSystem } from '../../readFileSystem';
interface Step {
object: {
name: string;
type: ObjectType;
};
relativePath?: string;
command: string;
}
/**
* parents: this property controls the all target. It will include all the parents of partial build objects.
* partial: if this property is true, the makefile will only include targets for the partial build objects (and optionally their parents)
*/
type PartialOptions = {
parents?: boolean;
withChildren?: boolean;
parentsChildren?: boolean;
};
export declare class MakeProject {
private cwd;
private targets;
private rfs;
private partialOptions;
private settings;
private projectActions;
private actionsEnabled;
private folderSettings;
constructor(cwd: string, targets: Targets, rfs: ReadFileSystem);
setPartialOptions(options: PartialOptions): void;
useActions(): void;
setupSettings(): Promise<void>;
getSettings(): iProject;
getSteps(target: ILEObject | ILEObjectTarget): Step[];
getObjectAttributes(compileData: CompileData, ileObject: ILEObject): CommandParameters;
getMakefile(specificObjects?: ILEObject[]): string[];
generateHeader(): string[];
/**
* Used to return the objects required to do a partial build.
* If `partial` is true, it will return the object and all objects depending on it recursively.
* If `parents` is true, it will return all parent objects of the partial build objects, and their children/
*/
private getPartialTargets;
generateTargets(partialBuild?: ILEObject[]): string[];
generateGenericRules(buildFor?: ILEObject[]): string[];
static generateSpecificTarget(data: CompileData, ileObject: ILEObjectTarget, customAttributes?: CommandParameters): string[];
private static stripSystem;
private static resolveCommand;
}
export {};