BuildPod
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.
Directory to output pod file
Required summary description of pod
List of Uris relative to build script of directories containing the Fan source files to compile
Indicates if if source code should be included in the pod/documentation
List of Uris relative to build script of directories containing the Java source files to compile for Java native methods
List of dependencies for pod formatted as Depend
Pod index name/value pairs to compile into pod
List of Uris relative to build script that should be searched for .props files to compile to JavaScript
Indicates if if fandoc API should be included in the documentation
Version of the pod - default is set to BuildScript.config prop buildVersion
If non-null, whitelist of platforms JNI should be enabled for
The directory to look in for the dependency pod file (and potentially their recursive dependencies)
List of optional Uris relative to build script of directories of resources files to package into pod zip file
List of Uris relative to build script of directories containing the C# source files to compile for .NET native methods
Pod meta-data name/value pairs to compile into pod
List of Uris relative to build script of directories containing the JavaScript source files to compile for JavaScript native methods
Required name of the pod
List of Uris relative to build script of directories containing the JNI C source files to compile
Directory to output documentation (docs always get placed in sub-directory named by pod)
Compile to javascript node module
Compile native .NET assembly dotnetDirs configured
Compile the source into a pod file and all associated natives
Run the unit tests using fant for this pod
Callback to tune the Fantom compiler input
Compile JNI bindings if jniDirs configured
Compile Java class files if javaDirs is configured
Compile Fan code into pod file
Compile to all classes to run in Node.js
Delete all intermediate and target files
Run clean, compile, and test
@Target { help=... }
virtual Void clean()
Delete all intermediate and target files
@Target { help=... }
virtual Void compile()
Compile the source into a pod file and all associated natives. See compileFan, compileJava, and compileDotnet.
virtual Void compileDotnet()
Compile native .NET assembly dotnetDirs configured
virtual Void compileFan()
Compile Fan code into pod file
virtual Void compileJava()
Compile Java class files if javaDirs is configured
virtual Void compileJni()
Compile JNI bindings if jniDirs configured.
virtual Void compileNodeJs()
Compile to javascript node module
Str[] : depends
List of dependencies for pod formatted as Depend. Strings are automatically run through BuildScript.applyMacros.
Uri? : 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). As a general rule you shouldn't mess with this field - it is used by the build and compiler build scripts for bootstrap build.
Bool : docApi
Indicates if if fandoc API should be included in the documentation. By default API is included.
Bool : docSrc
Indicates if if source code should be included in the pod/documentation. By default source code it not included.
Uri[]? : dotnetDirs
List of Uris relative to build script of directories containing the C# source files to compile for .NET native methods.
@Target { help="Run clean, compile, and test" }
virtual Void full()
Run clean, compile, and test
Str:Obj : index
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.
Uri[]? : javaDirs
List of Uris relative to build script of directories containing the Java source files to compile for Java native methods.
Uri[]? : jniDirs
List of Uris relative to build script of directories containing the JNI C source files to compile.
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").
Uri[]? : jsDirs
List of Uris relative to build script of directories containing the JavaScript source files to compile for JavaScript native methods.
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.
Str:Str : meta
Pod meta-data name/value pairs to compile into pod. See Pod.meta.
@Target { help="Compile all types to run in Node.js" }
virtual Void nodeJs()
Compile to all classes to run in Node.js
virtual Void onCompileFan(CompilerInput ci)
Callback to tune the Fantom compiler input
Uri : outDocDir
Directory to output documentation (docs always get placed in sub-directory named by pod). By default it goes into "{Env.cur.workDir}/doc/"
Uri : outPodDir
Directory to output pod file. By default it goes into "{Env.cur.workDir}/lib/fan/"
Str? : podName
Required name of the pod.
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.
Uri[]? : srcDirs
List of Uris relative to build script of directories containing the Fan source files to compile.
Str? : summary
Required summary description of pod.
@Target { help="Run the pod unit tests via fant" }
virtual Void test()
Run the unit tests using fant for this pod
Version : version
Version of the pod - default is set to BuildScript.config prop buildVersion.