1 # =============================================================================
2 # This file defines properties used by build-impl.xml and the associated
3 # *-impl.xml files (sass-impl.xml, js-impl.xml, etc.), which are the core of
4 # the applications build process.
6 # This file represents the lowest priority file for defining these properties
7 # as well as the place to look for documentation and learning what properties
10 # The full set of these files is as follows (in priority order):
12 # - One of these (based on build.environment):
13 # - production.properties
14 # - testing.properties
16 # - package.properties
20 # - One of these (based on app.framework):
24 # - One of these (based on build.environment):
25 # - production.defaults.properties
26 # - testing.defaults.properties
27 # - native.defaults.properties
28 # - package.defaults.properties
30 # - defaults.properties
32 # Properties are controlled by the first file in the above list to define the
33 # value. Values from all levels, however, can reference each other via the
36 # IMPORTANT - This file should not be modified by an app as it is overwritten
37 # during each app upgrade.
38 # =============================================================================
40 # *****************************************************************************
41 # Global Build Properties
42 # these are cross-concern properties used by many build phases
43 # *****************************************************************************
45 # the default build enviornment type (production, testing, native, package)
46 # NOTE: this is only a default and will typically be set before this file is
47 # loaded, typically by the 'sencha app build" command.
48 # See "sencha help app build" for details.
50 # The corresponding properies files:
51 # (production.properties, testing.properties, etc.) provide examples of
52 # overriding sets of properties depending on the selected environment
53 # NOTE: this replaces the deprecated args.environment
54 build.environment=production
56 # the directory to place built application files
57 build.dir=${workspace.build.dir}/${build.environment}/${app.name}
59 # a temporary output directory used for staging intermediate build artifacts
60 build.temp.dir=${workspace.build.dir}/temp/${build.environment}/${app.name}
62 # the directory under the output folder for placing resources
63 build.resources.dir=${build.dir}/resources
65 # *****************************************************************************
67 # these properties control various aspects of output js code construction
68 # *****************************************************************************
70 # the output js file that contains all needed js code
71 build.classes.name=app.js
72 build.classes.file=${build.dir}/${build.classes.name}
74 # the output js file for framework code, if the framework
75 # classes are not included in the default all-classes.js file
76 build.framework.name=framework.js
77 build.framework.file=${build.dir}/${build.framework.name}
79 # Don't use these - they are deprecated
80 build.options.debug.enable=debug:true
81 build.options.debug.disable=debug:false
82 build.options.logger.enable=logger:yes
83 build.options.logger.disable=logger:no
85 # This property enables/disables <feature logger> blocks in js output, see build.options
86 build.options.logger=no
88 # This property enables/disables <debug> blocks in js output, see build.options
89 build.options.debug=false
91 # This property can be used to pass custom build options in addition to any of the other
92 # build.options flags. When overlapping, these options take priority, see build.options
95 # This value is specified by the framework
96 build.options.default=
98 # This property contains the framework ("product") used for filtering of JavaScript using
99 # the preprocessor. This is set by either ext.properties or touch.properties.
101 #build.options.product=touch
103 # This property contains the desired API level used for preprocessor filtering of JavaScript.
104 # This is set by either ext.properties or touch.properties.
106 #build.options.minVersion=2.1
108 # This property holds the set of js preprocessor options in the form:
110 # name1:value1,name2:value2,...
112 # (used by -init-compiler in init-impl.xml)
114 # This property is not likely to be set directly. Rather, you should set one of the
115 # contributing properties that are combined to form this one:
117 # build.options.debug
118 # build.options.logger
119 # build.options.custom
121 # The other properties that contribute to this are typically not needing to be set:
123 # build.options.product
124 # build.options.minVersion
126 build.options=logger:${build.options.logger},debug:${build.options.debug},product:${build.options.product},minVersion:${build.options.minVersion},${build.options.default},${build.options.custom}
128 # This property can be modified to change general build options
129 # such as excluding files from the set. The format expects newlines
130 # for each argument, for example:
136 # NOTE: modifications to build.operations are intended to be
137 # placed in an override of the "-after-init" target, where it
138 # can be calculated based on other
143 # enables / disables the full class optimizer during js builds
144 # (used by the -compile-* targets in js-impl.xml)
145 build.optimize.enable=\
148 build.optimize.disable=
149 build.optimize=${build.optimize.disable}
151 # enables / disables yui compression
152 build.compression.yui=0
154 # enables / disables closure compression
155 build.compression.closure=0
157 # enables / disables uglify compression
158 build.compression.ugilfy=0
160 build.compile.temp.dir=${build.temp.dir}/sencha-compiler
162 # controles whether to keep the temp compile dir after the build
163 build.compile.temp.dir.keep=true
165 # ------------------------------------------
166 # DOC ONLY - Do Not Set
167 # this variable will be set to the appropriate compressor
168 # option, and is calculated in init-impl.xml, but may be overridded in
169 # app.properties, <environment>.properties, or via command line
172 # ------------------------------------------
174 # *****************************************************************************
176 # these variables control aspects of building the output markup page
177 # *****************************************************************************
179 # controls whether the output will be microloader-enabled, or markup only
180 build.output.markuponly=false
182 # controls whether the microloader content will be embedded in the output
183 # markup, or left as a separate resource
184 build.enable.embedded.microloader=true
186 # whether to include the page's manifest.json code with the
187 # microloader content. Production.properties files should set this to
188 # false to have app.json exist as a server resource.
189 build.enable.embedded.manifest=true
191 # enables / disables delta patch generation
194 # enables / disables generation of cache manifest
195 enable.cache.manifest=false
197 # enables / disables compression of resources referenced in app.json / package.json
199 enable.resource.compression=false
201 # defaults to index.html, but may be overridden in app.json
202 app.indexHtmlPath=index.html
204 # the input page file for the application
205 app.page.name=${app.indexHtmlPath}
206 app.page.file=${app.dir}/${app.page.name}
208 # the output page file
209 build.page.name=${app.page.name}
210 build.page.file=${build.dir}/${build.page.name}
212 # the directory where the microloader files may be found
213 app.microloader.dir=${app.config.dir}/microloader
215 # the file names of the individual microloaders
216 app.microloader.development=development.js
217 app.microloader.testing=testing.js
218 app.microloader.production=production.js
220 # the target microloader to use for builds
221 app.microloader.name=${app.microloader.development}
222 app.microloader.path=${app.microloader.dir}/${app.microloader.name}
224 # specifies how to embed the microloader code into the output markup
225 # {0} is replaced with the content of the microloader file specified
226 # by app.microloader.path
227 build.microloader.code.tpl={0}
229 # the template to use when generating a stand-alone json manifest file
230 build.microloader.json.tpl.standalone={0}
232 # the template to use when embedding the manifest json directly next to the
233 # microloader in the output microloader content
234 build.microloader.json.tpl.embedded=Ext.blink({0});
236 # the template to use in the output microloader content when supplying
237 # the manifest json as a separate server-side resource ('production' builds)
238 build.microloader.json.tpl.external=Ext.blink('{'id:''${app.id}'''}');
240 # the template string to use when embedding the microloader content
241 # into the output markup
242 build.embedded.microloader.tpl=<script type="text/javascript">{0}</script>
244 # the compressor to use when embedding the microloader into a page
245 # can be -closure or -yui, or leave empty to disable compression
246 build.embedded.microloader.compressor=
248 # the name of the output microloader file
249 build.microloader.name=microloader.js
251 # the path to the microloader content file, if external to the outpout markup
252 build.microloader.path=${build.dir}/${build.microloader.name}
254 # the inner markup to embed into the output markup when not including
255 # the microloader content directly into the output markup
256 build.embedded.microloader.src=${build.microloader.name}
257 build.external.microloader.markup=<script src="${build.embedded.microloader.src}"></script>
259 # a flag indicating which mode the microloader should run in (production, testing, etc.)
260 # currently unused : is a placeholder for future microloader interactions
261 build.microloader.mode=${build.environment}
263 # the tag name to use when generating the compiler save set for
265 build.tag.name=full-page
267 # the name of the archive folder containing source versions for
268 # delta patch generation
269 build.archive.name=archive
270 build.out.archive.path=${workspace.build.dir}/${build.archive.name}/${app.name}
272 # the name of the output folder for calculated delta patches
273 build.deltas.name=deltas
274 build.out.delta.path=${build.dir}/${build.deltas.name}
276 # the output cache manifest file
277 build.manifest.name=cache.appcache
278 build.manifest.path=${build.dir}/${build.manifest.name}
280 # the path to the output markup page
281 build.out.page.path=${build.dir}/${app.page.name}
283 # the name of the manifest json file
284 build.json.name=app.json
286 # the full path to the manifest json file
287 build.out.json.path=${build.dir}/${build.json.name}
289 # Defines the file that will contain Ext.setVersion calls for each used package.
290 build.out.package.versions=${build.compile.temp.dir}/cmd-packages.js
292 # a temp directory for managing extracted resources during the page build
293 build.app.temp.dir=${build.compile.temp.dir}/app
295 # controls the format of checksum headers injected into microloaded content
296 # either comment style, or code style for js and css files
297 delta.comment.checksums=false
299 # *****************************************************************************
301 # these properties are used for generating bootstrap js and css
302 # files to support dev-time interaction with the app
303 # *****************************************************************************
305 # the base path to use for generating / calculating bootstrap info
306 app.bootstrap.base.path=${app.dir}
308 # these control the name of the bootstrap js file
309 # note: there will be corresponding entries in either the index page
310 # or app.json that reference these names
311 app.bootstrap.js.name=bootstrap.js
312 app.bootstrap.js=${app.bootstrap.base.path}/${app.bootstrap.js.name}
314 # these control the name of the bootstrap css file (for ext 4.2+ apps)
315 # note: there will be corresponding entries in either the index page
316 # or app.json that reference these names
317 app.bootstrap.css.name=bootstrap.css
318 app.bootstrap.css=${app.bootstrap.base.path}/${app.bootstrap.css.name}
320 # the microloader to use for bootstrapping operations
321 app.microloader.bootstrap=${app.microloader.dir}/${app.microloader.development}
323 # the name of the bootstrap microloader manifest
324 build.json.bootstrap.name=bootstrap.json
326 # the full path to the bootstrap microloader manifest
327 build.json.bootstrap.path=${app.dir}/${build.json.bootstrap.name}
329 # *****************************************************************************
331 # properties for controling features of sass generation and compilation
332 # *****************************************************************************
334 # controls the ruby command that is used to execute compasss
335 # a full path to ruby may be specified rather than allowing the system
336 # shell to resolve the command
339 # --------------------
340 # these control properties select the mode used to build the app's styling
341 # see sass-impl.xml for how then are used
343 # enables theme builds for apps using ext 41 style themes
344 enable.ext41.themes=false
346 # enables theme builds for apps using ext 42 style themes
347 enable.ext42.themes=false
349 # enables theme builds for apps using touch style themes
350 enable.touch.themes=false
351 # --------------------
353 # selector count threshold to use when
354 # splitting a single css file into multiple
355 # css files (IE selector limit workaround)
357 # NOTE: applies only to ext js 4.2+ style theme management, currently
358 # see the above theme control variables for details
359 build.css.selector.limit=4095
361 # enables / disable css preprocessor (enable.ext42.themes only)
362 build.css.preprocess=true
364 # sets the css preprocessor options, in the form:
365 # name1:value1,name2:value2,...
366 build.css.preprocessor.opts=
368 # enables / disable css compressor (enable.ext42.themes only)
369 build.css.compress=true
371 # controls the directory used to generate the output app scss file
372 # for apps that use theme packages
373 build.sass.dir=${build.temp.dir}/sass
375 # Specify the name for the individual resource dirs in the app
376 # (enable.touch.themes only)
379 # Specify the sass path in the app
380 # (enable.touch.themes only)
381 app.sass.dir=${app.dir}/resources/${app.sass.name}
383 # name prefix to use for output css / sass files
384 app.out.base=${app.name}-all
385 app.out.base.debug=${app.out.base}
387 # the output sass file to generate (used with enable.ext42.themes)
388 app.out.scss=${build.sass.dir}/${app.out.base.debug}.scss
389 # the output ruby compass config file to generate (used with enable.ext42.themes)
390 app.out.ruby=${build.sass.dir}/config.rb
392 # output css file prefix
393 app.out.css.prefix=${app.out.base.debug}
395 # output css file name
396 app.out.css.name=${app.out.css.prefix}.css
398 # output css file path (relative to build directory root
399 app.out.css.rel=resources/${app.out.css.name}
401 # output css file path (full path)
402 app.out.css=${build.dir}/${app.out.css.rel}
404 # separate file name to use for generating a compressed copy
405 # of the output css file (this default will compress the file in-place)
406 app.out.css.compressed=${build.dir}/resources/${app.out.base}.css
408 # the directory containing sass files for compass to compile
409 compass.sass.dir=${build.sass.dir}
411 # the output directory where compass should place built css files
412 compass.css.dir=${build.dir}/resources
414 # the directory containing the ruby config file for compass
415 compass.config.file=${app.out.ruby}
417 # enables / disables console highlighting for compass
418 compass.compile.boring=false
420 # enables / disables forced rebuilds for compass
421 compass.compile.force=true
423 # enables / disables stack traces in compass failure output
424 compass.compile.trace=true
426 # the directory that will be the current working directory of the compass
427 # process (controls the location of .sass-cache folder creation)
428 # NOTE: this directory will also typically need to contain the config.rb file
429 # used for compass invocation, so it is ideal to set build.sass.dir instead of this
430 # variable, as that will control both the config.rb location as well as the
431 # .sass-cache location
432 compass.working.dir=${build.sass.dir}
434 # ---------------------------------------------------
435 # Legacy properties for ext41 theme directories
436 # Specify the resources path in the app
437 app.packages.dir=${app.dir}/packages
439 # Specify the theme path in the app (this directory contains the themes)
440 app.theme.dir=${app.packages.dir}
442 # the currently selected ext 41 theme name
444 # ---------------------------------------------------
446 # *****************************************************************************
448 # these properties control features of the theme slice build phase
449 # *****************************************************************************
451 # the resources directory of the application
452 # note: this property is currently only used for building ext 4.1 style themes
453 # (used by x-build-theme and x-copy-resources in slice-impl.xml)
454 app.resources.dir=${app.dir}/resources
456 # the directory containing the slicer widget example page
457 app.example.dir=${app.dir}/sass/example
459 # properties to control the recirect css file that is
460 # generated for the slicer example page
461 app.example.css.name=example.css
462 app.example.css.file=${app.example.dir}/${app.example.css.name}
464 # the base path for generating the bootstrap code for the
466 bootstrap.base.path=${app.example.dir}
468 # the full file name of the slicer page's bootstrap js file
469 bootstrap.example.js=${app.example.dir}/bootstrap.js
471 # this is the directory used for intermediate build artifacts used
472 # by the slicer for generating theme images
473 app.example.build.dir=${build.temp.dir}/slicer-temp
475 # the name of the intermediate screenshot file used for image slicing
476 build.capture.png=${app.example.build.dir}/theme-capture.png
478 # the name of the intermediate widget manifest file used for image slicing
479 build.capture.json=${app.example.build.dir}/theme-capture.json
481 # the location of the slicer widget page
482 app.example.theme.html.name=theme.html
483 app.example.theme.html=${app.example.dir}/${app.example.theme.html.name}
485 # a name prefix used for slicer page temporary artifacts
486 app.example.base=${app.name}-example
488 # the special slicer page scss file name to generate
489 app.example.scss=${app.example.build.dir}/${app.example.base}.scss
491 # the relative path from the slicer css file to the slicer html file
492 app.example.css.rel=${app.example.base}.css
494 # the path to the css file that will be built for the slicer page
495 app.example.css=${app.example.build.dir}/${app.example.css.rel}
497 # the ruby compass config file to generate for slicer page scss
498 app.example.out.ruby=${app.example.build.dir}/config.rb
499 app.example.compass.config=${app.example.out.ruby}
501 # legacy ext 41 theme property indicating the name of the
502 # slicer example page contained in the theme directory
503 theme.page.name=theme.html
505 # Options to pass to the "sencha fs slice" command.
508 # *****************************************************************************
510 # these properties control features of the native packaging phase of the
512 # *****************************************************************************
514 # enables packaging the built application with the Sencha Desktop Packager
515 # NOTE: currently unsupported
516 enable.desktop.packager=false
518 # skips packaging the built application with sencha mobile packager (stbuild) or cordova/phonegap
519 skip.native-package=true
521 # a property that controls whether a standalone manifest.json file will be
522 # generated for the native packaged application
523 enable.standalone.manifest=false
525 # these set the name of the mobile native packager's config file
526 build.mobile.packager.name=packager.json
527 build.mobile.packager.file=${app.dir}/${build.mobile.packager.name}
529 # the default mobile packager config to use when specifying the autorun argument
530 # with "sencha app build -run native"
531 build.mobile.packager.default.name=packager.json
532 build.mobile.packager.default.file=${app.dir}/${build.mobile.packager.default.name}
534 # these set the name of the mobile native packager's temporary config file
535 # that will have the input and output path properties updated
536 build.mobile.packager.temp.name=packager.temp.json
537 build.mobile.packager.temp.file=${app.dir}/${build.mobile.packager.temp.name}
539 # the input directory for the mobile native packager that contains the
540 # built Sencha Cmd application
541 build.mobile.packager.in.dir=${build.dir}
543 # the output location of the mobile native packaged application
544 build.mobile.packager.out.dir.name=native-package-mobile
545 build.mobile.packager.out.dir=${workspace.build.dir}/${build.mobile.packager.out.dir.name}/${app.name}
547 # *****************************************************************************
549 # these properties control aspects of the dynamic dependency resolver, which
550 # uses phantomjs to load the applicaiton and extract Ext.Loader class load
552 # *****************************************************************************
554 # enables / disables dynamic dependency resolution
557 # enables the local web server. this may be disabled to load the application's
558 # page from an existing web server.
561 # the port number to start the local web server on
564 # the directory representing the root web folder
565 build.web.root=${workspace.dir}
567 # the base url to access the local web server
568 build.resolve.url=http://localhost:${build.web.port}
570 # a template string used to format the detected dynamic dependencies
571 build.resolve.tpl={0}
573 # the mode to use when formatting the detected dynamic dependencies
574 build.resolve.mode=references
576 # the output file for the detected dynamic dependencies
577 build.resolve.file=${build.temp.dir}/resolve.json
579 # controls whether unmatched external references in the specified file will
580 # generate build warnings or build failures
581 build.resolve.allow.unmatched=true
583 # *****************************************************************************
585 # these properties adjust the behavior of the app watch process.
586 # *****************************************************************************
588 # the default set of actions to run when triggering a rebuild
589 build.trigger.targets=-refresh,-resources,-compass-compile
591 # the watcher targets to run that monitor for code changes
592 build.watcher.targets=-watch-compiler