class compiler::CompilerInput

sys::Obj
  compiler::CompilerInput

Source

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

Source

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[,]

Source

List of this pod's dependencies used for both the compiler checking and output in the pod's manifest.

docTests

Bool docTests := false

Source

If set to true, then generate apidocs for test subclasses

fcodeDump

Bool fcodeDump := false

Source

If set to true, then disassembled fcode is dumped to log.out.

forceJs

Bool forceJs := false

Source

Flag indicating if we should treat all types as having the @Js facet

includeDoc

Bool includeDoc := false

Source

Include fandoc in output pod, default is false

includeSrc

Bool includeSrc := false

Source

Include source code in output pod, default is false

index

Str:Obj index := [Str:Obj][:]

Source

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")

Source

Location to use for reporting errors associated with the input itself - typically this is mapped to the build script.

isScript

Bool isScript := false

Source

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

Source

Is this compile process being run inside a test, default is false

jsFiles

Uri[]? jsFiles

Source

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

Source

List of files or directores containing .props files that should be compiled to JavaScript. If this field is null then it defaults to resFiles. Uris are relative to baseDir. This field is used only in file mode.

jsReflectClosures

Bool jsReflectClosures := false

Source

Flag to force Fantom closures to be compiled with type reflection information when emitting JavaScript.

log

CompilerLog log := CompilerLog.make

Source

Log used for reporting compile status

meta

Str:Str meta := [Str:Str][:]

Source

Pod meta-data name/value pairs

mode

CompilerInputMode? mode := null

Source

This mode determines whether the source code is input from the file system or from an in-memory string.

ns

CNamespace ns := ReflectNamespace.<ctor>()

Source

Namespace used to resolve dependency pods/types. Default implementation uses reflection of the compiler's VM.

outDir

File outDir := Env.cur().workDir() + `lib/fan/`

Source

Output directory to write pod to, defaults to the current environment's working lib directory

output

CompilerOutputMode? output := null

Source

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

Source

Name of output pod - required in all modes.

resFiles

Uri[]? resFiles

Source

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

Source

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

Source

Fantom source code to compile (str mode only)

srcStrLoc

Loc? srcStrLoc

Source

Location to use for SourceFile facet (str mode only)

summary

Str? summary

Source

Summary description for pod

version

Version? version

Source

Version to include in ouput pod's manifest.