class compiler::CompilerInput
sys::Obj compiler::CompilerInput
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.
- baseDir
-
File? baseDir
Base directory of source tree - this directory is used to create the relative paths of the source and resource files in the pod zip.
- depends
-
Depend[] depends := Depend[,]
List of this pod's dependencies used for both the compiler checking and output in the pod's manifest.
- docTests
-
Bool docTests := false
If set to true, then generate apidocs for test subclasses
- fcodeDump
-
Bool fcodeDump := false
If set to true, then disassembled fcode is dumped to
log.out
. - forceJs
-
Bool forceJs := false
Flag indicating if we should treat all types as having the @Js facet
- includeDoc
-
Bool includeDoc := false
Include fandoc in output pod, default is false
- includeSrc
-
Bool includeSrc := false
Include source code in output pod, default is false
- index
-
Pod indexing name/value pairs. The index values can be a single Str or a Str[] if there are multiple values mapped to one key.
- inputLoc
-
Loc inputLoc := Loc.<ctor>("CompilerInput")
Location to use for reporting errors associated with the input itself - typically this is mapped to the build script.
- isScript
-
Bool isScript := false
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 := false
Is this compile process being run inside a test, default is false
- jsFiles
-
Uri[]? jsFiles
List of JavaScript files or directories containing JavaScript files to include in the JavaScript output. Uris are relative to
baseDir
. This field is used only in file mode. - jsPropsFiles
-
Uri[]? jsPropsFiles
List of files or directores containing
.props
files that should be compiled to JavaScript. If this field is null then it defaults toresFiles
. Uris are relative tobaseDir
. This field is used only in file mode. - jsReflectClosures
-
Bool jsReflectClosures := false
Flag to force Fantom closures to be compiled with type reflection information when emitting JavaScript.
- log
-
CompilerLog log := CompilerLog.make
Log used for reporting compile status
- meta
-
Pod meta-data name/value pairs
- mode
-
CompilerInputMode? mode := null
This mode determines whether the source code is input from the file system or from an in-memory string.
- ns
-
CNamespace ns := ReflectNamespace.<ctor>()
Namespace used to resolve dependency pods/types. Default implementation uses reflection of the compiler's VM.
- outDir
-
File outDir := Env.cur().workDir() + `lib/fan/`
Output directory to write pod to, defaults to the current environment's working lib directory
- output
-
CompilerOutputMode? output := null
What type of output should be generated - the compiler can be used to generate a transient in-memory pod, write a pod zip file to disk, or generate JavaScript code.
- podName
-
Str? podName
Name of output pod - required in all modes.
- resFiles
-
Uri[]? resFiles
List of resource files or directories containing resource files to include in the pod zip. Uris are relative to
baseDir
. This field is used only in file mode. If a file has a "jar" extension then its contents are unzipped into the target pod. - srcFiles
-
Uri[]? srcFiles
List of Fantom source files or directories containing Fantom source files to compile. Uris are relative to
baseDir
. This field is used only in file mode. - srcStr
-
Str? srcStr
Fantom source code to compile (str mode only)
- srcStrLoc
-
Loc? srcStrLoc
Location to use for SourceFile facet (str mode only)
- summary
-
Str? summary
Summary description for pod
- version
-
Version? version
Version to include in ouput pod's manifest.