You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
190 lines
5.8 KiB
190 lines
5.8 KiB
// Profile for mobile builds on WebKit. |
|
// |
|
// Use when: |
|
// - target to webkit platforms (iOS and Android) |
|
// - document is in standards mode (i.e., with <!DOCTYPE html>) |
|
// Usage: |
|
// ./build.sh releaseDir=... action=release optimize=closure profile=webkitMobile |
|
|
|
var profile = { |
|
// relative to this file |
|
basePath: "../../..", |
|
|
|
// relative to base path |
|
releaseDir: "../webkitMobile", |
|
|
|
stripConsole: "normal", |
|
|
|
// Use closure to optimize, to remove code branches for has("ie") etc. |
|
optimize: "closure", |
|
layerOptimize: "closure", |
|
|
|
packages: [ |
|
{ |
|
name: "dojo", |
|
location: "./dojo" |
|
}, |
|
{ |
|
name: "dijit", |
|
location: "./dijit" |
|
}, |
|
{ |
|
name: "dojox", |
|
location: "./dojox" |
|
}, |
|
{ |
|
name: "themes", |
|
location: "./themes" |
|
} |
|
], |
|
|
|
// this is a "new-version" profile since is sets the variable "profile" rather than "dependencies"; therefore |
|
// the layers property is a map from AMD module id to layer properties... |
|
layers: { |
|
"dojo/dojo": { |
|
// the module dojo/dojo is the default loader (you can make multiple bootstraps with the new builder) |
|
include: [ |
|
// the include vector gives the modules to include in this layer |
|
// note: unless the dojo/dojo layer has the property "customBase" set to truthy, then module |
|
// dojo/main will be automatically added...and conversely |
|
"dijit/_WidgetBase", |
|
"dijit/_Container", |
|
"dijit/_Contained", |
|
"dijit/registry" |
|
], |
|
customBase: true |
|
}, |
|
"dojo/main": { |
|
include: ["dojo/selector/lite"] |
|
}, |
|
"dojox/mobile": { |
|
include: [ |
|
"dojox/mobile" |
|
], |
|
exclude: [ |
|
// exclude gives a dependency forrest to exclude; i tend to put is second since the algorithm is... |
|
// |
|
// The modules to include in a particular layer are computed as follows: |
|
// |
|
// 1. The layer module itself. |
|
// |
|
// 2. Plus the dependency graph implied by the AMD dependencies of the layer module. This is given |
|
// by the dependency vector found in the define application associated with the target module, |
|
// the modules found in the dependency vectors of those modules, and so on until all modules in |
|
// the graph have been found (remember, though not desirable, there may be cycles, so the graph |
|
// is not necessarily a tree). |
|
// |
|
// 3. Plus all modules given in the include array, along with all of those modules' dependency graphs. |
|
// |
|
// 4. Less all modules given in the exclude array, along with all of those modules' dependency graphs. |
|
|
|
"dojo/dojo" |
|
] |
|
}, |
|
"dojox/mobile/app": { |
|
include: [ |
|
"dojox/mobile/app" |
|
], |
|
exclude: [ |
|
"dojo/dojo", |
|
"dojox/mobile" |
|
] |
|
|
|
|
|
} |
|
}, |
|
|
|
staticHasFeatures: { |
|
// Default settings for a browser, from dojo.js; apparently these get modified in special cases |
|
// like when running under node, or against RequireJS, but nothing we need to worry about. |
|
"host-browser": true, |
|
"host-node": false, |
|
"host-rhino": false, |
|
"dom": true, |
|
"dojo-amd-factory-scan": true, |
|
"dojo-loader": true, |
|
"dojo-has-api": true, |
|
"dojo-inject-api": true, |
|
"dojo-timeout-api": true, |
|
"dojo-trace-api": true, |
|
"dojo-log-api": true, |
|
"dojo-dom-ready-api": true, |
|
"dojo-publish-privates": true, |
|
"dojo-config-api": true, |
|
"dojo-sniff": true, |
|
"dojo-sync-loader": true, |
|
"dojo-test-sniff": true, |
|
"config-tlmSiblingOfDojo": true, |
|
|
|
// Other configuration switches that are hardcoded in the source. |
|
// Setting some of these to false may reduce code size, but unclear what they all mean. |
|
"config-publishRequireResult": true, |
|
"dojo-config-addOnLoad": 1, // hardcoded to 1 in the source |
|
"dojo-config-require": true, |
|
"dojo-debug-messages": true, |
|
"dojo-gettext-api": true, // apparently unused |
|
"dojo-guarantee-console": true, |
|
"dojo-loader-eval-hint-url": true, |
|
"dojo-modulePaths": true, |
|
"dojo-moduleUrl": true, |
|
"dojo-v1x-i18n-Api": true, |
|
"dojo-xhr-factory": true, // if require.getXhr() exists (true for dojo's AMD loader, false for requireJS?) |
|
"extend-dojo": true, // add functions to global dojo object |
|
|
|
// Browser flags |
|
"webkit": true, // this is actually a number like 525 but I don't think anyone is using it |
|
"air": false, |
|
"ff": undefined, |
|
"mozilla": undefined, |
|
"ie": undefined, |
|
|
|
// Configuration settings |
|
"config-selectorEngine": "lite", |
|
"dijit-legacy-requires": false, // don't load unrequested modules for back-compat |
|
"dom-quirks": false, // we assume/require that the app is in strict mode |
|
"quirks": false, // we assume/require that the app is in strict mode |
|
|
|
// Flags for old IE browser bugs / non-standard behavior |
|
"array-extensible": true, // false for old IE |
|
"bug-for-in-skips-shadowed": 0, // false for old IE |
|
"dom-attributes-explicit": true, // everyone except IE6, 7 |
|
"dom-attributes-specified-flag": true, //everyone except IE6-8 |
|
"dom-addeventlistener": true, // everyone except IE |
|
"native-xhr": true, // has XMLHTTPRequest |
|
"ie-event-behavior": undefined, |
|
"dojo-force-activex-xhr": false, // true is for IE path |
|
|
|
// Flags for features |
|
"dom-matches-selector": true, |
|
"dom-qsa": true, |
|
"dom-qsa2.1": true, |
|
"dom-qsa3": true, |
|
"dom-contains": true, |
|
"json-parse": true, |
|
"json-stringify": true, |
|
|
|
// Behavior that varies by browser, but is constant across webkit mobile browsers |
|
"events-keypress-typed": true, // whether printable characters generate keypress event? |
|
"events-mouseenter": false, // this is set by mouse.html but never used |
|
"touch": true, |
|
"highcontrast": false, // safari always displays background images, even when device in high-contrast mode |
|
"textarea-needs-help-shrinking": true, |
|
"css-user-select": "'WebkitUserSelect'" |
|
|
|
// Values which can be different across mobile devices, so intentionally not specified in this list. |
|
// "event-orientationchange": true, |
|
// "safari": true, |
|
// "android": true |
|
// "wii": true |
|
}, |
|
|
|
selectorEngine: "lite", |
|
|
|
defaultConfig: { |
|
hasCache: { |
|
// default |
|
"config-selectorEngine": "lite" |
|
}, |
|
async: true |
|
} |
|
};
|
|
|