Package net.sf.antcontrib.cpptasks
Class CUtil
- java.lang.Object
-
- net.sf.antcontrib.cpptasks.CUtil
-
public class CUtil extends java.lang.Object
Some utilities used by the CC and Link tasks.- Author:
- Adam Murdoch, Curt Arnold
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
CUtil.StringArrayBuilder
A class that splits a white-space, comma-separated list into a String array.
-
Field Summary
Fields Modifier and Type Field Description static int
FILETIME_EPSILON
-
Constructor Summary
Constructors Constructor Description CUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
addAll(java.util.Vector dest, java.lang.Object[] src)
Adds the elements of the array to the given vectorstatic int
checkDirectoryArray(java.lang.String[] names)
Checks a array of names for non existent or non directory entries and nulls them out.static java.lang.String
getBasename(java.io.File file)
Extracts the basename of a file, removing the extension, if presentstatic java.io.File
getExecutableLocation(java.lang.String exeName)
Gets the parent directory for the executable file name using the current directory and system executable pathstatic java.lang.String
getParentPath(java.lang.String path)
Extracts the parent of a filestatic java.io.File[]
getPathFromEnvironment(java.lang.String envVariable, java.lang.String delim)
Returns an array of File for each existing directory in the specified environment variablestatic java.lang.String
getRelativePath(java.lang.String base, java.io.File targetFile)
Returns a relative path for the targetFile relative to the base directory.static boolean
isActive(org.apache.tools.ant.Project p, java.lang.String ifCond, java.lang.String unlessCond)
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.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.static boolean
isSystemPath(java.io.File source)
Determines if source file has a system path, that is part of the compiler or platform.static java.io.File[]
parsePath(java.lang.String path, java.lang.String delim)
Parse a string containing directories into an File[]static int
runCommand(CCTask task, java.io.File workingDir, java.lang.String[] cmdline, boolean newEnvironment, org.apache.tools.ant.types.Environment env)
This method is exposed so test classes can overload and test the arguments without actually spawning the compilerstatic boolean
sameList(java.lang.Object[] a, java.lang.Object[] b)
Compares the contents of 2 arrays for equaliy.static boolean
sameList(java.util.Vector v, java.lang.Object[] a)
Compares the contents of an array and a Vector for equality.static boolean
sameSet(java.lang.Object[] a, java.util.Vector b)
Compares the contents of an array and a Vector for set equality.static java.lang.String[]
toArray(java.util.Vector src)
Converts a vector to a string array.static java.lang.String
toUnixPath(java.lang.String path)
static java.lang.String
toWindowsPath(java.lang.String path)
static java.lang.String
xmlAttribEncode(java.lang.String attrValue)
Replaces any embedded quotes in the string so that the value can be placed in an attribute in an XML file
-
-
-
Field Detail
-
FILETIME_EPSILON
public static final int FILETIME_EPSILON
- See Also:
- Constant Field Values
-
-
Method Detail
-
addAll
public static void addAll(java.util.Vector dest, java.lang.Object[] src)
Adds the elements of the array to the given vector
-
checkDirectoryArray
public static int checkDirectoryArray(java.lang.String[] names)
Checks a array of names for non existent or non directory entries and nulls them out.- Returns:
- Count of non-null elements
-
getBasename
public static java.lang.String getBasename(java.io.File file)
Extracts the basename of a file, removing the extension, if present
-
getExecutableLocation
public static java.io.File getExecutableLocation(java.lang.String exeName)
Gets the parent directory for the executable file name using the current directory and system executable path- Parameters:
exeName
- Name of executable such as "cl.exe"- Returns:
- parent directory or null if not located
-
getParentPath
public static java.lang.String getParentPath(java.lang.String path)
Extracts the parent of a file
-
getPathFromEnvironment
public static java.io.File[] getPathFromEnvironment(java.lang.String envVariable, java.lang.String delim)
Returns an array of File for each existing directory in the specified environment variable- Parameters:
envVariable
- environment variable name such as "LIB" or "INCLUDE"delim
- delimitor used to separate parts of the path, typically ";" or ":"- Returns:
- array of File's for each part that is an existing directory
-
getRelativePath
public static java.lang.String getRelativePath(java.lang.String base, java.io.File targetFile)
Returns a relative path for the targetFile relative to the base directory.- Parameters:
base
- base directory as returned by File.getCanonicalPath()targetFile
- target file- Returns:
- relative path of target file. Returns targetFile if there were no commonalities between the base and the target
-
isActive
public static boolean isActive(org.apache.tools.ant.Project p, java.lang.String ifCond, java.lang.String unlessCond) throws org.apache.tools.ant.BuildException
- Throws:
org.apache.tools.ant.BuildException
-
parsePath
public static java.io.File[] parsePath(java.lang.String path, java.lang.String delim)
Parse a string containing directories into an File[]- Parameters:
path
- path string, for example ".;c:\something\include"delim
- delimiter, typically ; or :
-
runCommand
public static int runCommand(CCTask task, java.io.File workingDir, java.lang.String[] cmdline, boolean newEnvironment, org.apache.tools.ant.types.Environment env) throws org.apache.tools.ant.BuildException
This method is exposed so test classes can overload and test the arguments without actually spawning the compiler- Throws:
org.apache.tools.ant.BuildException
-
sameList
public static boolean sameList(java.lang.Object[] a, java.lang.Object[] b)
Compares the contents of 2 arrays for equaliy.
-
sameList
public static boolean sameList(java.util.Vector v, java.lang.Object[] a)
Compares the contents of an array and a Vector for equality.
-
sameSet
public static boolean sameSet(java.lang.Object[] a, java.util.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 java.lang.String[] toArray(java.util.Vector src)
Converts a vector to a string array.
-
xmlAttribEncode
public static java.lang.String xmlAttribEncode(java.lang.String attrValue)
Replaces any embedded quotes in the string so that the value can be placed in an attribute in an XML file- Parameters:
attrValue
- value to be expressed- Returns:
- equivalent attribute literal
-
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.- Parameters:
time1
- long first time valuetime2
- long second time value- Returns:
- 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.
-
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.- Parameters:
time1
- long first time valuetime2
- long second time value- Returns:
- 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.
-
toWindowsPath
public static java.lang.String toWindowsPath(java.lang.String path)
-
toUnixPath
public static java.lang.String toUnixPath(java.lang.String path)
-
isSystemPath
public static boolean isSystemPath(java.io.File source)
Determines if source file has a system path, that is part of the compiler or platform.- Parameters:
source
- source, may not be null.- Returns:
- true is source file appears to be system library and its path should be discarded.
-
-