Some utilities used by the CC and Link tasks.
addAll
public static void addAll(Vector dest,
Object[] src)
Adds the elements of the array to the given vector
checkDirectoryArray
public static int checkDirectoryArray(String[] names)
Checks a array of names for non existent or non directory entries and
nulls them out.
- Count of non-null elements
getBasename
public static String getBasename(File file)
Extracts the basename of a file, removing the extension, if present
getExecutableLocation
public static File getExecutableLocation(String exeName)
Gets the parent directory for the executable file name using the current
directory and system executable path
exeName
- Name of executable such as "cl.exe"
- parent directory or null if not located
getParentPath
public static String getParentPath(String path)
Extracts the parent of a file
getPathFromEnvironment
public static File[] getPathFromEnvironment(String envVariable,
String delim)
Returns an array of File for each existing directory in the specified
environment variable
envVariable
- environment variable name such as "LIB" or "INCLUDE"delim
- delimitor used to separate parts of the path, typically ";"
or ":"
- array of File's for each part that is an existing directory
getRelativePath
public static String getRelativePath(String base,
File targetFile)
Returns a relative path for the targetFile relative to the base
directory.
base
- base directory as returned by File.getCanonicalPath()targetFile
- target file
- relative path of target file. Returns targetFile if there were
no commonalities between the base and the target
isActive
public static boolean isActive(Project p,
String ifCond,
String unlessCond)
throws BuildException
isSignificantlyAfter
public static boolean isSignificantlyAfter(long time1,
long time2)
Determines whether time1 is later than time2
to a degree that file system time truncation is not significant.
time1
- long first time valuetime2
- long second time value
- boolean if first time value is later than second time value.
If the values are within the rounding error of the file system return false.
isSignificantlyBefore
public static boolean isSignificantlyBefore(long time1,
long time2)
Determines whether time1 is earlier than time2
to a degree that file system time truncation is not significant.
time1
- long first time valuetime2
- long second time value
- boolean if first time value is earlier than second time value.
If the values are within the rounding error of the file system return false.
parsePath
public static File[] parsePath(String path,
String delim)
Parse a string containing directories into an File[]
path
- path string, for example ".;c:\something\include"delim
- delimiter, typically ; or :
runCommand
public static int runCommand(CCTask task,
File workingDir,
String[] cmdline,
boolean newEnvironment,
Environment env)
throws BuildException
This method is exposed so test classes can overload and test the
arguments without actually spawning the compiler
sameList
public static boolean sameList(Object[] a,
Object[] b)
Compares the contents of 2 arrays for equaliy.
sameList
public static boolean sameList(Vector v,
Object[] a)
Compares the contents of an array and a Vector for equality.
sameSet
public static boolean sameSet(Object[] a,
Vector b)
Compares the contents of an array and a Vector for set equality. Assumes
input array and vector are sets (i.e. no duplicate entries)
toArray
public static String[] toArray(Vector src)
Converts a vector to a string array.
xmlAttribEncode
public static String xmlAttribEncode(String attrValue)
Replaces any embedded quotes in the string so that the value can be
placed in an attribute in an XML file
attrValue
- value to be expressed
- equivalent attribute literal