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