abstract class build::BuildPod

sys::Obj
  build::BuildScript
    build::BuildPod

Source

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.

clean

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

Source

Delete all intermediate and target files

compile

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

Source

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

compileDotnet

virtual Void compileDotnet()

Source

Compile native .NET assembly dotnetDirs configured

compileFan

virtual Void compileFan()

Source

Compile Fan code into pod file

compileJava

virtual Void compileJava()

Source

Compile Java class files if javaDirs is configured

compileJni

virtual Void compileJni()

Source

Compile JNI bindings if jniDirs configured.

compileNodeJs

virtual Void compileNodeJs()

Source

Compile to javascript node module

depends

Str[] depends := Str[,]

Source

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

dependsDir

Uri? dependsDir := null

Source

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

Bool docApi := true

Source

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

docSrc

Bool docSrc := false

Source

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

dotnetDirs

Uri[]? dotnetDirs

Source

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

full

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

Source

Run clean, compile, and test

index

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

Source

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

Uri[]? javaDirs

Source

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

jniDirs

Uri[]? jniDirs

Source

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

jniPlatforms

Str[]? jniPlatforms

Source

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

Uri[]? jsDirs

Source

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

jsProps

Uri[]? jsProps

Source

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

Str:Str meta := ...

Source

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

nodeJs

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

Source

Compile to all classes to run in Node.js

onCompileFan

virtual Void onCompileFan(CompilerInput ci)

Source

Callback to tune the Fantom compiler input

outDocDir

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

Source

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

outPodDir

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

Source

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

podName

Str? podName := null

Source

Required name of the pod.

resDirs

Uri[]? resDirs

Source

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

Uri[]? srcDirs

Source

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

summary

Str? summary := null

Source

Required summary description of pod.

test

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

Source

Run the unit tests using fant for this pod

version

Version version := ...

Source

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