Initial import.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
127
Tools/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetInfo.java
Normal file
127
Tools/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetInfo.java
Normal file
@ -0,0 +1,127 @@
|
||||
/*
|
||||
*
|
||||
* 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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user