git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1674 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			128 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| /*
 | |
|  * 
 | |
|  * Copyright 2002-2004 The Ant-Contrib project
 | |
|  *
 | |
|  *  Licensed under the Apache License, Version 2.0 (the "License");
 | |
|  *  you may not use this file except in compliance with the License.
 | |
|  *  You may obtain a copy of the License at
 | |
|  *
 | |
|  *      http://www.apache.org/licenses/LICENSE-2.0
 | |
|  *
 | |
|  *  Unless required by applicable law or agreed to in writing, software
 | |
|  *  distributed under the License is distributed on an "AS IS" BASIS,
 | |
|  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
|  *  See the License for the specific language governing permissions and
 | |
|  *  limitations under the License.
 | |
|  */
 | |
| package net.sf.antcontrib.cpptasks;
 | |
| import java.io.File;
 | |
| 
 | |
| import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration;
 | |
| /**
 | |
|  * A description of a file built or to be built
 | |
|  */
 | |
| public final class TargetInfo {
 | |
|     private static final File[] emptyFileArray = new File[0];
 | |
|     private/* final */ProcessorConfiguration config;
 | |
|     private/* final */File output;
 | |
|     private boolean rebuild;
 | |
|     private/* final */File[] sources;
 | |
|     private File[] sysSources;
 | |
|     public TargetInfo(ProcessorConfiguration config, File[] sources,
 | |
|             File[] sysSources, File output, boolean rebuild) {
 | |
|         if (config == null) {
 | |
|             throw new NullPointerException("config");
 | |
|         }
 | |
|         if (sources == null) {
 | |
|             throw new NullPointerException("sources");
 | |
|         }
 | |
|         if (output == null) {
 | |
|             throw new NullPointerException("output");
 | |
|         }
 | |
|         this.config = config;
 | |
|         this.sources = (File[]) sources.clone();
 | |
|         if (sysSources == null) {
 | |
|             this.sysSources = emptyFileArray;
 | |
|         } else {
 | |
|             this.sysSources = (File[]) sysSources.clone();
 | |
|         }
 | |
|         this.output = output;
 | |
|         this.rebuild = rebuild;
 | |
|         //
 | |
|         //   if the output doesn't exist, must rebuild it
 | |
|         //
 | |
|         if (!output.exists()) {
 | |
|             rebuild = true;
 | |
|         }
 | |
|     }
 | |
|     public String[] getAllSourcePaths() {
 | |
|         String[] paths = new String[sysSources.length + sources.length];
 | |
|         for (int i = 0; i < sysSources.length; i++) {
 | |
|             paths[i] = sysSources[i].toString();
 | |
|         }
 | |
|         int offset = sysSources.length;
 | |
|         for (int i = 0; i < sources.length; i++) {
 | |
|             paths[offset + i] = sources[i].toString();
 | |
|         }
 | |
|         return paths;
 | |
|     }
 | |
|     public File[] getAllSources() {
 | |
|         File[] allSources = new File[sources.length + sysSources.length];
 | |
|         for (int i = 0; i < sysSources.length; i++) {
 | |
|             allSources[i] = sysSources[i];
 | |
|         }
 | |
|         int offset = sysSources.length;
 | |
|         for (int i = 0; i < sources.length; i++) {
 | |
|             allSources[i + offset] = sources[i];
 | |
|         }
 | |
|         return allSources;
 | |
|     }
 | |
|     public ProcessorConfiguration getConfiguration() {
 | |
|         return config;
 | |
|     }
 | |
|     public File getOutput() {
 | |
|         return output;
 | |
|     }
 | |
|     public boolean getRebuild() {
 | |
|         return rebuild;
 | |
|     }
 | |
|     /**
 | |
|      * Returns an array of SourceHistory objects (contains relative path and
 | |
|      * last modified time) for the source[s] of this target
 | |
|      */
 | |
|     public SourceHistory[] getSourceHistories(String basePath) {
 | |
|         SourceHistory[] histories = new SourceHistory[sources.length];
 | |
|         for (int i = 0; i < sources.length; i++) {
 | |
|             String relativeName = CUtil.getRelativePath(basePath, sources[i]);
 | |
|             long lastModified = sources[i].lastModified();
 | |
|             histories[i] = new SourceHistory(relativeName, lastModified);
 | |
|         }
 | |
|         return histories;
 | |
|     }
 | |
|     public String[] getSourcePaths() {
 | |
|         String[] paths = new String[sources.length];
 | |
|         for (int i = 0; i < sources.length; i++) {
 | |
|             paths[i] = sources[i].toString();
 | |
|         }
 | |
|         return paths;
 | |
|     }
 | |
|     public File[] getSources() {
 | |
|         File[] clone = (File[]) sources.clone();
 | |
|         return clone;
 | |
|     }
 | |
|     public String[] getSysSourcePaths() {
 | |
|         String[] paths = new String[sysSources.length];
 | |
|         for (int i = 0; i < sysSources.length; i++) {
 | |
|             paths[i] = sysSources[i].toString();
 | |
|         }
 | |
|         return paths;
 | |
|     }
 | |
|     public File[] getSysSources() {
 | |
|         File[] clone = (File[]) sysSources.clone();
 | |
|         return clone;
 | |
|     }
 | |
|     public void mustRebuild() {
 | |
|         this.rebuild = true;
 | |
|     }
 | |
| }
 |