Note: information on this page refers to Ceylon 1.2, not to the current release.

<ceylon-compile-js> Ant task

Usage

Note: You must declare the tasks with a <typedef>.

This task compiles Ceylon code to JavaScript, by means of the ceylon-js command-line tool.

The <ceylon-compile-js> task is fairly similar to <ceylon-compile>; the difference lies mainly with some options that are specific to JavaScript code generation.

To compile the module com.example.foo whose source code is in the src directory to a module repository in the build directory, with verbose compiler messages:

<target name="compile" depends="ceylon-ant-taskdefs">
  <ceylon-compile-js src="src" out="build" verbose="true">
    <module name="com.example.foo"/>
  </ceylon-compile-js>
</target>

Description

Compiles Ceylon source code to JavaScript and directly produces module and source archives in a module repository

The <ceylon-compile-js> ant task wraps the ceylon compile-js command.

Attributes

Attribute Description Required
cacheRep

Equivalent to the --cacherep command line option. Specifies the folder to use for caching downloaded modules. (default: ~/.ceylon/cache)

No
config

Equivalent to the --config command line option. Specifies the configuration file to use for this tool. (default: ./.ceylon/config)

No
cwd

Equivalent to the --cwd command line option. Specifies the current working directory for this tool. (default: the directory where the tool is run from)

No
encoding

Equivalent to the --encoding command line option. Sets the encoding used for reading source files (default: platform-specific)

No
errorProperty

The ant property to set to true in the event of an error

No
executable

The location of the ceylon executable script.

No
failOnError

Whether an error in executing this task should fail the ant build

No
fork

Whether the task should be run in a separate VM (default: false)

No
inheritAll

Whether a task should inherit environment and properties. Only applies when forked == true.

No
lexicalScopeStyle

Equivalent to the --lexical-scope-style command line option. Create lexical scope-style JS code

No
noDefaultRepositories

Equivalent to the --no-default-repositories command line option. Indicates that the default repositories should not be used.

No
noMtimeCheck

When true a file modification time check will be performed to avoid processing sources unnecessarily (default: true).

No
offline

Equivalent to the --offline command line option. Enables offline mode that will prevent connections to remote repositories.

No
out

Equivalent to the --out command line option. Specifies the output module repository (which must be publishable). (default: ./modules)

No
overrides

Equivalent to the --overrides command line option. Specifies the XML file to use to load module overrides. See http://ceylon-lang.org/documentation/current/reference/repository/maven/ for information. Experimental.

No
pass

Equivalent to the --pass command line option. Sets the password for use with an authenticated output repository (no default).

No
resultProperty

The ant property to set to the Ceylon program exit code

No
srcArchive

The opposite of --skip-src-archive

No
stacktraces

Equivalent to the --stacktraces command line option. If an error propagates to the top level tool, print its stack trace.

No
sysRep

Equivalent to the --sysrep command line option. Specifies the system repository containing essential modules. (default: $CEYLON_HOME/repo)

No
user

Equivalent to the --user command line option. Sets the user name for use with an authenticated output repository (no default).

No
verbose

Equivalent to the --verbose command line option. Produce verbose output. If no flags are given then be verbose about everything, otherwise just be verbose about the flags which are present. Allowed flags include: all, loader, ast, code, stitcher.

No
wrapModule

The opposite of --no-module

No

Nested elements

<define>

A <define> element is used to set system properties for the ant task being executed. Equivalent to the --define command line option. Set a system property

The value for the system property can either be passed as a value attribute:

<define key="org.example.helloworld.greeting" value="Hi"/>

or it can be the text between the begin and end tags:

<define key="org.example.helloworld.greeting">Hi</define>

Alternatively, it is posible to dispense with the attributes and use the syntax

<define>org.example.helloworld.greeting=Hi</define>
Element Description Required
key

The property to be defined

No
value

The value of the define

No

<files>

Ceylon files to be compiled`

<module>

A ceylon module to be compiled`

A <module> element must specify a name, and may specify a version. If the relevant ceylon task don't require a version it will be ignored.

Element Description Required
name

The module name.

Yes
version

The module version. Whether this is required depends on the task

No

<moduleset>

Ceylon modules to be compiled`

A <moduleset> containing a number of <sourcemodule>s and/or <module> subelements. It can be defined at the top level and then used by reference using the refid attribute, so you don't have to repeat the same list of modules all the time.

Element Description Required
refid

A reference to a <moduleset> defined elsewhere.

No

<rep>

A module repository containing dependencies. Can be specified multiple times. Defaults to <rep url="./modules"/>.

Element Description Required
url

The URL or path of the module repository.

Yes, unless a `refid` is given
refid

A reference to a <rep> defined outside this task.

No

<reposet>

A set of module repositories containing dependencies. Can be specified multiple times. Default to modules.

A <reposet> element contains a number of <repo> and/or <reposet> elements. It can be defined at the top level, and then used by reference using the refid attribute so you don't have to repeat the same list of repositories all the time.

Element Description Required
refid

A reference to a <reposet> defined elsewhere.

No

<source>

A <source> path, specifying a source path, for example:

<source>my/src/directory</source>

or

<source value="/src/directory"/>

Equivalent to the --src command line option. Path to source files. Can be specified multiple times; you can also specify several paths separated by your operating system's PATH separator. (default: ./source)

Element Description Required
value

The source path.

No

<src>

Synonymous with <source>

Element Description Required
value

The source path.

No

<suppressWarning>

Equivalent to the --suppress-warning command line option. Suppress the reporting of the given warnings. If no warnings are given then suppresss the reporting of all warnings, otherwise just suppresss those which are present. Allowed flags include: filenameNonAscii, filenameClaselessCollision, deprecation, compilerAnnotation, doclink, expressionTypeNothing, unusedDeclaration, unusedImport, ceylonNamespace, javaNamespace, suppressedAlready, suppressesNothing.

Suppresses compiler warnings. Warnings can be suppressed by type, for example

<suppressWarning>filenameNonAscii</suppressWarning>

or eqiuvalently

<suppressWarning value="filenameNonAscii">

or all warnings can be suppressed by not naming any specific warnings:

<suppressWarning/>
Element Description Required
value

The name of the warning(s) to be suppressed.

No

See also