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