
CompilerInput encapsulates all the input needed run the compiler. The compiler can be run in one of two modes - file or str. In file mode the source code and resource files are read from the file system. In str mode we compile a single source file from an in-memory string.
Slots
- depends
-
Depend[] depends
List of this pod's dependencies used for both the compiler checking and output in the pod's manifest.
- dependsDir
-
File dependsDir
The directory to look in for the dependency pod file (and potentially their recursive dependencies). If null then we use the compiler's own pod definitions via reflection (which is more efficient).
- description
-
Str description
Description to include in output pod's manifest.
- homeDir
-
File homeDir
Root directory of source tree - this directory is used to create the relative paths of the resource files in the pod zip.
- includeDoc
-
Bool includeDoc
Include fandoc in output pod, default is false
- includeSrc
-
Bool includeSrc
Include source code in output pod, default is false
- inputLoc
-
Location inputLoc
Location to use for reporting errors associated with the input itself - typically this is mapped to the build script.
- isScript
-
Bool isScript
Flag to indicate if we are are compiling a script. Scripts don't require explicit depends and can import any type via the using statement or with qualified type names.
- isTest
-
Bool isTest
Is this compile process being run inside a test, default is false
- log
-
CompilerLog log
Log used for reporting compile status
- mode
-
CompilerInputMode mode
This mode determines whether the source code is input from the file system or from an in-memory string.
- outDir
-
File outDir
Output directory to write pod to, defaults to the current runtime's lib directory
- output
-
CompilerOutputMode output
What type of output should be generated - the compiler can be used to generate a transient in-memory pod or to write out a pod zip file to disk.
- podFacets
-
Str:Obj podFacets
User defined pod level facets.
- podName
-
Str podName
Required name of output pod
- resDirs
-
File[] resDirs
Optional list of directories containing resources files to include in the pod zip (file mode only)
- srcDirs
-
File[] srcDirs
List of directories containing fan source files (file mode only)
- srcStr
-
Str srcStr
Fan source code to compile (str mode only)
- srcStrLocation
-
Location srcStrLocation
Location to use for SourceFile facet (str mode only)
-
internal Void validate()
Validate the CompilerInput is correctly configured, throw CompilerErr is not.
-
private Void validateReqField(Str field)
Check that the specified field is non-null, if not then log an error and return false.
- version
-
Version version
Version to include in ouput pod's manifest.