The configuration file that drives the generator adheres to the JSON specification. It has the following general structure:
{
"jobs" :
{
"job1" : { ... },
"job2" : { ... },
...
"jobN" : { ... }
}
}
The job names job1, ..., jobN are freely chooseable names but must form a valid key. JavaScript-style comments (/.../ and %//%...) are permissible but only in rather robust places, like after a comma or directly after opening or before closing parentheses, but e.g. not between a key and its value.
Quick links:
Here is an example of a minimal config file that defines a single job to create the source version of an application:
{
"jobs" :
{
"source" :
{
"let" :
{
"QOOXDOO_PATH" : "../..",
"APPLICATION" : "custom"
],
"library" :
[
{
"manifest" : "${QOOXDOO_PATH}/framework/Manifest.json"
},
{
"manifest" : "./Manifest.json"
}
],
"compile-options" :
{
"paths" :
{
"file" : "./source/script/${APPLICATION}.js"
}
},
"compile" : { "type" : "source" },
"require" :
{
"qx.log.Logger" : ["qx.log.appender.Native"]
},
"environment" :
{
"qx.application" : "${APPLICATION}.Application"
},
"cache" :
{
"compile" : "../../cache2"
}
}
}
}
Apart from the general Json rules, you can place '=' in front of job and key names, to indicate that this feature should prevail as specified when configs get merged. See here for more details on that. The config system also allows the use of macros, details of which can be found here. If you use keys outside those listed here in your configuration, you will be warned about them, and they will be ignored in the processing.
The value of each job is a map where the keys are not freely chooseable, but are predefined.
Keys can be grouped into several categories:
First, here is an overview table, to list all possible keys in a job (if the key has a different context, this is explicitly noted). Below that, you'll find a structured listing of all possible configuration keys in their respective context, with links to further information for each.
Action Keys | Description |
api | Triggers the generation of a custom Apiviewer application. |
clean-files | Delete files and directories from the file system. |
collect-environment-info | Prints various infos about the qooxdoo environment (version etc.) |
combine-images | Triggers creation of a combined image file that contains various images. |
compile | Triggers the generation of a source or build version of the app. |
copy-files | Triggers files/directories to be copied. |
copy-resources | Triggers the copying of resources. |
fix-files | Fix white space in source files. |
lint-check | Check source code with a lint-like utility. |
migrate-files | Migrate source code to the current qooxdoo version. |
pretty-print | Format source files. |
provider | Collects classes, resources and dependency info in a directory tree. |
shell | Triggers the execution of one or more external command(s). |
simulate | Triggers the execution of a suite of integration tests. |
slice-images | Triggers cutting images into regions. |
translate | Triggers updating of .po files. |
Structure-changing Keys | Description |
default-job (top-level) | Default job to be run. |
export (top-level) | List of jobs to be exported to other config files. |
extend | Extend the current job with other jobs. |
include (top-level) | Include external config files. |
jobs (top-level) | Define jobs. |
let | Define macros. |
let (top-level) | Define default macros. |
run | Define a list of jobs to run. |
Input/Output-setting Keys | Description |
add-script | Includes aritrary URIs to be loaded by the app. |
asset-let | Defines macros that will be replaced in #asset hints. |
compile-options | Various options that taylor the compile action. |
dependencies | Fine-tune dependency processing. |
exclude | Exclude classes from processing of the job. |
include | Include classes to be processed in the job. |
library | Define libraries to be taken into account for this job. |
packages | Define packages for this app. |
require | Define prerequisite classes (load time). |
environment | Define key:value pairs for the app. |
use | Define prerequisite classes (run time). |
Runtime-setting Keys | Description |
cache | Define the path to the cache directory. |
config-warnings (experimental) | Suppress warnings relating to configuration. |
log | Tailor log output options. |
Miscellaneous Keys | Description |
desc | A descriptive string for the job. |
name (top-level) | A descriptive string for the configuration file. |
This shows the complete possible contents of the top-level configuration map. Further information is linked from the respective keys.