# ============================================================================= # This file defines properties used by build-impl.xml and the associated # *-impl.xml files (sass-impl.xml, js-impl.xml, etc.), which are the core of # the applications build process. # # This file represents the lowest priority file for defining these properties # as well as the place to look for documentation and learning what properties # exist. # # The full set of these files is as follows (in priority order): # # - One of these (based on build.environment): # - production.properties # - testing.properties # - native.properties # - package.properties # # - build.properties # # - One of these (based on app.framework): # - ext.properties # - touch.properties # # - One of these (based on build.environment): # - production.defaults.properties # - testing.defaults.properties # - native.defaults.properties # - package.defaults.properties # # - defaults.properties # # Properties are controlled by the first file in the above list to define the # value. Values from all levels, however, can reference each other via the # property expansion. # # IMPORTANT - This file should not be modified by an app as it is overwritten # during each app upgrade. # ============================================================================= # ***************************************************************************** # Global Build Properties # these are cross-concern properties used by many build phases # ***************************************************************************** # the default build environment type (production, testing, native, package) # NOTE: this is only a default and will typically be set before this file is # loaded, typically by the 'sencha app build" command. # See "sencha help app build" for details. # # The corresponding properties files: # (production.properties, testing.properties, etc.) provide examples of # overriding sets of properties depending on the selected environment # NOTE: this replaces the deprecated args.environment app.environment=production build.environment=${app.environment} # the directory to place built application files build.dir=${workspace.build.dir}/${build.environment}/${app.name} app.compressor.type=${app.compressor} app.output=${build.dir} app.output.base=${app.output} app.output.page=index.html app.output.page.path=${app.output.page} app.output.page.enable=true app.output.resources=resources app.output.resources.path=${app.output.resources} app.output.resources.enable=true app.output.resources.compress=${app.output.js.compress} app.output.css.dir=${app.output.resources.path} app.output.css=${app.output.css.dir}/${app.name}-all.css app.output.css.path=${app.output.css} app.output.css.enable=true app.output.css.compress=true app.output.css.preprocess=true app.output.css.split=4095 app.output.js=app.js app.output.js.path=${app.output.js} app.output.js.enable=true app.output.js.compress=false app.output.js.optimize=false app.output.js.optimize.cssPrefix=${app.output.js.optimize} app.output.js.optimize.xtemplate=false app.output.js.optimize.propNames=${app.output.js.optimize} app.output.js.optimize.defines=${app.output.js.optimize} app.output.js.optimize.callParent=${app.output.js.optimize} app.output.js.optimize.requires=${app.output.js.optimize} app.output.framework=framework.js app.output.framework.path=${app.output.framework} app.output.framework.enable=false app.output.microloader=microloader.js app.output.microloader.path=${app.output.microloader} app.output.microloader.enable=true app.output.microloader.embed=true app.output.manifest=app.json app.output.manifest.path=${app.output.manifest} app.output.manifest.enable=true app.output.manifest.embed=false app.output.slicer=${app.output.resources.path} app.output.slicer.path=${app.output.slicer} app.output.slicer.enable=true app.archivePath=archive app.output.archive=${app.archivePath} app.output.archive.path=${app.output.archive} app.cache.enable=${app.output.deltas.enable} app.output.cache=cache.appcache app.output.cache.path=${app.output.cache} app.output.cache.enable=true app.output.appCache.enable=${app.output.cache.enable} app.output.appCache.path=${app.output.cache.path} build.out.base.path=${app.output.base} build.out.page.path=${build.out.base.path}/${app.output.page.path} build.out.resources.path=${build.out.base.path}/${app.output.resources.path} build.out.css.path=${build.out.base.path}/${app.output.css.path} build.out.js.path=${build.out.base.path}/${app.output.js.path} build.out.framework.path=${build.out.base.path}/${app.output.framework.path} build.out.archive.path=${build.out.base.path}/${app.output.archive.path} build.out.manifest.path=${build.out.base.path}/${app.output.manifest.path} build.out.microloader.path=${build.out.base.path}/${app.output.microloader.path} build.out.appCache.path=${build.out.base.path}/${app.output.appCache.path} # Moved to init-impl.xml to handle truthy special values #build.out.deltas.path=${build.out.base.path}/${app.output.deltas.path} build.out.slicer.path=${build.out.base.path}/${app.output.slicer.path} # place holder properties to allow the newer .path property to control the existing .dir property build.out.resources.dir=${build.out.resources.path} build.out.css.dir=${build.out.base.path}/${app.output.css.dir} build.out.metadata.path=${build.out.page.path} # a temporary output directory used for staging intermediate build artifacts build.temp.dir=${workspace.build.dir}/temp/${build.environment}/${app.name} # the directory under the output folder for placing resources build.resources.dir=${build.out.resources.path} app.manifest.bootstrap=bootstrap.json app.bootstrap=${app.dir} app.bootstrap.base=${app.bootstrap} app.bootstrap.page=${app.indexHtmlPath} app.bootstrap.page.path=${app.bootstrap.page} app.bootstrap.css=${app.bootstrap.css.name} app.bootstrap.css.path=${app.bootstrap.css} app.bootstrap.microloader=${app.bootstrap.js.name} app.bootstrap.microloader.path=${app.bootstrap.microloader} app.bootstrap.manifest=${app.manifest.bootstrap} app.bootstrap.manifest.path=${app.bootstrap.manifest} build.bootstrap.base.path=${app.bootstrap.base} build.bootstrap.page.path=${build.bootstrap.base.path}/${app.bootstrap.page.path} build.bootstrap.css.path=${build.bootstrap.base.path}/${app.bootstrap.css.path} build.bootstrap.microloader.path=${build.bootstrap.base.path}/${app.bootstrap.microloader.path} build.bootstrap.manifest.path=${build.bootstrap.base.path}/${app.bootstrap.manifest.path} build.bootstrap.metadata.path=${build.bootstrap.page.path} # ***************************************************************************** # JS # these properties control various aspects of output js code construction # ***************************************************************************** # the output js file that contains all needed js code # deprecated, now controlled by app.output.js / app.output.js.path in app.json build.classes.file=${build.out.js.path} # the output js file for framework code, if the framework # classes are not included in the default all-classes.js file # deprecated, now controlled by app.output.framework / app.output.framework.path in app.json build.framework.name=framework.js build.framework.file=${build.out.framework.path} # Don't use these - they are deprecated build.options.debug.enable=debug:true build.options.debug.disable=debug:false build.options.logger.enable=logger:yes build.options.logger.disable=logger:no # This property enables/disables blocks in js output, see build.options build.options.logger=no # This property enables/disables blocks in js output, see build.options build.options.debug=false # This property can be used to pass custom build options in addition to any of the other # build.options flags. When overlapping, these options take priority, see build.options build.options.custom= # This value is specified by the framework build.options.default= # This property contains the framework ("product") used for filtering of JavaScript using # the preprocessor. This is set by either ext.properties or touch.properties. # #build.options.product=touch # This property contains the desired API level used for preprocessor filtering of JavaScript. # This is set by either ext.properties or touch.properties. # #build.options.minVersion=2.1 # This property holds the set of js preprocessor options in the form: # # name1:value1,name2:value2,... # # (used by -init-compiler in init-impl.xml) # # This property is not likely to be set directly. Rather, you should set one of the # contributing properties that are combined to form this one: # # build.options.debug # build.options.logger # build.options.custom # # The other properties that contribute to this are typically not needing to be set: # # build.options.product # build.options.minVersion # build.options=logger:${build.options.logger},debug:${build.options.debug},product:${build.options.product},minVersion:${build.options.minVersion},${build.options.default},${build.options.custom} # This property can be modified to change general build options # such as excluding files from the set. The format expects newlines # for each argument, for example: # # build.operations=\ # exclude\n \ # -namespace=Ext\n # # NOTE: modifications to build.operations are intended to be # placed in an override of the "-after-init" target, where it # can be calculated based on other # ant properties # # build.operations= # enables / disables the full class optimizer during js builds # (used by the -compile-* targets in js-impl.xml) build.optimize.defines=${app.output.js.optimize.defines} build.optimize.callparent=${app.output.js.optimize.callParent} build.optimize.cssPrefix=${app.output.js.optimize.cssPrefix} build.optimize.xtemplate=${app.output.js.optimize.xtemplate} build.optimize.propNames=${app.output.js.optimize.propNames} build.optimize.include.metadata=${app.output.js.optimize.requires} build.optimize.enable=\ optimize\n \ -property-name=${build.optimize.propNames}\n \ -css-prefix=${build.optimize.cssPrefix}\n \ -xtemplate=${build.optimize.xtemplate}\n \ -define-rewrite=${build.optimize.defines}\n \ -call-parent=${build.optimize.callparent}\n \ -include-metadata=${build.optimize.include.metadata} build.optimize.disable= build.optimize=${build.optimize.disable} # enables / disables removing text references from # package js build files build.remove.references=true # enables / disables removing "requires" and "uses" elements # from class definitions build.remove.requirement.nodes=true # enables / disables de-quoting certain string references to classes # like mixin references build.optimize.string.references=true # enables / disables yui compression build.compression.yui=${app.output.js.compress} # enables / disables closure compression build.compression.closure=0 # enables / disables uglify compression build.compression.ugilfy=0 build.compile.temp.dir=${build.temp.dir}/sencha-compiler # controles whether to keep the temp compile dir after the build build.compile.temp.dir.keep=true # ------------------------------------------ # DOC ONLY - Do Not Set # this variable will be set to the appropriate compressor # option, and is calculated in init-impl.xml, but may be overridded in # app.properties, .properties, or via command line # # build.compression= # ------------------------------------------ # ***************************************************************************** # Page # these variables control aspects of building the output markup page # ***************************************************************************** # controls whether the microloader content will be embedded in the output # markup, or left as a separate resource build.enable.embedded.microloader=${app.output.microloader.embed} # whether to include the page's manifest.json code with the # microloader content. Production.properties files should set this to # false to have manifest.json exist as a server resource. build.enable.embedded.manifest=${app.output.manifest.embed} # enables / disables compression of resources referenced in app.json / package.json # js and css entries enable.resource.compression=${app.output.resources.compress} # defaults to index.html, but may be overridden in app.json app.indexHtmlPath=index.html # the input page file for the application app.page.name=${app.indexHtmlPath} app.page.file=${app.dir}/${app.page.name} # the output page file # deprecated, now controlled by app.output.page / app.output.page.path in app.json build.page.name=${app.page.name} build.page.dir=${build.out.base.path} build.page.file=${build.out.page.path} # the directory where the microloader files may be found app.microloader.dir=${app.config.dir}/microloader # the file names of the individual microloaders app.microloader.development=development.js app.microloader.testing=testing.js app.microloader.production=production.js # the target microloader to use for builds app.microloader.name=${app.microloader.development} app.microloader=${app.microloader.dir}/${app.microloader.name} app.microloader.path=${app.microloader} # specifies how to embed the microloader code into the output markup # {0} is replaced with the content of the microloader file specified # by app.microloader.path build.microloader.code.tpl={0} # the template to use when generating a stand-alone json manifest file build.microloader.json.tpl.standalone={0} # the template to use when embedding the manifest json directly next to the # microloader in the output microloader content build.microloader.json.tpl.embedded=Ext.blink({0}); # the template to use in the output microloader content when supplying # the manifest json as a separate server-side resource ('production' builds) build.microloader.json.tpl.external=Ext.blink('{'id:''${app.id}'''}'); # the template string to use when embedding the microloader content # into the output markup build.embedded.microloader.tpl= # the compressor to use when embedding the microloader into a page # can be -closure or -yui, or leave empty to disable compression build.embedded.microloader.compressor= # the path to the microloader content file, if external to the outpout markup build.microloader.path=${build.out.microloader.path} # the inner markup to embed into the output markup when not including # the microloader content directly into the output markup build.embedded.microloader.src=${build.microloader.name} build.external.microloader.markup= # a flag indicating which mode the microloader should run in (production, testing, etc.) # currently unused : is a placeholder for future microloader interactions build.microloader.mode=${build.environment} # the tag name to use when generating the compiler save set for # the page's js code build.tag.name=full-page # the name of the archive folder containing source versions for # delta patch generation # deprecated, now controlled by app.output.archive / app.output.archive.path in app.json build.archive.name=archive # the output cache manifest file build.manifest.name=${app.output.appCache.path} build.manifest.path=${build.out.appCache.path} # the name of the manifest json file build.json.name=${app.manifest.name} # the full path to the manifest json file build.out.json.path=${build.out.manifest.path} # Defines the file that will contain Ext.setVersion calls for each used package. build.out.package.versions=${build.compile.temp.dir}/cmd-packages.js # a temp directory for managing extracted resources during the page build build.app.temp.dir=${build.compile.temp.dir}/app # controls the format of checksum headers injected into microloaded content # either comment style, or code style for js and css files delta.comment.checksums=false # ***************************************************************************** # Refresh # these properties are used for generating bootstrap js and css # files to support dev-time interaction with the app # ***************************************************************************** # the base path to use for generating / calculating bootstrap info # this property is not longer defaulted here, but calculated in refresh-impl.xml # based on new app.bootstrap properties # app.bootstrap.base.path=${app.dir} # these control the name of the bootstrap js file # note: there will be corresponding entries in either the index page # or app.json that reference these names # deprecated, use app.bootstrap.microloader app.bootstrap.js.name=bootstrap.js app.bootstrap.js=${build.bootstrap.microloader.path} # these control the name of the bootstrap css file (for ext 4.2+ apps) # note: there will be corresponding entries in either the index page # or app.json that reference these names app.bootstrap.css.name=bootstrap.css # the microloader to use for bootstrapping operations app.microloader.bootstrap=${app.microloader.dir}/${app.microloader.development} # the name of the bootstrap microloader manifest build.json.bootstrap.name=${app.manifest.bootstrap} # the full path to the bootstrap microloader manifest build.json.bootstrap.path=${build.bootstrap.manifest.path} # enables inclusion of override files in the generated bootstrap bootstrap.include.overrides=true # enables inclusion of the Boot.js code in the generated bootstrap bootstrap.include.boot=false # controls the template used to generate load calls for override files bootstrap.override.tpl=Ext.Loader.loadScriptFile(''{0}'', Ext.emptyFn); build.boot.name=Boot.js build.boot.file=${app.config.dir}/${build.boot.name} build.slicer.microloader.name=Microloader.js build.slicer.microloader.file=${app.config.dir}/${build.slicer.microloader.name} # the type of the override template ('tpl' or 'jsonp') bootstrap.override.tpltype=tpl # ***************************************************************************** # Sass / Css # properties for controling features of sass generation and compilation # ***************************************************************************** # controls the ruby command that is used to execute compasss # a full path to ruby may be specified rather than allowing the system # shell to resolve the command build.ruby.path=ruby # -------------------- # these control properties select the mode used to build the app's styling # see sass-impl.xml for how then are used # enables theme builds for apps using ext 41 style themes enable.ext41.themes=false # enables theme builds for apps using ext 42 style themes enable.ext42.themes=false # enables theme builds for apps using touch style themes enable.touch.themes=false # -------------------- # selector count threshold to use when # splitting a single css file into multiple # css files (IE selector limit workaround) # # NOTE: applies only to ext js 4.2+ style theme management, currently # see the above theme control variables for details build.css.selector.limit=${app.output.css.split} # enables / disable css preprocessor (enable.ext42.themes only) build.css.preprocess=${app.output.css.preprocess} # sets the css preprocessor options, in the form: # name1:value1,name2:value2,... build.css.preprocessor.opts= # enables / disable css compressor (enable.ext42.themes only) build.css.compress=${app.output.css.compress} # controls the directory used to generate the output app scss file # for apps that use theme packages build.sass.dir=${build.temp.dir}/sass # Specify the name for the individual resource dirs in the app # (enable.touch.themes only) app.sass.name=sass # Specify the sass path in the app # (enable.touch.themes only) app.sass.dir=${app.dir}/resources/${app.sass.name} # name prefix to use for output css / sass files app.out.base=${app.name}-all app.out.base.debug=${app.out.base} # the output sass file to generate (used with enable.ext42.themes) app.out.scss=${build.sass.dir}/${app.out.base.debug}.scss # the output ruby compass config file to generate (used with enable.ext42.themes) app.out.ruby=${build.sass.dir}/config.rb # output css file prefix app.out.css.prefix=${app.out.base.debug} # output css file name app.out.css.name=${app.out.css.prefix}.css # output css file path (relative to build directory root app.out.css.rel=${app.output.resources.path}/${app.out.css.name} # output css file path (full path) app.out.css=${build.out.css.path} # separate file name to use for generating a compressed copy # of the output css file (this default will compress the file in-place) app.out.css.compressed=${build.out.css.path} # the directory containing sass files for compass to compile compass.sass.dir=${build.sass.dir} # the output directory where compass should place built css files compass.css.dir=${build.out.css.dir} # the directory containing the ruby config file for compass compass.config.file=${app.out.ruby} # enables / disables console highlighting for compass compass.compile.boring=false # enables / disables forced rebuilds for compass compass.compile.force=true # enables / disables stack traces in compass failure output compass.compile.trace=true compass.cache.dir=${workspace.build.dir}/.sass-cache compass.working.dir=${build.sass.dir} # --------------------------------------------------- # Legacy properties for ext41 theme directories # Specify the resources path in the app app.packages.dir=${app.dir}/packages # Specify the theme path in the app (this directory contains the themes) app.theme.dir=${app.packages.dir} # the currently selected ext 41 theme name theme.name=default # --------------------------------------------------- # ***************************************************************************** # Slice # these properties control features of the theme slice build phase # ***************************************************************************** # the resources directory of the application # note: this property is currently only used for building ext 4.1 style themes # (used by x-build-theme and x-copy-resources in slice-impl.xml) app.resources.dir=${app.dir}/resources # the directory containing the slicer widget example page app.example.dir=${app.dir}/sass/example # properties to control the recirect css file that is # generated for the slicer example page app.example.css.name=example.css app.example.css.file=${app.example.dir}/${app.example.css.name} # the base path for generating the bootstrap code for the # slicer page bootstrap.base.path=${app.example.dir} # the full file name of the slicer page's bootstrap js file bootstrap.example.js=${app.example.dir}/bootstrap.js # the full file name of the slicer page's bootstrap js file bootstrap.example.json.name=bootstrap.json bootstrap.example.json=${app.example.dir}/${bootstrap.example.json.name} # this is the directory used for intermediate build artifacts used # by the slicer for generating theme images app.example.build.dir=${build.temp.dir}/slicer-temp # the name of the intermediate screenshot file used for image slicing build.capture.png=${app.example.build.dir}/theme-capture.png # the name of the intermediate widget manifest file used for image slicing build.capture.json=${app.example.build.dir}/theme-capture.json # the location of the slicer widget page app.example.theme.html.name=theme.html app.example.fashion.html.name=fashion.html app.example.theme.html=${app.example.dir}/${app.example.theme.html.name} app.example.fashion.html=${app.example.dir}/${app.example.fashion.html.name} # a name prefix used for slicer page temporary artifacts app.example.base=${app.name}-example # the special slicer page scss file name to generate app.example.scss=${app.example.build.dir}/${app.example.base}.scss # the relative path from the slicer css file to the slicer html file app.example.css.rel=${app.example.base}.css # the path to the css file that will be built for the slicer page app.example.css=${app.example.build.dir}/${app.example.css.rel} # the ruby compass config file to generate for slicer page scss app.example.out.ruby=${app.example.build.dir}/config.rb app.example.compass.config=${app.example.out.ruby} # legacy ext 41 theme property indicating the name of the # slicer example page contained in the theme directory theme.page.name=theme.html # Options to pass to the "sencha fs slice" command. build.slice.options= # ***************************************************************************** # Packager # these properties control features of the native packaging phase of the # build process # ***************************************************************************** # enables packaging the built application with the Sencha Desktop Packager # NOTE: currently unsupported enable.desktop.packager=false # skips packaging the built application with cordova/phonegap skip.native-package=false # a property that controls whether a standalone manifest.json file will be # generated for the native packaged application enable.standalone.manifest=false # ***************************************************************************** # Resolve # these properties control aspects of the dynamic dependency resolver, which # uses phantomjs to load the application and extract Ext.Loader class load # history. # ***************************************************************************** # enables / disables dynamic dependency resolution skip.resolve=true # enables the local web server. this may be disabled to load the application's # page from an existing web server. skip.web-start=false # the port number to start the local web server on build.web.port=1841 # the directory representing the root web folder build.web.root=${workspace.dir} # the base url to access the local web server build.resolve.url=http://localhost:${build.web.port} # a template string used to format the detected dynamic dependencies build.resolve.tpl={0} # the mode to use when formatting the detected dynamic dependencies build.resolve.mode=references # the output file for the detected dynamic dependencies build.resolve.file=${build.temp.dir}/resolve.json # controls whether unmatched external references in the specified file will # generate build warnings or build failures build.resolve.allow.unmatched=true # ***************************************************************************** # Watch # these properties adjust the behavior of the app watch process. # ***************************************************************************** # the default set of actions to run when triggering a rebuild build.trigger.targets=refresh,resources,sass # the watcher targets to run that monitor for code changes build.watcher.targets=-watch-compiler