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); | ||
|  |    } | ||
|  | } |