type

BuildPod

src abstract class BuildPod : BuildScript

BuildPod is the base class for build scripts used to manage building a Fantom source code and resources into a Fantom pod.

See Build for details.

fields

depends

List of dependencies for pod formatted as Depend.

dependsDir

The directory to look in for the dependency pod file (and potentially their recursive dependencies).

docApi

Indicates if if fandoc API should be included in the documentation.

docSrc

Indicates if if source code should be included in the pod/documentation.

dotnetDirs

List of Uris relative to build script of directories containing the C# source files to compile for .NET native methods.

index

Pod index name/value pairs to compile into pod.

javaDirs

List of Uris relative to build script of directories containing the Java source files to compile for Java native methods.

jniDirs

List of Uris relative to build script of directories containing the JNI C source files to compile.

jniPlatforms

If non-null, whitelist of platforms JNI should be enabled for.

jsDirs

List of Uris relative to build script of directories containing the JavaScript source files to compile for JavaScript native methods.

jsProps

List of Uris relative to build script that should be searched for .props files to compile to JavaScript.

meta

Pod meta-data name/value pairs to compile into pod.

outDocDir

Directory to output documentation (docs always get placed in sub-directory named by pod).

outPodDir

Directory to output pod file.

podName

Required name of the pod.

resDirs

List of optional Uris relative to build script of directories of resources files to package into pod zip file.

srcDirs

List of Uris relative to build script of directories containing the Fan source files to compile.

summary

Required summary description of pod.

version

Version of the pod - default is set to BuildScript.config prop buildVersion.

methods

clean

Delete all intermediate and target files

compile

Compile the source into a pod file and all associated natives.

compileDotnet

Compile native .NET assembly dotnetDirs configured

compileFan

Compile Fan code into pod file

compileJava

Compile Java class files if javaDirs is configured

compileJni

Compile JNI bindings if jniDirs configured.

compileNodeJs

Compile to javascript node module

full

Run clean, compile, and test

nodeJs

Compile to all classes to run in Node.js

onCompileFan

Callback to tune the Fantom compiler input

test

Run the unit tests using fant for this pod

Slot Details

clean

src @Target { help=... }
virtual Void clean()

Delete all intermediate and target files

compile

src @Target { help=... }
virtual Void compile()

Compile the source into a pod file and all associated natives. See compileFan, compileJava, and compileDotnet.

compileDotnet

src virtual Void compileDotnet()

Compile native .NET assembly dotnetDirs configured

compileFan

src virtual Void compileFan()

Compile Fan code into pod file

compileJava

src virtual Void compileJava()

Compile Java class files if javaDirs is configured

compileJni

src virtual Void compileJni()

Compile JNI bindings if jniDirs configured.

compileNodeJs

src virtual Void compileNodeJs()

Compile to javascript node module

depends

src Str[] depends := Str[,]

List of dependencies for pod formatted as Depend. Strings are automatically run through BuildScript.applyMacros.

dependsDir

src Uri? dependsDir := null

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). As a general rule you shouldn't mess with this field - it is used by the build and compiler build scripts for bootstrap build.

docApi

src Bool docApi := true

Indicates if if fandoc API should be included in the documentation. By default API is included.

docSrc

src Bool docSrc := false

Indicates if if source code should be included in the pod/documentation. By default source code it not included.

dotnetDirs

src Uri[]? dotnetDirs

List of Uris relative to build script of directories containing the C# source files to compile for .NET native methods.

full

src @Target { help="Run clean, compile, and test" }
virtual Void full()

Run clean, compile, and test

index

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

Pod index name/value pairs to compile into pod. See Env.index. The index values can be a single Str or a Str[] if there are multiple values mapped to one key.

javaDirs

src Uri[]? javaDirs

List of Uris relative to build script of directories containing the Java source files to compile for Java native methods.

jniDirs

src Uri[]? jniDirs

List of Uris relative to build script of directories containing the JNI C source files to compile.

jniPlatforms

src Str[]? jniPlatforms

If non-null, whitelist of platforms JNI should be enabled for. Platform string may be full platform name ("macosx-x86_64") or OS only ("macosx").

jsDirs

src Uri[]? jsDirs

List of Uris relative to build script of directories containing the JavaScript source files to compile for JavaScript native methods.

jsProps

src Uri[]? jsProps

List of Uris relative to build script that should be searched for .props files to compile to JavaScript. You may also give relative paths to files with a .props ext. If this field is null, it defaults to resDirs.

meta

src Str:Str meta := ...

Pod meta-data name/value pairs to compile into pod. See Pod.meta.

nodeJs

src @Target { help="Compile all types to run in Node.js" }
virtual Void nodeJs()

Compile to all classes to run in Node.js

onCompileFan

src virtual Void onCompileFan(CompilerInput ci)

Callback to tune the Fantom compiler input

outDocDir

src Uri outDocDir := Env.cur().workDir().plus(`doc/`).uri

Directory to output documentation (docs always get placed in sub-directory named by pod). By default it goes into "{Env.cur.workDir}/doc/"

outPodDir

src Uri outPodDir := Env.cur().workDir().plus(`lib/fan/`).uri

Directory to output pod file. By default it goes into "{Env.cur.workDir}/lib/fan/"

podName

src Str? podName := null

Required name of the pod.

resDirs

src Uri[]? resDirs

List of optional Uris relative to build script of directories of resources files to package into pod zip file. If a file has a "jar" extension then its contents are unzipped into the target pod.

srcDirs

src Uri[]? srcDirs

List of Uris relative to build script of directories containing the Fan source files to compile.

summary

src Str? summary := null

Required summary description of pod.

test

src @Target { help="Run the pod unit tests via fant" }
virtual Void test()

Run the unit tests using fant for this pod

version

src Version version := ...

Version of the pod - default is set to BuildScript.config prop buildVersion.