107 lines
2.6 KiB
Haxe
107 lines
2.6 KiB
Haxe
|
class Target
|
||
|
{
|
||
|
public var mBuildDir:String;
|
||
|
public var mOutput:String;
|
||
|
public var mOutputDir:String;
|
||
|
public var mTool:String;
|
||
|
public var mToolID:String;
|
||
|
private var mExt:String;
|
||
|
public var mFullOutputName:String;
|
||
|
public var mFullUnstrippedName:String;
|
||
|
|
||
|
// These attributes are merged by the "merge" command
|
||
|
public var mFiles:Array<File>;
|
||
|
public var mFileGroups:Array<FileGroup>;
|
||
|
public var mDepends:Array<String>;
|
||
|
public var mSubTargets:Array<String>;
|
||
|
public var mAutoLibs:Array<String>;
|
||
|
public var mLibs:Array<String>;
|
||
|
public var mLibPaths:Array<String>;
|
||
|
public var mFlags:Array<String>;
|
||
|
public var mErrors:Array<String>;
|
||
|
public var mDirs:Array<String>;
|
||
|
|
||
|
public function new(inOutput:String, inTool:String,inToolID:String)
|
||
|
{
|
||
|
mOutput = inOutput;
|
||
|
mOutputDir = "";
|
||
|
mBuildDir = "";
|
||
|
mToolID = inToolID;
|
||
|
mTool = inTool;
|
||
|
mFiles = [];
|
||
|
mDepends = [];
|
||
|
mAutoLibs = [];
|
||
|
mLibs = [];
|
||
|
mLibPaths = [];
|
||
|
mFlags = [];
|
||
|
mExt = null;
|
||
|
mFullOutputName = null;
|
||
|
mSubTargets = [];
|
||
|
mFileGroups = [];
|
||
|
mFlags = [];
|
||
|
mErrors=[];
|
||
|
mDirs=[];
|
||
|
}
|
||
|
|
||
|
public function merge(other:Target)
|
||
|
{
|
||
|
mFiles = mFiles.concat(other.mFiles);
|
||
|
mFileGroups = mFileGroups.concat(other.mFileGroups);
|
||
|
mDepends = mDepends.concat(other.mDepends);
|
||
|
mSubTargets = mSubTargets.concat(other.mSubTargets);
|
||
|
mLibPaths = mLibPaths.concat(other.mLibPaths);
|
||
|
mAutoLibs = mAutoLibs.concat(other.mAutoLibs);
|
||
|
mLibs = mLibs.concat(other.mLibs);
|
||
|
mFlags = mFlags.concat(other.mFlags);
|
||
|
mErrors = mErrors.concat(other.mErrors);
|
||
|
mDirs = mDirs.concat(other.mDirs);
|
||
|
}
|
||
|
|
||
|
public function toString() return mToolID;
|
||
|
|
||
|
public function getExt(inDefault:String)
|
||
|
{
|
||
|
return mExt==null ? inDefault : mExt;
|
||
|
}
|
||
|
|
||
|
public function setExt(inExt:String)
|
||
|
{
|
||
|
mExt = inExt;
|
||
|
}
|
||
|
|
||
|
public function addError(inError:String)
|
||
|
{
|
||
|
mErrors.push(inError);
|
||
|
}
|
||
|
|
||
|
public function addFiles(inGroup:FileGroup, inAsLibrary:Bool)
|
||
|
{
|
||
|
inGroup.mAsLibrary = inGroup.mAsLibrary || inAsLibrary;
|
||
|
mFiles = mFiles.concat([for(file in inGroup.mFiles) file]);
|
||
|
mFileGroups.push(inGroup);
|
||
|
}
|
||
|
|
||
|
public function checkError()
|
||
|
{
|
||
|
if (mErrors.length>0)
|
||
|
{
|
||
|
Log.error(mErrors.join(", "));
|
||
|
//throw mErrors.join("/");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public function clean()
|
||
|
{
|
||
|
for(dir in mDirs)
|
||
|
{
|
||
|
Log.info("Remove " + dir + "...");
|
||
|
PathManager.removeDirectory(dir);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public function getKey()
|
||
|
{
|
||
|
return mOutput + (mExt==null ? "" : mExt);
|
||
|
}
|
||
|
}
|